آموزش و راه اندازی محصولاتاخبار الکترونیک، رباتیک و تکنولوژیتوسعه دانش

راه اندازی آی‌سی های حافظه فلش سری W25Qxx

در این تحقیق و توسعه قصد داریم، شما را با حافظه های حجیم و بسیار سریع آشنا کنیم و کد راه اندازی حرفه ای اونها رو بهتون ارائه بدیم!

همانطور که می دانید در بسیاری از پروژه ها نیاز به حافظه جانبی است اما در بعضی از پروژه ها ما نیاز به حافظه ای پر سرعت داریم که مقدار حافظه آن نه خیلی زیاد مثل SDCARD و نه خیلی کم مثل آی‌سی‌های EEPROM باشد. اینجاست که می توان به کمک حافظه های فلش در ظرفیت های چند مگابایت ، این خلاء را جبران کرد و پروژه ها را با هزینه کمتری انجام داد.

حافظه های FLASH از نسل EEPROM ها هستن اما با این تفاوت که در حافظه های EEPROM ما کنترل حافظه ها به صورت بایت بایت را داریم، در صورتی که در حافظه های FLASH ما فقط می توانیم مجموعه ای از حافظه را مدیریت کنیم که در ادامه با اشاره به خانواده تراشه 25Qxx به عنوان نمونه بیشتر توضیح خواهم داد.

مشخصات آی‌سی‌های فلش 25Qxx
مشخصات آی‌سی‌های فلش 25Qxx

مشخصات آی‌سی‌های فلش 25Qxx

_ ولتاژ تغذیه بین 2.7 تا 3.6 ولت DC
_ جریان مصرفی کمتر از 4 میلی آمپر
_ محدوده دمایی بین 40- تا 85+ سانتی گراد
_ قابلیت نوشتن و خواندن بیش از 100000 بار
_ بیش از 20 سال زمان نگهداری اطلاعات
_ سرعت انتقال داده بیش از 75MB/s در مدل های مختلف

۱ – معرفی پایه های آی‌سی حافظه فلش 25Qxx

VCC : پایه تغذیه آی‌سی‌که ولتاژ آن بین 2.7 تا 3.6 ولت DC است

GND : پایه زمین یا صفر آی‌سی‌

CS : پایه انتخاب آی‌سی‌( اگر این پایه یک باشد ایسی غیر فعال و اگر صفر باشد آی‌سی‌فعال می شود )

WP : پایه نوشتن محافظت ورودی ( اگر این پایه صفر باشد ما فقط قابلیت خواندن از آی‌سی‌ را داریم و در صورتی که این پایه یک باشد ما قابلیت خواندن و نوشتن از داخل آی‌سی‌ را داریم )

RESET : پایه ریست آی‌سی‌ که با صفر فعال می شود

CLK , Do ,DI : پایه های ارتباط SPI جهت کنترل آی‌سی‌

2 – ترکیب خانه های حافظه در آی‌سی‌های فلش

خانه های حافظه در آی‌سی‌‌های فلش به سه صورت می باشند : بلوک ، سکتور و صفحه

همان طور که در تصویر بالا مشاهده می کنید کل حافظه به بلوک های 64KB تقسیم می شود و هر بلوک به 16 سلکتور 4KB سپس هر سلکتور به 16 صفحه 256B تقسیم می شود .

به عنوان مثال تصویر بالا خانه های حافظه آی‌سی‌ 25Q128 را نمایش می دهد که تقسیم بندی خانه های حافظه به صورت زیر است :

آی‌سی‌ 25Q128 دارای ظرفیت 128 مگابیت که برابر است با 16 مگا بایت ( 128Mb/8=16MB )

_ تعداد بلوک ها : مقدار کل حافظه آی‌سی‌ تقسیم بر مقدار 64 کیلوبایت : 256 بلوک

_ تعداد سلکتورها : مقدار حافظه هر بلوک تقسیم بر 4 کیلوبایت که می شود 16 سلکتور به ازای هر بلوک حال  مجموع کل سلکتورها برابر است با  4096=16*256

_ تعداد صفحه ها : مقدار حافظه هر سلکتور تقسیم بر 256 بایت که می شود 16 صفحه به ازای هر سلکتور حال مجموع کل صفحه ها برابر است با 65536=16*4096

3 – نحوه خواندن و نوشتن اطلاعات در آی‌سی‌ فلش

در حافظه فلش به دلیل استفاده از مدارات کمتر، دیگر دسترسی مستقیم به تک تک بایت ها وجود ندارد و باید به صورت مجموعه(صفحه به صفحه) آنها را کنترل کرد .

برای مثال اگر ما بخواهیم بایت دهم از حافظه را بخوانیم چون این بایت در صفحه صفر است ما باید کل این صفحه را که 256 بایت است را بخوانیم و سپس درون یک متغیر 256 بایتی بریزیم بعد از بایت دهم استفاده کنیم .

برای نوشتن اطلاعات نیز ما نمی توانیم به صورت بایت بایت اطلاعات را از روی آی‌سی‌ فلش بخوانیم و خواندن دیتا باید بصورت صفحه ای ( 256 بایتی ) صورت بگیرد .

