Вопрос про I2C интерфейс в LPC2106(+) Пытаюсь связать EEPROM 24LC64 с LPC.
При первой же попытке сбросить SI, как описано в доке, после того как сгенерирован START все тихо умирает. Я посмотрел что происходит через JTAG, при выполнении __I2CONCLR_bit.sic=1; сбрасываются все биты __I2CONSET, те не то чтобы все, а совсем ВСЕ... и i2en в том числе, как результат получаю в __I2STAT = F8 и сушу весла... Может знает кто где собака порылась?
Код не прост, а совсем прост... до последнего IF Я уже не дохожу...
__PINSEL0_bit.p0_2 = 1;
__PINSEL0_bit.p0_3 = 1;
__I2SCLH = 14;
__I2SCLL = 14;
__I2CONCLR = 0xff;
__I2CONSET = 0x40;
__I2CONSET_bit.i2en = 1;
// START
__I2CONSET_bit.sta = 1;
while (!(__I2CONSET_bit.si)); // SI wait
if (__I2STAT == 0x08)
{
// write chip addr
__I2DAT = CHIP_ADDR | WRITE;
__I2CONCLR_bit.sic=1; // clear SI
while (!(__I2CONSET_bit.si)); // SI wait
if (__I2STAT == 0x18)