مشکل با W25QXX و SPI در ماژول M65

سلام
من مثال SPI را با W25Q64 تست کردم.
ابتدا یک سری مقادیر می نویسم و همان ها را میخوانم. بدرستی کار میکند.
اما فقط یک بار داده ها در W25Q64 ذخیره می شوند. و اگر برای دفعه بعد مقادیر را در همان آدرس ها بنویسم ذخیره نمی شود و همان مقادیر قبلی خوانده می شود.
اگر کل سکتور را erase کنم دوباره میتوانم مقادیر جدید برای یک بار ذخیره کنم.
لطفا راهنمایی بفرمایید
تشکر

ساختار حافظه های فلش همینجوریه.
همیشه اول باید پاک کنی بعد بنویسی.

2 پسندیده

سلام. معمولا فقط یکبار پاک می کنند. نه اینکه هر بار که بخوام بنویسم کل حافظه پاک بکنیم.

سلام علیکم داداش فاضل
ای سی w25qxx از نوع حافظه فلش nor هستش.
ساختار حافظه های فلش برای اینکه چند مزیت مهم مثل قیمت کمتر و غیره رو داشته باشند جوری ساخته شدن که چند عیب کوچیک هم کنارش دارن.
مهم ترین عیب ها:
1- شما نمیتونید تنها یک بایت از حافظه رو تغییر بدین و باید حداقل یک page یا صفحه که معادل 256 بایت میشه رو تغییر بدین.
2- شما نمیتونید تا قبل از پاک کردن داده های قبلی، داده جدیدی روی حافظه بنویسید. (اینکه باید حداقل چقدر از حافظه رو پاک کنید باید به دیتاشیت حافظه فلش مراجعه کنید: مثلا یک صفحه یا یک سکتور یا یک بلوک یا نیم بلوک و غیره)

برای اطلاعات بیشتر دیتاشیت w25q64 رو دانلود و بررسی کنید.

2 پسندیده

کل حافظه رو نیازی نیست پاک کنید.

البته باید ببینید چقدر میخواید بنویسید:
مثلا اگر قصد نوشتن یک سکتور رو دارید باید قبلش سکتوری که قصد نوشتنش رو دارید پاک کنید.
یا برای یک بلوک هم همین کار رو میکنین.

به این دو لینک یه نگاه بنداز:

3 پسندیده

سلام ممنون از راهنمایی

1 پسندیده