У меня есть микроконтроллер STM32L, подключенный к M24LR64E, I2C EEPROM. Раньше у меня эта настройка работала, но потом я кое-что изменил (разметка, прошивка) и как-то напортачил с I2C, и теперь она не работает.
Я использую его с режимом I2C_DutyCycle_2 на частоте 100 кГц, подтяжка 4,7 кГц на линиях SDA и SCL. Все на плате работает на 3.3v. Ниже показан снимок обеих линий SCL/SDA в моем прицеле, к сожалению, у меня нет логического анализатора, с которым можно было бы поиграться.
Большинство снимков I2C, которые я нашел в Google, кажутся очень «хорошими» с прямоугольными сигналами нарастания/падения, а мой выглядит совсем иначе.
Какие-либо предложения? Подходит ли прикрепленное изображение для шины I2C?
Большое спасибо.
Зафиксированный. Благодаря Оли Глейзеру я исправил процедуру настройки часов, и захваты теперь выглядят очень хорошо, но основная проблема (MCU не читает EEPROM) осталась. После многих часов отладки, проб/ошибок, таблиц данных, исправлений, форумов и т. д. я обнаружил, что каким-то образом я изменил АДРЕС ПОДЧИНЕННОГО УСТРОЙСТВА в своем коде, поэтому EEPROM не отвечал, потому что я не вызывал его должным образом!
Для любого будущего читателя 7-битный адрес устройства для этого устройства должен быть 0x53 или 1010011b (не забудьте правильный сдвиг влево и установите бит чтения/записи, чтобы получить полный байт).
Спасибо за всю помощь, и, как и ожидалось, я МНОГОЕ узнал из этой проблемы!
Оли Глейзер
105 крон
105 крон
105 крон
Оли Глейзер
Шип
105 крон