Проблема с использованием SPI2 на Nucleo-H7, тогда как SPI1 работает нормально - PullRequest
0 голосов
/ 21 апреля 2020

Моя настройка следующая: плата Nucleo (Nucleo 144 со встроенным STM32H743) настроена как SPI Master. Другая идентичная плата сконфигурирована как SPI Slave.

Для Master I настроить SPI1 (контакты GND, D11, D12 и D13 - PA5,6,7- разъема CN7) со следующей конфигурацией:

  • GPIO: очень высокая скорость, альтернативная функция 5
  • SPI: прескалер DIV8, разрешены прерывания, симплексная связь, нет ведомого выбора
  • все часы настроены на максимум (процессор 400 МГц, et c ...)

Для подчиненного устройства я также настроил SPI1 (те же контакты), работает нормально.

Затем я попытался переключиться на периферийное устройство SPI2 для ведомой платы и не смог заставить его работать (без изменений для основной платы). Я выбрал контакты D18 (PB13) для SCK, A7 (PC2) для MISO и A2 (PC3) для MOSI.

Я проверил следующие пункты:

  • SPI2 периферия часы включены
  • GPIOB и C часы включены, а контакты PB13, PC2 и PC3 настроены так же, как PA5,6,7 в предыдущей настройке.
  • для GND I пробовал разные выводы GND на плате, я не знаю, если это имеет значение.
  • GP IOs, используемый для SPI2, не используется в другом месте в моем коде. Я получил их из таблицы данных STM32H743ZI

Что я вижу:

  • Мой ведомый все еще правильно получает сигнал SCK: Я получаю правильное количество прерываний RXP .
  • данные, полученные ведомым устройством, повреждены.
  • однако данные, передаваемые ведомым устройством ведущему, верны.

Я думаю, что сигнал MOSI плохо настроен, физически или логически. Я пробовал другие выводы GPIO, чья альтернативная функция может быть SPI2_MOSI, но с таким же поведением.

Есть ли специфичность для SPI2 и / или этой настройки GPIO? Имеет ли значение GND на плате?

1 Ответ

0 голосов
/ 22 апреля 2020

Я "исправил" (?) Проблему, установив нисходящий поток на вход GPIO SPI2 на ведомой стороне. Я не очень понимаю, почему он работал без опускания на SPI1, и почему это опускание не требуется на ведомом устройстве?

...