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

Categories:

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

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

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

  • Кончита Ваенга

    ( Сорц) Интересено, а вот ежели бы такое попробывать в мичете?..

  • О настоящем патриоте.

    Олег Матвейчев - лживый идиот и распространитель плоскозёмной пропаганды. Впрочем, ничего нового.

  • штоу?

    и достигл высокой эффективности колумбической системы 99,9%

  • 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