‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Categories:

worklog: бодаюсь с I2C в STM32F030

вроде всё просто, но не работает. Запись в микроконтроллер я вроде освоил - жду событие "Adress match", смотрю на бит "DIR" и если он равен нулю - значит, кто-то хочет что-то нам прислать. Читаю байт и дальше уже более-менее тривиально - выдаю NACK, если не хочу больше данных или ACK, если хочу.. затем ведущее устройство генерирует состояние STOP и транзакция завершается.

А вот в обратную сторону - фиг. Приходит адрес, бит DIR равен единице - значит, кто-то хочет нас о чём-то спросить. Кладу байтик в регистр передатчика и ... всё. Процесс застывает, обе линии (SCL/SDA) застреваеют в нижнем состоянии. Причём, как я понимаю, тактирование для чтения должно выдавать ведующее устройство (иначе как бы можно было читать всякие там EEPROMы?), но почему-то это не происходит - я вижу только один байт (адрес) и после него тишина. Получение адреса автоматически ACKается, так что вряд ли в этом дело, но в чём?
Subscribe

  • Короче, записывайте

    Баночка красной фасоли (200 гр вполне достаточно, но можно и больше). Можно и белой. Можно даже зелёный горошек, но фасоль лучше. Черешок-другой…

  • И о погоде

    С одной стороны, день обещает быть шикарным и надо бы воспользоваться такой возможностью для дополнительных съёмок места "Ш". С другой стороны,…

  • А ещё и инфракрасные

    поставками оружия Киеву западные страны пересекают не только красные, но и "бордовые" линии

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments