Здравствуйте. Есть вопрос.
Пытаюсь подключить АТ24С16 к LPC1751 по шине i2c канала 1 контролера апаратно.
Нашел пример с кейла(в файле i2c.rar проект).
Заменил адрес датчика на адрес #define LM75_ADDR 0x50 памяти АТ24С16,
подкоректировал канал из i2c0 на i2c1,
и инициализацию
LPC_SC->PCONP |= (1 << 19);
/* set PIO0.0 and PIO0.1 to I2C0 SDA and SCK */ /* function to 11 on both SDA and SCK. */
LPC_PINCON->PINSEL0 |= 0x0F;
LPC_I2C1->I2CONCLR = 0x40;
LPC_I2C1->I2SCLL = I2SCLL_SCLL;
LPC_I2C1->I2SCLH = I2SCLH_SCLH;
/* Install interrupt handler */
NVIC_EnableIRQ(I2C1_IRQn);
LPC_I2C1->I2CONSET = I2CONSET_I2EN;
по примеру
I2CWriteLength = 3;
I2CReadLength = 0;
I2CMasterBuffer[0] = 0x50;
I2CMasterBuffer[1] = 0;
I2CMasterBuffer[2] = 49;
I2CEngine();
должно записать число 49 в ячейку 0 еепрома
но при чтении таким образом:
I2CWriteLength = 3;
I2CReadLength = 1;
I2CMasterBuffer[0] = 0x50;
I2CMasterBuffer[1] = 0;
I2CMasterBuffer[2] = 0x50;
I2CEngine();
в I2CMasterBuffer инфа не меняется, подскажите что не так, или подкиньте вариант попроще.
Нужно писать и читать байт по адресу. можна даже первые 256 байт.
да, чуть не забыл, сигналы на ногах scl и sda есть, но форма пока не извесна, может завтра найду осцилограф с памятью и отпишусь.
частоту тоже изменял примерно от 1 до 100 кгц
Сообщение отредактировал e_one - Jun 9 2010, 20:26
Прикрепленные файлы
I2C.rar ( 21.98 килобайт )
Кол-во скачиваний: 14