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

 
 
> Адресация в AT24C256, Как адресуется эта память?
Xenom0rph
сообщение Oct 2 2008, 11:12
Сообщение #1


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

Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646



Вообщем подключил по I2C память AT24C256, и вот у меня встал вопрос, как получить доступ к определённой ячейки памяти, допустим к первой или последней или вообще к тысячной?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Oct 2 2008, 11:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну, даташит теперь почитайте. Транзакция записи начинается с адреса.
Go to the top of the page
 
+Quote Post
Xenom0rph
сообщение Oct 2 2008, 11:54
Сообщение #3


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

Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646



Цитата(aaarrr @ Oct 2 2008, 15:17) *
Ну, даташит теперь почитайте. Транзакция записи начинается с адреса.


У меня только перевод даташита есть, сейчас оригинал скачаю.
Так вот там есть раздел Организация памяти и вот что написано:
Память размером 256 кбит внутренне разделена на 512 страниц по 64 байта в каждой. Для доступа к памяти по произвольному адрессу требуется 15-разрядное слово адреса.

Х.М. скачал таже фигня только в профиль. эх...

Сообщение отредактировал Xenom0rph - Oct 2 2008, 11:59
Go to the top of the page
 
+Quote Post
bloodden
сообщение Oct 2 2008, 12:12
Сообщение #4


Бывалый
***

Группа: Validating
Сообщений: 375
Регистрация: 19-10-05
Из: Kiev, UA
Пользователь №: 9 853



Цитата(Xenom0rph @ Oct 2 2008, 14:54) *
У меня только перевод даташита есть, сейчас оригинал скачаю.
Так вот там есть раздел Организация памяти и вот что написано:
Память размером 256 кбит внутренне разделена на 512 страниц по 64 байта в каждой. Для доступа к памяти по произвольному адрессу требуется 15-разрядное слово адреса.

Х.М. скачал таже фигня только в профиль. эх...

Сначала стартуете транзакцию запись по определённому адресу, и тут же старт (без стопа перед ним) и чтение будет с этого адреса. Это ж во всех книгах/газетах/туалетной бумаге написано smile.gif


--------------------
Заходите кому надо на мой сайт
Go to the top of the page
 
+Quote Post
Xenom0rph
сообщение Oct 2 2008, 12:34
Сообщение #5


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

Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646



Цитата(bloodden @ Oct 2 2008, 16:12) *
Сначала стартуете транзакцию запись по определённому адресу, и тут же старт (без стопа перед ним) и чтение будет с этого адреса. Это ж во всех книгах/газетах/туалетной бумаге написано smile.gif

Чтот до меня не доходит, не злитесь я в этом деле делитант только месяц назад паяльник в руки взял))
вот вообщем мой код записи в память

void write_byte_eeprom (unsigned int address, unsigned char data)
{
unsigned char sSREG;
sSREG=SREG
#asm(”cli”)
i2c_start(EEPROM_BUS_ADDRESS);
i2c_write((unsigned char)address>>8);
i2c_write((unsigned char)address);
i2cwrite(data)
i2c_stop()
SREG = sSREG;
delay_ms(11)
}

так вот делал я по примерам, и вот как там вызывалась функция
write_byte_eeprom(0xaa,0×55)
Вот всё работает, а стоит поменб переменную address, и не пишеться, тыкал пальцем в небо проверял, разные аддреса то пишет то не пишет. Вот что нужно писать в эту переменную address
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 2 2008, 12:54
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Xenom0rph @ Oct 2 2008, 18:34) *
так вот делал я по примерам, и вот как там вызывалась функция
write_byte_eeprom(0xaa,0Ч55)
Вот всё работает, а стоит поменб переменную address, и не пишеться, тыкал пальцем в небо проверял, разные аддреса то пишет то не пишет. Вот что нужно писать в эту переменную address
Первым байтом передается адрес самого устройства (Device address). Первые четыре бита (старший полубайт) уникальны для данного типа I2C-устройств (EEPROM) - 1010xxxx. Самый младший бит определяет тип операции 0- запись, 1 - чтение. А оставшиеся три бита являются аппаратным адресом EEPROM. У AT24C256 только два бита аппаратного адреса, поэтому bit3 (счет с нуля) всегда как 0 передается.
Далее при записи передается логический адрес первой из адресуемых ячеек памяти. Два байта. Сначала младшийстарший, а затем старшиймладший. Если после передачи адреса устройства не передавать весь логический адрес ячейки целиком, а сформировать лишь повторное старт-условие, то логическим адресом ячейки памяти будет тот, который был при предыдущем обращении к EEPROM. Правда инкрементированный на 1.
В общем в даташите все в картинках написано. И чего может быть непонятно? laughing.gif
Хотя... Самый важный нюанс состоит в том, что у EEPROM есть кольцевой буфер, для которого часть логического адреса автоинкрементируется при каждом последующем считанным или записанным байтом. Поэтому при записи нужно всегда делать выравнивание на границу этого буфера. Обращаю внимание, что инкрементируется не весь логический адрес, а только лишь часть его (6 младших разрядов адреса для 24C256).

Сообщение отредактировал rezident - Oct 2 2008, 13:06
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Xenom0rph   Адресация в AT24C256   Oct 2 2008, 11:12
|- - vik0   Цитата(Xenom0rph @ Oct 2 2008, 15:34) Вот...   Oct 2 2008, 12:50
||- - Xenom0rph   Цитата(vik0 @ Oct 2 2008, 16:50) Номер ...   Oct 2 2008, 12:54
|- - vik0   Цитата(rezident @ Oct 2 2008, 15:54) Дале...   Oct 2 2008, 13:00
|- - rezident   Цитата(vik0 @ Oct 2 2008, 19:00) Хм... А ...   Oct 2 2008, 13:06
- - bodja74   2Xenom0rph Ну если мне память не изменяет ,тогда...   Oct 2 2008, 12:53
- - Xenom0rph   Вообщем господа спасибо вам за советы, правда всё ...   Oct 2 2008, 13:37
- - UniBomb   Дабы не создавать новую тему, подниму эту... ситу...   Oct 14 2008, 13:32
- - UniBomb   И кстате, каким напряжением их питать? В даташите ...   Oct 15 2008, 10:17
- - vik0   Цитата(UniBomb @ Oct 15 2008, 13:17) И кс...   Oct 15 2008, 11:14
- - UniBomb   Цитата(vik0 @ Oct 15 2008, 15:14) Есть дв...   Oct 16 2008, 13:12


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

 


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


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