Вторую ошибку тоже нашли. Буферы не могут быть соединены сторонами В друг к другу. В даташите рассказывается почему:
На самом деле подобный механизм реализован во всех буферах с такой архитектурой (как на картинке). Как верно пишут в даташите, это сделано для того, чтобы буфер не входил в lockup. Как происходит lockup?
Предположим, на вход А приходит логический 0 (Va=0В). Микросхема идеально транслирует этот 0 на выход B (Vb=0В). Поскольку буфер двунаправленный, он "слушает" свой вход В, видит этот логический 0 и, не понимая, что сам его выставил, выставляет выход А также в 0. Когда устройство на стороне А отпускает шину - Va остается на 0В, из за того, что буфер сам себя заблокировал (lockup). Чтобы обойти эту проблему придумали сдвигать логический уровень нуля (Vol_b) выше, чем Vil_b на 70мВ. В этом случае буфер не может сам себя заблокировать, а другая микросхема на стороне В обязана выдавать уровень Vol ниже, чем Vil_b.
С этим и связан запрет соединять два буфера последовательно сторонами В. На диаграмме показан пример, как работает буфер в случае, если мастер находится на стороне А, а слейв - на стороне В. При трансляции данных от мастера буфер использует Vol = ~0.5B, за счет этого логический 0 приподнят относительно земли. Когда же слейв на стороне В отвечает, он притягивает линию к 0, его Vol ~0 (нет намеренного сдвига). Драйвер видит это напряжение и транслирует на сторону А мастера. Такое вот простое решение для проблемы lockup, которое, однако, требует соблюдения правил.
The type of buffer design on the B-side prevents it from being used in series with devices which use static voltage offset. This is because these devices do not recognize buffered low signals as a valid low and do not propagate it as a buffered low again. The B-side drivers operate from 2.7V to 5.5V. The output low level for this internal buffer is approximately 0.5V, but the input voltage must be 70mV or more below the output low level when the output internally is driven low. The higher-voltage low signal is called a buffered low. When the B-side I/O is driven low internally, the low is not recognized as a low by the input. This feature prevents a lockup condition from occurring when the input low condition is released.
На самом деле подобный механизм реализован во всех буферах с такой архитектурой (как на картинке). Как верно пишут в даташите, это сделано для того, чтобы буфер не входил в lockup. Как происходит lockup?
Предположим, на вход А приходит логический 0 (Va=0В). Микросхема идеально транслирует этот 0 на выход B (Vb=0В). Поскольку буфер двунаправленный, он "слушает" свой вход В, видит этот логический 0 и, не понимая, что сам его выставил, выставляет выход А также в 0. Когда устройство на стороне А отпускает шину - Va остается на 0В, из за того, что буфер сам себя заблокировал (lockup). Чтобы обойти эту проблему придумали сдвигать логический уровень нуля (Vol_b) выше, чем Vil_b на 70мВ. В этом случае буфер не может сам себя заблокировать, а другая микросхема на стороне В обязана выдавать уровень Vol ниже, чем Vil_b.
С этим и связан запрет соединять два буфера последовательно сторонами В. На диаграмме показан пример, как работает буфер в случае, если мастер находится на стороне А, а слейв - на стороне В. При трансляции данных от мастера буфер использует Vol = ~0.5B, за счет этого логический 0 приподнят относительно земли. Когда же слейв на стороне В отвечает, он притягивает линию к 0, его Vol ~0 (нет намеренного сдвига). Драйвер видит это напряжение и транслирует на сторону А мастера. Такое вот простое решение для проблемы lockup, которое, однако, требует соблюдения правил.