نکته مهم : ما نمی توانیم دوبار روی یک صفحه اطلاعات بنویسم باید ابتدا اطلاعات صفحه را پاک کنیم و مجددا روی آن صفحه عملیات نوشتن را انجام دهیم .

4 – نحوه پاک کردن اطلاعات در آی‌سی‌ فلش

برای پاک کردن اطلاعات ما از چهار روش زیر می توانیم استفاده کنیم :

_ پاک کردن اطلاعات به صورت سلکتور ( 4 کیلوبایتی )

_ پاک کردن اطلاعات به صورت بلوک ( 32 کیلوبایتی )

_ پاک کردن اطلاعات به صورت بلوک ( 64 کیلوبایتی )

_ پاک کردن اطلاعات به صورت کلی

نکته مهم : در آی‌سی‌ فلش ما قادر نیستیم تا اطلاعات را بصورت بایت به بایت پاک کنیم .

5 – نحوه اتصال حافظه فلش به میکروکنترلر

نکته : پایه های RESET و WP را در صورتی که نیازی به کنترل نداشته باشید می توانید به مثبت VCC متصل کنید .

6 – برنامه نویسی

تیم فنی پژوهشگران الکترونیک و رباتیک برنامه ای در کامپایلر کدویژن آماده کرده است که شما به راحتی می توانید با آی‌سی‌ فلش ارتباط برقرار کنید.

پروتوتایپ توابع آماده شده توسط تیم پژوهشگران به صورت زیر است:

_ عملکرد تابع (unsigned int W25Q_Read_Manufact_Device_ID(void  :

این تابع شماره کارخانه و دستگاه را به ما می دهد.

برای مثال مقدار شماره کارخانه برابر 0xEF و شماره دستگاه برای آی‌سی‌ 25Q128 برابر 0x17 می باشد .

_ عملکرد تابع (void W25Q_Disable_Write(void  :     غیرفعال کردن عملیات نوشتن

_ عملکرد تابع (void W25Q_Enable_Write(void  :      فعال کردن عملیات نوشتن

_ عملکرد تابع (unsigned char W25Q_Read_StatusReg(unsigned char RG  :

یکی از مهمترین رجیسترهای آی‌سی‌ فلش، رجیستر وضعیت است که به کمک آن می توانید وضعیت، رایت کردن، مشغولی، وضعیت های امنیتی آی‌سی‌ و … را ببینید .

_ عملکرد تابع (void W25Q_WaitBusy(void  :      چک کردن وضعیت مشغول بودن آی‌سی‌ فلش

_ عملکرد تابع (void W25Q_WritePage(unsigned long int NumPage :      تابع نوشتن اطلاعات به صورت 256 بایتی روی حافظه فلش

_ عملکرد تابع (void W25Q_ReadPage(unsigned long int NumPage :      تابع خواندن اطلاعات به صورت 256 بایتی از روی حافظه فلش

_ عملکرد تابع (void W25Q_EraseSector4KB(unsigned long int address :      پاک کردن اطلاعات آی‌سی‌ به صورت سلکتوری

_ عملکرد تابع (void W25Q_EraseBlock32KB(unsigned long int address :      پاک کردن اطلاعات آی‌سی‌ به صورت بلوک های 32 کیلو بایتی

_ عملکرد تابع (void W25Q_EraseBlock64KB(unsigned long int address :      پاک کردن اطلاعات آی‌سی‌ به صورت بلوک های 64 کیلو بایتی

_ عملکرد تابع (void W25Q_EraseChip(void  :      پاک کردن تمام اطلاعات آی‌سی‌

در انتها برنامه نمونه ای که توسط تیم فنی ما آماده شده را در زیر مشاهده می کنید که با فرمان دادن از طریق پورت سریال شما می توانید تمام توابع را اجرا کنید به عنوان مثال با ارسال کد  i\r* مقدار شماره دستگاه و کارخانه برگردانده می شود.

_ با ارسال کد s\r* مقدار رجیستر وضعیت برگردانده می شود .

_ با ارسال کد e\r* سلکتور 4 کیلو بایتی اول پاک می شود .

_ با ارسال کد w\r* اطلاعات در صفحه اول نوشته می شود .

_ با ارسال کد r\r* اطلاعات صفحه اول خوانده می شود .

فایل های مورد نیاز راه اندازی آی‌سی‌های فلش سری W25Qxx :

تمامی محصولات نرم افزاری سایت شامل خدمات پشتیبانی میباشند و در صورتی که آپدیت ارائه شود، به صورت رایگان برای خریداران قبلی نیز ارسال میشود. در صورت وجود هرگونه مشکل در سورس میتوانید از بخش “نظرات” و یا “تماس با ما” با ما در ارتباط باشید.

سوالی داشتید، در قسمت نظرات بپرسید، کارشناسان فنی پژوهشگران در اسرع وقت پاسخگو خواهد بود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید

بستن
بستن
بستن