مقدمه
اگر تا به حال با مدارهای دیجیتال—مخصوصاً دارای میکروکنترلر—سروکار داشتهاید، حتما به این فکر افتادهاید که بعضی از دادههای خود را به گونهای ذخیره کنید که با قطع برق پاک نشوند. اغلب مدارهای دیجیتال دارای حافظه هستند. حافظههای مختلفی وجود دارند؛ هریک با کاربردی خاص. هرگاه بخواهیم اطلاعات را بدون نیاز به تغذیه ذخیره کنیم، به طوری که با قطع برق هم محتوای آن پاک نشود، از حافظههای ROM استفاده میکنیم. در این آموزش، با پروگرامر CH341—که یکی از ماژولهای کاربردی برای کار با اینگونه حافظههاست—آشنا میشوید.

آنچه در این آموزش یاد میگیرید
- آشنایی با انواع حافظهها
- آشنایی با مبدل CH341
- آشنایی با نرمافزار ASProgrammer
معرفی انواع حافظهها
به طور کلی، دو دسته حافظه وجود دارد: 1) حافظههای فرّار: در این نوع حافظه، اطلاعات ذخیره شده با قطع برق پاک میشوند؛ انواع RAMها را میتوان از این دسته برشمرد؛ و 2) حافظههای غیر فرّار(ROM): اطلاعات ذخیره شده در این نوع حافظه، با قطع برق نیز از بین نمیرود؛ EEPROM و SPI FLASH کاربردیترین حافظههای نوع ROM هستند.
از حافظههای EEPROM در مواردی استفاده میکنیم که نیاز به ذخیرهسازی حجم کمی از اطلاعات باشد و همچنین سرعت انتقال دیتای پایین کفایت کند. در مقابل، حافظههای Flash دارای حجم و سرعت انتقال داده بالاتری هستند، اما هزینه آنها کمی بیشتر از EEPROMهای هم رده است.
EEPROMها عمر محدودی دارند؛ یعنی تعداد دفعات پاک کردن و نوشتن بر روی آنها به دهها یا صدها هزار مرتبه محدود میشود. این محدودیت مهم باید در طراحی در نظر گرفته شود.
EEPROMهای جدیدتر توانایی فعالیت بر روی چندین بایت را به صورت همزمان دارند. همچنین عمر آنها به یک میلیون بار افزایش یافته است.
حافظههای EEPROM و Flash را میتوان در داخل مدار نیز پروگرام کرد. این قابلیت به کاربر اجازه میدهد بعضی از پارامترهای مهم سیستم را که دائما در حال تغییرند و بعد از خاموش و روشن شدن نباید از بین بروند، در این نوع حافظهها ذخیره کند.
یکی از مواردی که از این نوع پروگرام استفاده میکنیم، مدارهای کنترل موقعیت موتور یا جک است. به عنوان مثال، در چاپگرهای سه بعدی، اگر برق در حین کار قطع شود، موقعیت آخرین لحظه موتورها پاک شده و کاربر مجبور به شروع فرایند از نقطه اول میشود. بنابراین، باید آخرین موقعیت سیستم را در این نوع حافظه نگهداری کرد تا از بروز خسارت احتمالی جلوگیری شود.
همچنین میتوان این حافظهها را خارج از مدار و با پروگرامر پروگرام کرد. کامپیوترها، تلفنهای همراه و بعضی دستگاهها برای ذخیره اطلاعات اولیه سیستم خود (مانند کد سریال قطعات و تنظیمات اولیه سیستم) از حافظههای EEPROM استفاده میکنند.
معرفی پروگرامر CH341 برای حافظه EEPROM و Flash
در حالت پروگرام کردن حافظههای EEPROM و Flash در خارج از مدار ، باید از پروگرامر استفاده کنید. به این منظور، ما در این آموزش، نحوه کار با ماژول پروگرامر CH341 را معرفی میکنیم.
این ماژول دارای سوکت مخصوص قطعات DIP است. همچنین دارای برد کمکی است تا بتوانید قطعات SMD را نیز با استفاده از آن پروگرام کنید.
لوازمی که به آن احتیاج دارید
پروگرام کردن حافظههای EEPROM و SPI Flash با پروگرامر CH341
گام اول: آمادهسازی
برای کار با این پروگرامر CH341، ابتدا باید درایور آن را از این لینک دانلود کنید.
فایل را از حالت فشرده خارج کرده و در فولدر CH341a، فایل DRVSETUP64.exe را اجرا کنید.
در پنجره باز شده کلید Install را بزنید.

در نهایت پیغام نصب موفقیتآمیز نمایش داده میشود.
حال آخرین نسخه نرمافزار AsProgrammer را از این لینک دانلود کنید:
سپس فایل دانلود شده را از حالت فشرده خارج کرده و فایل “AsProgrammer.exe” را اجرا کنید.

گام دوم: پروگرام کردن
برای استفاده از ماژول پروگرامر CH341، باید نرمافزار AsProgrammer را اجرا کنید. اولین قدم برای پروگرام کردن یک حافظه، انتخاب نوع و مشخصات آن است. ما در اینجا یک SPI Flash داریم که برای پروگرام کردن آن باید به قسمت IC->SPI رفته و مدل حافظه خود را انتخاب کنیم. در صورتی که حافظه شما EEPROM باشد، احتمالاً از پروتکل I2C استفاده میکند.
حال میتوانید کار مد نظر خود را بر روی حافظه پیاده کنید. با کلیک بر روی Read IC، ماژول شروع به خواندن حافظه میکند. بسته به اندازه حافظه، چند لحظه منتظر بمانید.
پس از اتمام فرایند خواندن حافظه، محتویات آن به صورت هگزادسیمال نمایش داده میشود.
با کلیک بر روی گزینه Save، میتوانید اطلاعات خوانده شده را ذخیره کنید. اگر قصد کپی کردن حافظه را داشته باشید، میتوانید فایل ذخیره شده را باز کرده و بر روی Program IC بزنید. همچنین با کلیک بر روی دادههای هگزادسیمال خوانده شده از حافظه، میتوانید آنها را به صورت دستی نیز تغییر دهید.
یک گام جلوتر
در این آموزش، ابتدا با انواع حافظهها آشنا شدیم. سپس یاد گرفتیم که چگونه میتوانیم حافظههای غیر فرّار EEPROM و SPI FLASH را پروگرام کنیم.
بسیاری از مدارات از حافظههای غیر فرّار گوناگون استفاده میکنند. با استفاده از پروگرامر CH341، میتوانید آنها را پروگرام کنید، اطلاعات آن را بخوانید، تغییر دهید و یا بر روی آن رایت کنید.