Добрый день.
работаю с lpc2148, разработка под gnu (WinARM), код работает из флеш памяти (MAM включен), кристал 12MHz, процессор работает на 60MHz, скорость переферийной шины 30Mz. I2C0 сконфигурирован на частоту SCL=100KHz пытаюсь работать с микросхемой PCF8583 (часы RTC) - выдаю на I2CO сигнал START, получаю ACK (все ОК - мастер занял шину I2C) - передаю адрес устройства (A2) + WRITE bit, на шине NACK - т.е. PCF8583 не смог подтвердить свой адрес и готовность к работе
Снижаю частоту проца до 48MHz, скорость переферийной шины 12Mhz, I2C0 SCL=100KHz получаю - выдаю на I2CO сигнал START, получаю ACK (все ОК - мастер занял шину I2C) - передаю адрес устройства (A2) + WRITE bit, на шине ACK - т.е. PCF8583 подтверждает свой адрес и дальше все работает как ожидается (данные считываются) если поднимать частоту переферийной шины до 24Mhz или 48Mhz, оставляя I2C0 SCL=100KHz, то опять адрес устройства не подтверждается.
Может кто нибудь объяснить в чем проблема и почему несмотря на одинаковое значение SCL=100KHz, работа I2C зависит от скорости переферийной шины?
Спасибо
|