Не удается запрограммировать пользовательскую плату STM32


9

Я разработал простую плату STM32. Ниже приведены схемы и рисунки макета печатной платы:

Схема:
введите описание изображения здесь

Макет печатной платы: введите описание изображения здесь

Печатная плата с подсветкой VDD: введите описание изображения здесь

Расположение печатной платы с выделенным GND: введите описание изображения здесь

Только части этого дизайна, которые имеют отношение к моему вопросу, показаны на рисунках выше.

Моя проблема: я пытался использовать встроенную ST-Link платы обнаружения STM32 для программирования этой пользовательской платы, но пока не смог добиться успеха. Приложение ST-Link Utility на ПК может распознавать программатор, но не может определить целевой MCU. Полученные сообщения об ошибках: «Цель не подключена» и «Ошибка связи USB ST-Link».

Вот несколько фактов о моей проблеме:

  • Плата обнаружения STM32 работает нормально: я могу использовать встроенный ST-Link для программирования встроенного микроконтроллера STM32. Хорошо.
  • Микроконтроллер STM32 был припаян с правильной ориентацией на специальной плате. Я проверил это дважды.
  • Я проверил следы VDD и SWD. Они хорошо подключены (нет проблем с пайкой). Pin Boot0 находится на 0V. Контакт NRST находится на 3,3 В.
  • Кабель SWD короткий, всего 7-8 см в длину.
  • STM32 на моей пользовательской плате того же типа, что и на плате обнаружения.
  • Я следовал инструкциям в руководстве к плате обнаружения STM32 о том, как использовать плату обнаружения для программирования внешнего микроконтроллера STM32. Чтобы быть более точным, я удалил 2 перемычки CN3, а затем подключил платы, как показано в этой таблице: введите описание изображения здесь

  • Я также удалил паяную перемычку SB11 на плате обнаружения (чтобы вывод NRST мог работать правильно).

  • Я пробовал и приложение ST-Link Utility, и Keil. Сообщения об ошибках, которые я получил, такие же.
  • Сначала я не подключал контакт 6 на приведенной выше таблице (SWO), потому что, насколько мне известно, это не нужно. Однако после этого я тоже это подключил, но ничего не вышло.
  • Я также добавил крышку 100 нФ от контакта NRST к GND, а затем резистор 100 кОм от этого контакта к VDD. Проблема все еще остается.
  • Я также пытался использовать режим подключения по сбросу программы ST-Link Utility. Не повезло тоже.

Я подозреваю, что может быть что-то не так с дизайном, но я не уверен. Пожалуйста, помогите мне решить проблему.

Большое спасибо :)


Насколько я помню, вы должны питать как st-link, так и вашу пользовательскую плату. 3,3 В в разъеме SWD вашей пользовательской платы должно обеспечивать 3,3 В для обнаружения st-link.
Давидрояс

@davidrojas: Спасибо за ваш ответ. Ну, в настоящее время я питаю ST-Link через USB-порт от моего ПК. Пользовательская плата STM32 питается от внешнего, отдельного 3,3В. Однако заземление этих 2 плат уже подключено (как в приведенной выше таблице). Кроме того, 3,3 В с моей пользовательской платы также подключено к VDD_TARGET на ST-Link. Как вы думаете, этого достаточно?
user3286500

Этого должно быть достаточно, да. Другой проблемой может быть длина и расположение линий SWDIO и SWCLK, в прошлом у меня были проблемы с прерывистой связью. Они должны быть как можно короче. Попробуйте снизить скорость SWD также.
Давидрояс

Я снизил скорость SWD с 1,8 МГц до 400 кГц, но все еще не увенчался успехом. Что касается длины кабеля, в моей настройке общая длина соединения SWD (от ST-Link до целевого STM32) составляет около 12-13 см. Это все еще в пределах лимита?
user3286500

1
Заметили ли вы, что земля под чипом физически изолирована и фактически не подключена ни к одному из контактов заземления? Фактические соединения между контактами заземления идут извилистыми путями вне чипа, и некоторые из них могут быть фактически изолированы. Вам необходимо отрегулировать ваши зазоры таким образом, чтобы заливка грунта не имела изолированных островков, и это поможет убедиться, что все контакты заземления микросхемы намного ближе к одному и тому же потенциалу.
Дэйв Твид

Ответы:


5

Спасибо за ваши замечательные комментарии. Из-за них я был уверен, что мой дизайн без ошибок. Вот почему я сосредоточил свое внимание на поиске ошибок в оборудовании. И я нашел ошибку! Это ошибка пайки.

Я обнаружил эту ошибку после выполнения этой инструкции: «Используйте мультиметр и проверьте все соединения на наличие короткого замыкания или отсутствия соединения. Не забудьте прикасаться к штырям / контактным площадкам / к чему-либо очень осторожному, потому что, если вы сильно нажмете на датчик, вы можете» исправить «соединение временно (например, вы нажимаете вывод IC на трассу на печатной плате, и проверка в порядке, но как только вы отпускаете, вывод снова изгибается)». Оригинальный пост здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.