Как работает управление несколькими подчиненными устройствами к одному главному программному обеспечению SPI - PullRequest
1 голос
/ 01 декабря 2019

Я использую STM32H7 семейство микроконтроллеров, как SPI Master Transmit устройство, которое необходимо, чтобы поговорить с ведомыми устройствами 4 SPI получают только которые также все STM32H7 MCU. И ведущий, и ведомый настроены для управления ведомым программным обеспечением. Путаница заключается в том, как ведомый будет определять, когда мастер хочет с ним поговорить или передать данные без использования аппаратного контакта NSS? Как подчиненное устройство начнет получать в этом сценарии и перестанет получать, когда все данные переданы?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2019

Это очень просто. У каждого раба есть один контакт, который называется CS. Вам нужно выбрать это устройство, установив этот вывод, просто используя GPIO. После этого вы можете передавать или принимать данные. Помните, что мастер должен предоставлять часы, даже если он хочет только получать данные.

1 голос
/ 02 декабря 2019

Если вы используете Software Slave Select (NSS) , вы должны выбрать и отменить выбор интерфейса SPI с помощью программного обеспечения.

Как правило,вы должны настроить внешнее прерывание на выводе, используемом в качестве NSS / CS, и выбрать / отменить выбор интерфейса SPI при его срабатывании.

На микросхеме STM32F1 интерфейс SPI выбирается / отменяется путем установки / сбросаSSI бит в регистре SPI_CR1. Я предполагаю, что это очень похоже на чипе STM32H7.

1014 * Обновление 1018 * Я только что проверил STM32H7 и это точно так же.
...