-
- Переписать просто нельзя, должно выполняться правило: (old & new) == new - aoreh(09.12.2019 12:06)
- Побайтно перезаписать нельзя. Можно дописывать побайтно. Можно записать страницу 256 байт одной командой. А стирать надо блоком по 4, 32 или 64КБ. - LightElf(09.12.2019 11:34 - 11:37)
- Ответ мне непонятен. Если питание только включила, то перед записью байта нужно ли стирать страницу, которой принадлежит место, куда пишешь? А то оно у меня не пишет, пока страницу не сотрешь. - Ксения(09.12.2019 12:07 - 12:21)
- Для записи страницы внутри памяти (NOR) есть специальный контроллер памяти с буфером. misyachniy(738 знак., 09.12.2019 12:38)
- Можно прочитать страницу, убедиться что в нужном байте лежит 0xFF и туда писать. Только Write Protection сначала надо отключить. - LightElf(09.12.2019 12:10)
- Write Protection само собой, проблема же в том, что предварительный Erase требует. На картинку взгляните, эти строки из даташита. => - Ксения(09.12.2019 12:24, картинка)
- Ну да, в ячейке должно быть 0xFF. 0xFF в ячейку можно засунуть только путем стирания (сектора/блока). Если в ячейке лежит 0xFF - значит ее кто-то когда-то зачем-то стер. Раз стерли - значит там 0xFF. Раз 0xFF - значит стерли. Не уж, знаю как LightElf(20 знак., 09.12.2019 12:28)
- В фабричной все 0xFF. Казалось бы, могу в нее писать, не стирая, как в блокнот, с начала и до конца, если помнить адрес последнего записанного байта, но она не хочет писать - в регистр статуса ошибку пишет, а по адресу остается то, что было. - Ксения(09.12.2019 12:34)
- "Не верю" ©. Либо write protection, либо похожий косяк. - SciFi(09.12.2019 12:37)
- Ну сделайте ей разок Chip Erase - может полегчает. - LightElf(09.12.2019 12:34)
- В фабричной все 0xFF. Казалось бы, могу в нее писать, не стирая, как в блокнот, с начала и до конца, если помнить адрес последнего записанного байта, но она не хочет писать - в регистр статуса ошибку пишет, а по адресу остается то, что было. - Ксения(09.12.2019 12:34)
- Ничего страшного там не написано. Эти флешки отлично работают в режиме "журнала" - после стирания сектора туда можно многократно дописывать маленькие порции данных. Эмуляция EEPROM во флеше так работает, например. - SciFi(09.12.2019 12:28)
- Ну да, в ячейке должно быть 0xFF. 0xFF в ячейку можно засунуть только путем стирания (сектора/блока). Если в ячейке лежит 0xFF - значит ее кто-то когда-то зачем-то стер. Раз стерли - значит там 0xFF. Раз 0xFF - значит стерли. Не уж, знаю как LightElf(20 знак., 09.12.2019 12:28)
- На самом деле неочевидно, можно ли 0xFF писать в одно и то же место многократно. Теоретически может влиять на соседние ячейки. - SciFi(09.12.2019 12:11)
- У сабжа, если я правильно не понимаю, можно. LightElf(09.12.2019 12:20)
- Write Protection само собой, проблема же в том, что предварительный Erase требует. На картинку взгляните, эти строки из даташита. => - Ксения(09.12.2019 12:24, картинка)
- После стирания страницы 4 кБайта туда можно 4096 раз писАть по одному байту. Ну а потом снова стирать. - SciFi(09.12.2019 12:10)
- Но-но! Не надо терминологической путаницы. "Страница" - это максимальное количество одновременно записываемых байт, в данном случае 256 байт. Минимальная стираемая область (4кБ) называется "сектор". Области стирания размером 32к/64к - называются LightElf(8 знак., 09.12.2019 12:22)
- Есть, кстати, вот такое китайское поделие. Обещают стирание по 256 байт. Кроме того, стирания всех видоразмеров заявлено ооочень быстрое. Но страшно... опять же, какой-то странный китай, купил несколько штук, но руки не доходят помучать - aoreh(09.12.2019 12:17, ссылка)
- Прикольно. Но выигрыша по времени нет - что страница, что сектор, что блок - все стирается 10мс. Тут призадумаешься. - LightElf(09.12.2019 12:25)
- Ответ мне непонятен. Если питание только включила, то перед записью байта нужно ли стирать страницу, которой принадлежит место, куда пишешь? А то оно у меня не пишет, пока страницу не сотрешь. - Ксения(09.12.2019 12:07 - 12:21)