Перейти к содержанию

Почему на Nucleo-64 светодиод LD2 мигает, когда работает SPI?

Обновлено Редакция GAW

На контакты D11, D12 и D13 разъёма ARDUINO у Nucleo-64 ST разводит выводы PA7, PA6 и PA5 (UM1724, табл. 11–23) — у STM32F401 это MOSI, MISO и SCK модуля SPI1, по ним шилды работают с шиной SPI. Одновременно на PA5 сидит зелёный пользовательский светодиод: так указано в проектах плат ST для STM32CubeMX. У большинства плат он называется LD2, у NUCLEO-L452RE — LD4.

Что подключено к PA5

КонтактВыводЧто на платеФункции вывода (STM32F401)
D13PA5светодиод LD2 (зелёный)SPI1_SCK (AF5), ADC1_IN5, GPIO
D12PA6—SPI1_MISO
D11PA7—SPI1_MOSI

Функции — по базе ST для STM32F401 (альтернативные функции); у других микроконтроллеров Nucleo-64 сверяйтесь со страницей своей платы в разделе «Платы ST». У NUCLEO-F302R8 D11–D13 подключены к PB15, PB14 и PB13 (SPI2), но и там светодиод LD2 стоит на D13 — на PB13, линии SPI2_SCK.

Что из этого следует

  • Мигание в такт SPI. Каждая передача — серия импульсов SCK, и светодиод вспыхивает. Наш вывод: это признак того, что SPI1 работает, а не неисправность.
  • Нельзя мигать LD2 при работающем SPI1. Вывод настроен либо как GPIO, либо как SCK — режимы выводов разобраны в статье «GPIO STM32».
  • Пример «мигалки» конфликтует с шилдом. Если в программе остался код, который мигает LD2, а шилд работает по SPI на D11–D13, обмен будет сбоить.

Частоту SPI для своего устройства подберёт калькулятор делителя SPI STM32.

Похожие вопросы

Можно ли использовать LD2 и SPI1 одновременно?

Нет: в каждый момент PA5 настроен либо как выход GPIO для светодиода, либо как альтернативная функция SPI1_SCK. Если программа переключит вывод на GPIO, чтобы мигнуть LD2, такт SPI пропадёт и обмен с устройством на шине сломается (наш вывод).

А у NUCLEO-F302R8?

Так же, только на другом выводе: по UM1724 у этой платы D11–D13 подключены к PB15, PB14 и PB13 — выводам SPI2, а светодиод LD2 по проекту платы ST висит на PB13, то есть на D13 и линии SPI2_SCK. Он мигает в такт SPI2, а не SPI1.

У Nucleo-32 тоже так?

У Nucleo-32 контакт D13 подключён к PB3, а не к PA5. У NUCLEO-L432KC на PB3 по проекту платы ST тоже висит светодиод — LD3, а PB3 у STM32L432 может быть SPI1_SCK. Выводы, занятые на вашей плате, смотрите на её странице в разделе «Платы ST».

Источники

  1. STMicroelectronics. UM1724: STM32 Nucleo-64 boards (MB1136), User manual, Rev 17 (September 2025) — табл. 11–23: D13 — PA5, D12 — PA6, D11 — PA7 у всех плат MB1136, кроме NUCLEO-F302R8 (у неё D11–D13 — PB15, PB14, PB13)
  2. STMicroelectronics. STM32_open_pin_data, boards/ и mcu/ — проекты плат Nucleo-64 на MB1136: зелёный светодиод на PA5 — LD2 у NUCLEO-F0, F1, F3 (кроме F302R8), F4, L0, L1 и L476RG, LD4 у NUCLEO-L452RE; у NUCLEO-F302R8 — LD2 на PB13; STM32F401R(D-E)Tx: PA5 — SPI1_SCK (AF5) и ADC1_IN5

Нашли ошибку?