Я реализую SPI-связь между Raspberry 3b + (Buster, ядро 4.19) и
- расширителем GPO MCP23S17
- четыре драйвера двигателя на основе TI28069M
MCP используется для мультиплексирования линий выбора микросхем для микросхем TI. Я реализовал все это в c ++, используя два устройства spidev с разными скоростями SCLK.
Если я использую все устройства на одной и той же линии SCLK, MISO и MOSI, я получаю странное поведение, когда строки MISO отсутствуют между 2 и 3 биты (искаженные данные)
Сначала я говорю с MCP, установив один из его низких значений GP IOs в качестве CS для чипов TI. Тогда я говорю с чипом TI. Поскольку уровень CS высок, пока я разговариваю с MCP, проблем с микросхемами TI быть не должно, но кажется, что микросхемы TI запутались.
Я исправил проблему, используя вторую шину SPI RasPis, но я все еще работаю Любопытно, кто-нибудь может объяснить поведение?
edit: Схемы c схемы