При растяжении часов, если ведомое устройство удерживает линию часов на низком уровне, мастер должен ждать, чтобы принять решение о любом 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 нас максимум)?