I2C Память И Битые Байты

14-03-2013, 04:47 От: admin Посмотрели: 780
Привет!

Есть у меня один проект на pic24, который использует EEPROM 24LC256.

И все бы хорошо, но иногда данные записываются некорректно.

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

Память висит на довольно короткой шине ~1.5 см от контроллера, подтяжки на линиях 4.7кОм. С памятью работаю на частоте 400 кГц, снижение частоты не дало никакого эффекта. Повторяется бага на нескольких одинаковых платах. Закономерности выявить не удалось. Выяснил только что мой код пытается записать правильные данные, то есть повреждаются они именно в процессе записи.

Привожу фрагмент кода для роботы с eeprom:






unsigned char ee_adress(int adr)
{
unsigned char cmd;
cmd = 0xA0; // | ((adr >> 7)&0xE);
while (1)
{
StartI2C(); IdleI2C();
// send command and address msb(3)
MasterWriteI2C(cmd + WRITE_CMD); IdleI2C();
if (I2CSTATbits.ACKSTAT == 0)
break;
StopI2C(); IdleI2C();
} // while waiting for ACK
// 3. send address lsb
MasterWriteI2C(adr >> 8); IdleI2C();
MasterWriteI2C(adr & 0xFF); IdleI2C();
// 4. exit returning the cmd byte
return cmd;
}

void ee_wrDword(int adr, unsigned long data)
{
// 1. select address
ee_adress(adr);
// 2. stream data out
MasterWriteI2C((data >> 24) & 0xFF); IdleI2C();
MasterWriteI2C((data >> 16) & 0xFF); IdleI2C();
MasterWriteI2C((data >> 8 ) & 0xFF); IdleI2C();
MasterWriteI2C((data >> 0 ) & 0xFF); IdleI2C();
// 3. terminate the command sequence
StopI2C(); IdleI2C();
}



Может кто то сталкивался с подобным? В какую сторону копать? Я уже все на что фантазии хватило перепробовал.
Раздел: Периферия и внешние устройства

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления I2C Память И Битые Байты все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031