реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Запись байта в AT26
_Артём_
сообщение Mar 10 2007, 01:50
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Не могу понять алгоритм записи данных в микросхемах этой серии (конкретней для AT26DF161).
Непонятно вот что: в отличие от микросхем серии AT45 появилась возможность писать не страницами, а по-байтно, но нужно ли стирать байт (т.е. вернуть ячейку в состояние 0xFF)? Команды стирания байта или страницы нет (или я не нашёл?), есть только стирание блока размером от 4к. Как же тогда с тогда изменить содержимое одного дайта не стирая весь блок?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 10 2007, 02:18
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(_Артём_ @ Mar 10 2007, 01:50) *
Не могу понять алгоритм записи данных в микросхемах этой серии (конкретней для AT26DF161).
Непонятно вот что: в отличие от микросхем серии AT45 появилась возможность писать не страницами, а по-байтно, но нужно ли стирать байт (т.е. вернуть ячейку в состояние 0xFF)? Команды стирания байта или страницы нет (или я не нашёл?), есть только стирание блока размером от 4к. Как же тогда с тогда изменить содержимое одного дайта не стирая весь блок?

Никак. "1"-значение бита можно превратить в "0", но чтобы сделать обратное изменение - придется вычитать блок, стереть, и перезаписать.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 10 2007, 02:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(rx3apf @ Mar 10 2007, 01:18) *
Цитата(_Артём_ @ Mar 10 2007, 01:50) *

Не могу понять алгоритм записи данных в микросхемах этой серии (конкретней для AT26DF161).
Непонятно вот что: в отличие от микросхем серии AT45 появилась возможность писать не страницами, а по-байтно, но нужно ли стирать байт (т.е. вернуть ячейку в состояние 0xFF)? Команды стирания байта или страницы нет (или я не нашёл?), есть только стирание блока размером от 4к. Как же тогда с тогда изменить содержимое одного дайта не стирая весь блок?

Никак. "1"-значение бита можно превратить в "0", но чтобы сделать обратное изменение - придется вычитать блок, стереть, и перезаписать.


Понятно.
Обязательно ли стирать блок в микросхемах серии AT26DFxxxА: там дополнительно появилась команда Sequential Program Mode?
Получается, что для того чтобы записать один байт нужно считать как минимум 4к байт, стереть их и записать заново.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 10 2007, 03:11
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(_Артём_ @ Mar 10 2007, 02:36) *
Обязательно ли стирать блок в микросхемах серии AT26DFxxxА: там дополнительно появилась команда Sequential Program Mode?

Это всего лишь опция записи. Стирание как требовалось, так и требуется, поскольку принцип не изменился.
Цитата(_Артём_ @ Mar 10 2007, 02:36) *
Получается, что для того чтобы записать один байт нужно считать как минимум 4к байт, стереть их и записать заново.

Чтобы _записать_ - это не требуется (достаточно заранее стереть). А вот чтобы _изменить_ содержимое, отличное от FF - да, придется так и делать. Или отказаться от использования блочного FLASH, и использовать традиционную EEPROM с возможностью побайтовой модификации. Но там емкости куда меньше...
Go to the top of the page
 
+Quote Post
Laptop
сообщение Mar 10 2007, 12:25
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103



Цитата(rx3apf @ Mar 10 2007, 03:11) *
Цитата(_Артём_ @ Mar 10 2007, 02:36) *

Обязательно ли стирать блок в микросхемах серии AT26DFxxxА: там дополнительно появилась команда Sequential Program Mode?

Это всего лишь опция записи. Стирание как требовалось, так и требуется, поскольку принцип не изменился.

И не забывать снимать защиту с сектора при записи.
Цитата(rx3apf @ Mar 10 2007, 03:11) *
Цитата(_Артём_ @ Mar 10 2007, 02:36) *

Получается, что для того чтобы записать один байт нужно считать как минимум 4к байт, стереть их и записать заново.

Чтобы _записать_ - это не требуется (достаточно заранее стереть). А вот чтобы _изменить_ содержимое, отличное от FF - да, придется так и делать. Или отказаться от использования блочного FLASH, и использовать традиционную EEPROM с возможностью побайтовой модификации. Но там емкости куда меньше...

Либо использовать AT45... У нее есть встроенный буфер к тому же.
Go to the top of the page
 
+Quote Post
Ноль с переносом
сообщение Feb 2 2009, 02:39
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 6-01-09
Пользователь №: 42 957



Здравствуйте. Столкнулся с интересным поведением AT26DF161, о котором в документации не упоминается ни слова.

При записи в Status Register любой комбинации вида xx0000xx, все Sector Protection Registers разом сбрасываются в состояние Unprotected, а при записи xx1111xx - тоже все и тоже разом переходят в состояние Protected, если только они не были зафиксированы до этого битом SPRL (новое значение этого бита, записываемое этой командой, не считается). Я конечно понимаю, что там два бита reserved, но раз уж из них читаются нули, то логично, что и записывать надо нули; а при записи, например, всех восьми нулей сбрасываются все Sector Protection Registers.
А так - всё читается, пишется, зашибись. Я даже записал в это микросхему фотографию любимого человека =)

Ребят, кто-нибудь наблюдал подобное? Или это мои недосмотры?

P.S. Я здесь недавно, поэтому новую тему создавать побоялся, на всякий случай пишу суда.
Go to the top of the page
 
+Quote Post
Stirliz85
сообщение Jul 4 2011, 06:16
Сообщение #7





Группа: Участник
Сообщений: 10
Регистрация: 24-06-10
Пользователь №: 58 129



Цитата(Ноль с переносом @ Feb 2 2009, 06:39) *
Здравствуйте. Столкнулся с интересным поведением AT26DF161, о котором в документации не упоминается ни слова.

При записи в Status Register любой комбинации вида xx0000xx, все Sector Protection Registers разом сбрасываются в состояние Unprotected, а при записи xx1111xx - тоже все и тоже разом переходят в состояние Protected, если только они не были зафиксированы до этого битом SPRL (новое значение этого бита, записываемое этой командой, не считается). Я конечно понимаю, что там два бита reserved, но раз уж из них читаются нули, то логично, что и записывать надо нули; а при записи, например, всех восьми нулей сбрасываются все Sector Protection Registers.
А так - всё читается, пишется, зашибись. Я даже записал в это микросхему фотографию любимого человека =)

Ребят, кто-нибудь наблюдал подобное? Или это мои недосмотры?

P.S. Я здесь недавно, поэтому новую тему создавать побоялся, на всякий случай пишу суда.


В новой документации к памяти это описано. Можно через регистр статуса глобально сбрасывать защиту
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 21:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016