I2C Slave на STM32G4

Понадобилось мне для проекта по приколу сделать i2c slave (ведомого устройства), но не просто эмуляцию одного устройства (например eeprom), а сразу эдакого эмулятора с, если можно это так назвать, API, к которому можно уже привязывать эмуляции конкретных реализаций устройств на произвольные адреса. На тему реализации ведомых устройств на STM32 с использованием LL я как-то не особо много инфы нарыл, в итоге накостылил, как сам понял :D Тест отвёрткой проходит, хотя первые реализации иногда прям залипали намертво. В статье я не буду глубоко описывать регистры, саму работу шины, прочее, этого добра навалом. Просто окунёмся в дип дарк фэнтези реализацию эмулятора простейшего тача cst816s.

https://habr.com/ru/articles/933604/

#stm32g4 #STM32G431 #stm32g474 #i2c #i2c_slave #i2c_master

I2C Slave на STM32G4

Понадобилось мне для проекта по приколу сделать i2c slave (ведомого устройства), но не просто эмуляцию одного устройства (например eeprom), а сразу эдакого эмулятора с, если можно это так назвать,...

Хабр

Конечный Aвтомат Аппаратного I2C-Трансивера

В этом тексте я показал как конечный автомат может работать ядром для драйвера аппаратного I2C трансивера. Меня удивляет, что в оригинальном коде от вендоров микроконтроллеров программисты прошли мимо конечных автоматов при написании I2C кода внутри своих официальных uHAL. Непорядок... В связи с этим мне пришлось разрабатывать собственный полноценный драйвер I2C буквально на физических регистрах I2C трансивера.

https://habr.com/ru/articles/856548/

#i2c #конечные_автоматы #fsm #finite_state_machine #nau8814 #ASIC #hal #mcal #C #i2c_master

Конечный Aвтомат Аппаратного I2C-Трансивера

Пролог Накануне я столкнулся с ситуацией, когда берешь uHAL драйвер от вендора микроконтроллера, собираешь его как в примерах и код не работает. Никогда такого не было, и вот опять... На этот раз...

Хабр