Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2743
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

SPI

440

15.1.2. Управление сигналом Slave Select

Как было сказано ранее, ведомые устройства SPI не имеют адреса, который идентифицирует их на шине, но они начинают обмениваться данными с ведущим, пока сигнал Slave Select (SS) находится на НИЗКОМ логическом уровне. Микроконтроллеры STM32 предоставляют два различных режима для обработки сигнала SS, который в документации по ST называется NSS. Давайте проанализируем их.

Программный режим NSS: Сигнал SS управляется микропрограммой, и любой свободный GPIO можно использовать для управления ИС при работе микроконтроллера в режиме ведущего, или для обнаружения начала передачи другим ведущим устройством, если микроконтроллер работает в режиме ведомого.

Аппаратный режим NSS: для управления сигналом SS используется специальный I/O микроконтроллера, и он внутренне управляется интерфейсом SPI. В зависимости от конфигурации вывода NSS возможны две конфигурации:

Выход NSS включен: эта конфигурация используется только тогда, когда устройство работает в режиме ведущего. Сигнал NSS подается НИЗКИМ, когда ведущее устройство начинает связь, и поддерживается НИЗКИМ, пока SPI не отключится. Важно отметить, что этот режим подходит, когда на шине имеется только одно ведомое устройство SPI и его вывод SS подключен к сигналу NSS. Данная конфигурация не допускает многоведущий режим.

Выход NSS отключен: эта конфигурация допускает использование многоведущего режима для устройств, работающих в режиме ведущего. Для устройств, сконфигурированных как ведомые, вывод NSS действует как классический вход NSS: ведомый выбирается, когда NSS НИЗКИЙ, и отменяется, когда NSS ВЫСОКИЙ.

15.1.3. Режим TI периферийного устройства SPI

Периферийные устройства SPI в микроконтроллерах STM32 поддерживают режим TI (TI Mode) при работе в режиме ведущего и когда сигнал NSS сконфигурирован для аппаратной работы. В режиме TI полярность и фаза тактового сигнала автоматически устанавливаются в соответствии с протоколом Texas Instruments независимо от установленных значений. Управление NSS также определено протоколом TI, что делает конфигурацию управления NSS прозрачной для пользователя. Фактически, в режиме TI сигнал NSS совершает серию импульсов в конце каждого передаваемого байта (он переходит от НИЗКОГО к ВЫСОКОМУ в начале передачи LSB-бита и с ВЫСОКОГО к НИЗКОМУ в начале передачи MSB-бита, формируя следующий передаваемый байт). Для получения дополнительной информации об этом режиме связи обратитесь к справочному руководству по микроконтроллеру, который вы рассматриваете.

15.1.4.Наличие периферийных устройств SPI в микроконтроллерах STM32

В зависимости от типа семейства и используемого корпуса микроконтроллеры STM32 могут предоставлять до шести независимых периферийных устройств SPI. Таблица 2 резюмирует доступность периферийных устройств SPI в микроконтроллерах STM32, оснащающих все шестнадцать плат Nucleo, которые мы рассматриваем в данной книге.

SPI

441

Таблица 2: Доступность периферийных устройств SPI в микроконтроллерах, оснащающих все шестнадцать плат Nucleo

В таблице 2 показаны микроконтроллеры STM32 и их выводы, соответствующие линиям MOSI, MISO и SCK, для каждого периферийного устройства SPI. Кроме того, более темные строки показывают альтернативные выводы, которые можно использовать при разводке платы. Например, для микроконтроллера STM32F401RE, мы можем увидеть, что периферийное устройство SPI1 отображается на PA7, PA6 и PA5, но PB5, PB5 и PB3 также могут использоваться в качестве альтернативных выводов. Обратите внимание, что периферийное устройство SPI1 использует одинаковые выводы I/O во всех микроконтроллерах STM32 с корпусом LQFP-64. Это еще один яркий пример совместимости между выводами, предлагаемой микроконтроллерами STM32.

Теперь мы готовы рассмотреть, как использовать API-интерфейсы CubeHAL для программирования данного периферийного устройства.