Две скорости SPI на одной шине - PullRequest
0 голосов
/ 13 марта 2020

Я реализую SPI-связь между Raspberry 3b + (Buster, ядро ​​4.19) и

  1. расширителем GPO MCP23S17
  2. четыре драйвера двигателя на основе 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 схемы

...