все наметки уже использовал регистры статусные и таки и сяк. Микросхема полностью стирается, нет проблем. Страничка пишется - нет проблем. Но индивидуально стереть сектор или блок - не получается, все остается на своих местах. Пинял на неправильное поднятие CS после выдачи команды и адреса блока, но потом понял что время поднятия CS в этом случае совсем не важно, главное что бы после последнего залатченго бита. По осцилографу - так и есть за переданным последним битом адреса сектора. Время CS deselect в ДШ означает всего лишь насколько можно запоздать начав подымать фронт сигнала, то есть предельная емкость/индуктивность линии. Понял это по тому что такое же требование должно выполняться и для стирания и для записи и для записи в статусный регистр и для команды разрешения записи. Проверял на MX25L4005, MX25L8005 - с сокращенным набором команд, на W25Q128 - с расширенным, в котором можно делать Global Unlock sector/block. В чем же может быть проблема? Причем что характерно процесс стирания инициируется так как бит WIP/BUSY поднимаются после отсылки команды Sector Erase/Block Erase. То есть автомат состояний внутри ПЗУ принимает команду, не режектит ее. Единственное что объединяет все попробованные объект то что скорее всего W25Q с алиэкспресса БУ, и то что MX25 абсолютно точно БУ собственоручно сняты с "матерей". Натолкните на идею товарищи! :)
вот тебе эмулятор флеша для спокойствия и трейсов нужен)
ни разу не заморачивался с временем поднятия CS. Проблема явно где-то в другом месте.
Обсуждают сегодня