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

Почему на контактах A4 и A5 платы Nucleo нет I²C?

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

У Nucleo-64 модуль I2C1 выведен на контакты D14 и D15 — они стоят на разъёме сразу после GND и AREF (UM1724, табл. 11–23). Шилды, рассчитанные на I²C на аналоговых контактах A4 и A5, как у ARDUINO Uno V1, без доработки платы шину не найдут: ST оставляет такую совместимость на перемычках (разд. 7.13).

Nucleo-64: что где по умолчанию

Контакт ARDUINOПо умолчаниюПосле перестановки перемычекФункция
A4PC1 (аналоговый вход)PB9I2C1_SDA
A5PC0 (аналоговый вход)PB8I2C1_SCL
D14PB9PB9I2C1_SDA
D15PB8PB8I2C1_SCL

Перестановка — замкнуть SB46 и SB52, разомкнуть SB51 и SB56. Функции выводов — из базы ST: на PB8 и PB9 у STM32F401 модуль I2C1 подключается альтернативной функцией AF4. Это одинаково для всех плат Nucleo-64 на MB1136, у которых таблицы UM1724 дают D14 = PB9 и D15 = PB8.

Nucleo-144

У Nucleo-144 контакты A4 и A5 тоже по умолчанию аналоговые — у большинства плат, например на STM32F429 и F767, это PF5 и PF10, — и перемычками на них выводят I2C1 (PB9 и PB8). Номера перемычек свои: смотрите таблицу перемычек UM1974 для вашей платы. Контакты для каждой платы собраны в разделе «Платы ST».

Если I²C всё равно не работает

Наш вывод: после перестановки нужно ещё и настроить в программе PB8 и PB9 как I2C1 — режим открытого стока и альтернативную функцию, — о режимах выводов в статье «GPIO STM32». Подтяжки линий, адрес устройства и сигнал на шине проверяют по порядку из ответа «Как проверить шину I2C»; сама шина описана в статье «I²C».

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

Нужно ли трогать перемычки, если шилд использует D14 и D15?

Нет: у Nucleo-64 контакты D14 и D15 уже подключены к PB9 и PB8 — линиям SDA и SCL модуля I2C1. Перемычки нужны только шилдам, которые берут I²C с A4 и A5, как платы под старый ARDUINO Uno.

Что я потеряю, если переставлю перемычки?

Аналоговые входы PC1 и PC0 на контактах A4 и A5: SB51 и SB56 их отключают. Кроме того, A4 окажется соединён с D14, а A5 — с D15, потому что это один и тот же вывод STM32 (наш вывод из таблиц UM1724).

Как переставить перемычку SB на плате?

Перемычки SB (solder bridge) — пары площадок на плате, которые замыкают припоем. Замкнуть — соединить площадки каплей припоя, разомкнуть — удалить припой паяльником и оплёткой (наш вывод). Где находится каждая перемычка и в каком она положении по умолчанию, указано в руководстве платы.

Источники

  1. STMicroelectronics. UM1724: STM32 Nucleo-64 boards (MB1136), User manual, Rev 17 (September 2025) — разд. 7.13: A4 и A5 по умолчанию — PC1 и PC0; для I²C на них (PB9 и PB8, как у ARDUINO Uno V1) замыкают SB46 и SB52, размыкают SB51 и SB56; табл. 11–23: D14 — PB9, D15 — PB8
  2. STMicroelectronics. UM1974: STM32 Nucleo-144 boards (MB1137), User manual, Rev 11 (August 2025) — табл. 13–20: A4 и A5 по умолчанию — аналоговые выводы (у большинства плат, например на STM32F4 и F7, — PF5 и PF10), перемычками на них выводят I²C1 (PB9 и PB8); D14 — PB9, D15 — PB8
  3. STMicroelectronics. STM32_open_pin_data, mcu/STM32F401R(D-E)Tx.xml — PB8 — I2C1_SCL (AF4), PB9 — I2C1_SDA (AF4); PC0 и PC1 — ADC1_IN10 и ADC1_IN11

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