I2C восстанавливается после растяжения часов мастером - PullRequest
0 голосов
/ 15 мая 2018

При растяжении часов, если ведомое устройство удерживает линию часов на низком уровне, мастер должен ждать, чтобы принять решение о любом ACK на линии.Поскольку ведомое устройство может выпускать тактовый сигнал в любое время, как мы интерпретируем значение строки SDA, если ведомое устройство освобождает тактовые импульсы, например, 3/4 пути тактового сигнала ведущего устройства?Позвольте мне проиллюстрировать это на примере

  • Рассмотрим ведущее устройство I2C с тактовой частотой 100 кГц (период 10 мкс).
  • Когда ведущий передает, в SCL наблюдается нарастающий фронткаждые 5 мкс.
  • В течение периода ACK предположим, что ведомое устройство удерживает линию SCL на низком уровне в течение первых 7,5 мкс периода ACK
  • При предположении 7,5 мкс ведомое устройство освобождает SCL при отправкеПДД низкая.
  • В этом случае линия SCL будет высокой в ​​течение 2,5 мкс, прежде чем снова опуститься до минимума, а затем продолжит свой период в 10 мкс.
  • Далее, предположим, что ведомое устройство затем разрешает SDA повышаться до того, какследующий передний фронт SCL (т. е. он удерживает SDA на низком уровне менее 7,5 мкс)
  • Какой передний фронт SCL указывает действительное значение SDA?
    • Это первый нарастающий фронт (где SCL остается высоким только на 2,5 мкс)?
    • Или это 2-й нарастающий фронт, который является частью полного тактового периода SCL (5 мс,а затем 5 нас максимум)?

1 Ответ

0 голосов
/ 22 июня 2018

Я думаю, что ваша предпосылка неверна с самого начала.Для тактовой частоты 100 кГц передний фронт на линии SCL происходит каждые 10 мкс.Таким образом, нет второго повышающегося уровня, который вызывает беспокойство.

...