У меня возникли проблемы с чтением и записью микросхемы последовательной памяти AT24C04 и AT24C08.
Пытаюсь записывать и читать данные в страничном режиме, но все данные записываются/читаются с нулевого адреса, в не зависимости от адреса который передаем мы.
Код для чтения привожу ниже
Код
i2c_start();
i2c_tx(AT24_ADDR|WR);
i2c_tx(hi_byte);
i2c_tx(lo_byte);
i2c_start();
i2c_tx(AT24_ADDR|RD);
for(i=0;i<5;i++)
{
buf_net_tx[N_TX+1+i]=i2c_rx(1);
}
buf_net_tx[N_TX+1+i]=i2c_rx(0); //последний считываемый байт - подтверждение не нужно
i2c_stop();
i2c_tx(AT24_ADDR|WR);
i2c_tx(hi_byte);
i2c_tx(lo_byte);
i2c_start();
i2c_tx(AT24_ADDR|RD);
for(i=0;i<5;i++)
{
buf_net_tx[N_TX+1+i]=i2c_rx(1);
}
buf_net_tx[N_TX+1+i]=i2c_rx(0); //последний считываемый байт - подтверждение не нужно
i2c_stop();
В догонку: подтягивающие резисторы на шине есть (4,7 К), адрес микросхемы верный, сама шина работает, на ней еще термодатчики есть и они работают.
В чем же может быть дело?