ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
65283
Argon (16.08.2006 07:21, просмотров: 3576)
i2c LPC2148 столкнулся с проблемой взаимосвязи LPC2148 и i2c EEPROM и RTC. Процедура чтения ячейки с произвольным адресом со стороны LPC: 1. старт 2. передать адрес slave с битом "запись" 3. передать адрес внутри устройства 4. снова старт 5. передать адрес slave с битом "чтение" 6. получить данные. Проблема странного характера в том, что после п. 5 возникает состояние потеря шины 0x38 в LPC. Причем это возникает примерно 1 раз в 500 чтений. Изначально заметил это при редком ошибочном чтении времени с RTC. Затем для тестирования зациклил чтение из одной ячейки EEPROM. Прерывания и всю прочую периферию отключил. i2c процедуры основаны не на прерываниях, а на опросе флагов. Осциллом наблюдаются очень короткие пички на линии SDА в казалось бы произвольные моменты времени. Но иногда кажется, что у них есть период около 10 кГц. Нигде залипаний на печатной плате нет. Линии SDA и SCL идут только на 24LC64 и DS1307. i2c контроллер настроен на 100 кГц. Переключений портов на вход-выход и вообще работы с портами нет (кроме инициализации, конечно). Может, Errata есть на эту тему? Сам пока не нашел...