GigaDevice / SPI |
| Си | | ||
в палитре | на схеме |
Данный блок реализует дуплексный обмен с внешними устройствами по шине SPI в режиме MASTER, используя DMA и прерывания. Длина слова SPI - 1 байт.
В блоках «Настройка контроллера DMA» и «Настройка контроллера SPI» необходимо настроить параметры (см. пример работы). Количество передаваемых байт через DMA = data_size ( + 2, если используется CRC16). Вывод NSS должен быть настроен в режиме SOFTWARE. Данные передаются на вход блока, принимаются с выхода блока.
При необходимости возможно включить CRC16 данных на прием и передачу. Тогда два последних байта посылки - CRC16. Если используется CRC16, то выход «crc_err» сигнализирует об ошибке передачи уровнем единицы. CRC16 считается табличным методом, используя функцию, определенную в файле «uart.h».
Для работы данного блока может использоваться прерывание FTF (full transfer finish) по каналу DMA SPI_RX для снятия сигнала выбора устройства NSS. Если снятие сигнала не требуется, прерывание возможно отключить, в этом случае сигнал NSS включиться один раз при включении контроллера и не будет снят до его выключения (может привести к некорректной работе некоторых устройств на шине SPI). В настройках блока возможно изменить его приоритет. Также возможно не использовать сигнал NSS.
При кодогенерации используется стандартная библиотека GD32F10X v2.2.0, предоставляемая производителем микроконтроллеров GigaDevice. Подробные настройки можно найти в документации на микроконтроллер.
Имя | Описание | Тип линии связи |
---|---|---|
tx_data | Порт входа данных SPI | Математическая |
Имя | Описание | Тип линии связи |
---|---|---|
rx_data | Порт выхода данных SPI | Математическая |
crc_err | Ошибка передачи (ошибка CRC) | Математическая |
Название | Имя | Описание | По умолчанию | Тип данных |
---|---|---|---|---|
Выбор приемопередатчика SPI | SPI | Возможные значения: «SPI0», «SPI1», «SPI2» | SPI0 | Перечисление |
Количество слов данных | data_size | Возможные значения: целое число | 1 | Целое |
Использовать пин NSS в режиме MASTER | NSS | Активация использования пина NSS в режиме MASTER. Возможные значения: «Да», «Нет» | Да | Двоичное |
Использовать проверку CRC16 | CRC_ON | Возможные значения: «Да», «Нет» | Да | Двоичное |
IRQ | Настройка IRQ | |||
Включить прерывание DMA FTF | IRQ_ON | Активация прерывания DMA FTF. Возможные значения: «Да», «Нет» | Да | Двоичное |
Приоритет прерывания | IRQ_PRI_PRE | Возможные значения: целое число от «0» до «4», высший приоритет «0», низший - «4» | 3 | Целое |
Субприоритет прерывания | IRQ_PRI_SUB | Возможные значения: целое число от «0» до «4», высший приоритет «0», низший - «4» | 3 | Целое |
Блок не имеет параметров.