Почему на 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) |
|---|---|---|---|
| D13 | PA5 | светодиод LD2 (зелёный) | SPI1_SCK (AF5), ADC1_IN5, GPIO |
| D12 | PA6 | — | SPI1_MISO |
| D11 | PA7 | — | 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».
Источники
- 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)
- 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
Нашли ошибку?
Смотрите также
- Платы ST: Nucleo и DiscoveryNucleo-32/64/144, Discovery и Evaluation: контакты ARDUINO, выводы МК, занятые на плате
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- GPIO STM32Режимы выводов, регистры F1 и F4, BSRR, AF, скорость, токи, 5 В, код
- Альтернативная функция выводаAF: вывод под управлением периферии вместо порта
- Делитель SPI STM32BR[2:0], шина APB, предел SCK по даташиту, режимы и код