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

 
 
> AT24C512 и ADuC848, проблемма с чтением
sls_
сообщение May 29 2007, 07:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 4-03-07
Пользователь №: 25 875



Всем привет, нужна помощь.
Память АТ24С512 и часы D1340 подключены к ADuC848 по I2C.
Проблемма: при чтении из памяти по байтно при единичном чтении из любой ячейки чтение корректно, но как только начинаю читать этой же функцией несколько байт подряд значения зависят от прдидущего прочитанного байта. Т.е. если предидущий прочитанный байт содержит чотное число следующее читается верно, если не четное то прочитанное число на 128 больше.
Пример:
Ячейка Записываю Считываю
----0-----------0------------0
----1-----------1------------1
----2-----------2----------130
----3-----------3------------3
----4-----------4----------132
Такое ощущение что младший бит предидущего байта попадает в старший последующего.
Пробовал читать страницами эфект тотже. С часов висящих на том же порту читаю все значения корректны.
функции для чтения записи:
#define EEPROM_BUS_ADDRESS 0xA0
void write_byte_eeprom (unsigned int address, unsigned char datas)
{
i2c_start();
i2c_tx(EEPROM_BUS_ADDRESS);
i2c_tx((unsigned char)address>>8);
i2c_tx((unsigned char)address);
i2c_tx(datas);
i2c_stop();
}
unsigned char read_byte_eeprom (unsigned int address)
{
unsigned char datas;
i2c_start();
i2c_tx(EEPROM_BUS_ADDRESS);
i2c_tx((unsigned char)address>>8);
i2c_tx((unsigned char)address);
i2c_start();
i2c_tx(EEPROM_BUS_ADDRESS | 1);
datas = i2c_rx(0);
i2c_stop();
return datas;
}
Буду благодарен за любую помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sls_
сообщение May 30 2007, 06:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 4-03-07
Пользователь №: 25 875



Да правильно:
MDO = ; //Data Output
MDE = ; //1-(Tx).0-(Rx).
MCO = ; //Clock Output
MDI = ; //Data Input
По поводу транзистора не уверен, в даташите не нашол. (ADuC848) хотя думаю что "i2c честный" - порты специальные
По данной Вами ссылке посмотрел но не очень понял, буду пробовать.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 06:51
Рейтинг@Mail.ru


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