I2C и адрессация в EEPROM

Обсуждаем цифровые устройства...
Ответить
Exec
Родился
Сообщения: 8
Зарегистрирован: Пн ноя 08, 2010 03:38:48

I2C и адрессация в EEPROM

Сообщение Exec »

Пытаюсь писать\читать чип 24с04. В датащите сказано 32 страницы по 16 байт каждая. 512кбайт т.е.
на шине I2C адрес устройства при записи 1010 0000 и 1010 0001 при чтении. Формат такой - 1010 A2,A1,P0,R/W.
A2, A1 у меня на земле. также в датащите сказано, что P0 - это бит страницы памяти.

Так вот, я забиваю чип с адресом 1010 0000 нулями. Последовательно 512кб нулей. Потом, например первый байт единицами. И при проверке оказывается, что единицами становится не только первый байт, но и 256. Т.е. по ходу указатель адреса ячейки достигает предела в 255 байт и перескакивает в начало.
Куда пропали остальные 256 байт? Их я нашел по адресу 1010 0010, т.е. установив бит страницы памяти в 1.

Получается, что чип разделен как бы на 2 страницы? Но как же заявленные в датащите 32 страницы? Как ссылаться на них, если я хочу писать страницу за раз? И как быть с этими двумя - писать последовательно не получается, имея разные адреса они представляются двумя различными устройствами. Так и должно быть?

Использую Arduino. Для I2C подключаю библиотеку Wire, котораячасть функций берет на себя. Может в ней дело или и без неё так?
Реклама
Аватара пользователя
Liv
Вымогатель припоя
Сообщения: 525
Зарегистрирован: Сб сен 20, 2008 12:12:30
Откуда: Minsk
Контактная информация:

Re: I2C и адрессация в EEPROM

Сообщение Liv »

Да, чип разбит на две страницы, так как один байт позволяет адресовать 256 ячеек, а у чипа их 512. Обращаться надо так: первая страница 1010 0000 и 1010 0001, вторая страница 1010 0010 и 1010 0011. То, что в описании 32 страницы, это не те страницы. Это страницы, которые чип может записывать за один раз. Т.е. за одну операцию можно записывать до 16 байт. Если планируется записывать по одному байту, то про 32 страницы можно забыть.
Реклама
Ответить

Вернуться в «Цифровая техника»