Почему на Nucleo-144 с Ethernet не работает SPI на контакте D11?
Обновлено Редакция GAW
На Nucleo-144 контакты ARDUINO входят в разъёмы ST Zio, и D11 по умолчанию подключён к PA7 — у STM32F429 это SPI1_MOSI, линия передачи шины SPI. У плат с Ethernet к тому же PA7 подключена микросхема PHY: это сигнал CRS_DV интерфейса RMII. Соединяет их перемычка JP6, и по умолчанию она установлена (UM1974, примечание 2).
Что подключено к D11
| Вариант | D11 | PA7 | Ethernet | SPI на D11 |
|---|---|---|---|---|
| По умолчанию | PA7 | SPI1_MOSI и RMII_CRS_DV через JP6 | работает | сбоит: на линии ещё и PHY |
| JP6 снята | PA7 | только SPI1_MOSI | не работает | работает |
| D11 переведён на PB5 | PB5 | RMII_CRS_DV | работает | работает на PB5 |
Функции выводов — из базы ST для STM32F429ZI: SPI1_MOSI на PA7 и PB5 подключается альтернативной функцией AF5, ETH_CRS_DV на PA7 — AF11. Наш вывод: при установленной JP6 сигнал CRS_DV — выход PHY — и выход MOSI оказываются на одной линии, поэтому UM1974 и предписывает для SPI на D11 снять JP6 или переключить D11.
Как выбрать
- Ethernet не нужен — снимите JP6.
- Нужны оба — переведите D11 на PB5 перемычками из таблицы UM1974 и настройте SPI1_MOSI на PB5.
Какие ещё выводы заняты на конкретной плате — Ethernet, USB, светодиоды — показано на её странице в разделе «Платы ST», а устройство Ethernet у микроконтроллеров — в статье «Ethernet для микроконтроллера».
Похожие вопросы
Можно ли пользоваться Ethernet и SPI на D11 одновременно?
Да, если перевести D11 на PB5: тогда PA7 остаётся за Ethernet (RMII_CRS_DV через JP6), а SPI1_MOSI выходит на PB5. Номера перемычек для переключения D11 смотрите в таблице перемычек UM1974 для вашей платы.
Каких плат это касается?
По UM1974 — плат Nucleo-144 с Ethernet: в наших таблицах это NUCLEO-F207ZG, NUCLEO-F429ZI, NUCLEO-F439ZI, NUCLEO-F746ZG, NUCLEO-F756ZG, NUCLEO-F767ZI и NUCLEO-H743ZI. У плат без Ethernet PA7 на D11 свободен.
Что будет, если снять JP6?
PA7 отключится от PHY и будет только на D11 — SPI заработает, но Ethernet останется без сигнала RMII_CRS_DV и работать не будет (наш вывод). Если Ethernet нужен, вместо снятия JP6 переводите D11 на PB5.
Источники
- STMicroelectronics. UM1974: STM32 Nucleo-144 boards (MB1137), User manual, Rev 11 (August 2025) — табл. 13–20: D11 по умолчанию подключён к PA7, перемычками его переключают на PB5; примечание 2 к табл. 13, 17, 19 и 20 (платы с Ethernet): PA7 идёт ещё и к PHY как RMII_CRS_DV, пока установлена JP6; для SPI на D11 перемычку снимают или переключают D11 на PB5
- STMicroelectronics. STM32_open_pin_data, boards/ и mcu/ — проект платы NUCLEO-F429ZI: PA7 — RMII_CRS_DV [LAN8742A-CZ-TR_CRS_DV], сигнал ETH_CRS_DV; STM32F429ZITx: PA7 — SPI1_MOSI (AF5) и ETH_CRS_DV (AF11), PB5 — SPI1_MOSI (AF5) и SPI3_MOSI (AF6)
Нашли ошибку?
Смотрите также
- Платы ST: Nucleo и DiscoveryNucleo-32/64/144, Discovery и Evaluation: контакты ARDUINO, выводы МК, занятые на плате
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- Ethernet для микроконтроллераW5500, ENC28J60, MAC + PHY по RMII, LAN8720, DP83848, трансформатор и разводка
- MII и RMIIПараллельные интерфейсы между MAC и PHY Ethernet
- Альтернативная функция выводаAF: вывод под управлением периферии вместо порта