Архив рубрики «SPI»

STM32 SPI. Использование прерываний

В модуле SPI предусмотрено 5 событий, могущих генерировать запрос на прерывание. Ниже приведена таблица из документации. В ней показано: события, генерирующие прерывания, соответствующие этим событиям  флаги и способ управления прерываниями от этих событий:

image

Первый столбец этой таблицы – события, генерирующие прерывания, второй – их флаги (расположены в регистре SR), третий – разряды регистра CR2, которые разрешают/запрещают прерывание от определенного события. Рассмотрим события подробнее:

Прочитать остальную часть записи »

STM32 SPI Инициализация и работа

Чтобы настроить модуль SPI для работы в режиме ведущего (этот режим чаще всего используется)  необходимо выполнить следующие действия:

  1. Задать скорость обмена разрядами BR[2:0] регистра SPI_CR1.
  2. Задать полярность и фазу тактового сигнала разрядами CPOL и CPHA регистра SPI_CR1.
  3. Задать формат данных (8 или 16 бит) разрядом DFF регистра SPI_CR1.
  4. Задать порядок передачи данных (первым или последним битом вперед) разрядом LSBFIRST регистра SPI_CR1.
  5. Если вывод NSS будет использоваться для аппаратной подачи сигнала NSS – установить разряд SSOE регистра SPI_CR1. Если он сконфигурирован как вход этого сигнала – подать на него высокий уровень.
  6. Установить разряды MSTR и SPE регистра SPI_CR1 для перевода модуля в режим ведущего и включения его.

Посмотрим как это выглядит на практике.
Прочитать остальную часть записи »

STM32 SPI. Описание регистров

Модуль SPI имеет 9 регистров. Некоторые из них используются для работы в режиме I2S. Я рассмотрю только те регистры, которые нужны для работы обычного режима SPI. К ним относятся следующие:

  1. SPI_CR1 – первый управляющий регистр;
  2. SPI_CR2 – второй управляющий регистр;
  3. SPI_SR – регистр статуса, содержит флаги;
  4. SPI_DR – регистр данных;
  5. SPI_CRCPR – регистр,содержащий полином для вычисления CRC;
  6. SPI_RXCRCR – регистр,содержащий CRC принятых данных;
  7. SPI_TXCRCR – регистр,содержащий CRC передаваемых данных;

Прочитать остальную часть записи »

STM32 SPI Введение

Модуль SPI обеспечивает высокоскоростной обмен данными между микроконтроллером и различными переферийными устройствами, такими как цифровые потенциометры, ЦАП/АЦП, карты памяти, другие микроконтроллеры.

Приведенная ниже схема показывает, что из себя представляет этот интерфейс:

image

Прочитать остальную часть записи »