Неможливо запрограмувати користувацьку плату STM32


9

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

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

Розташування друкованої плати: введіть тут опис зображення

Макет друкованої плати з підсвіченим VDD: введіть тут опис зображення

Макет друкованої плати з виділеною GND: введіть тут опис зображення

На вищезазначених малюнках показані лише частини цієї конструкції, які стосуються мого питання.

Моя проблема полягає в тому, що я намагався використовувати вбудований ST-Link на платі виявлення STM32 для програмування цієї користувальницької плати, але мені не вдалося досягти успіху. Програма ST-Link Utility на ПК може розпізнати програміста, але він не може виявити цільовий MCU. Повідомлення про помилки, які я отримав, були: "Ціль не підключена" та "Помилка зв'язку USB-зв'язку ST-Link".

Ось деякі пов'язані факти з моєї проблеми:

  • Дошка відкриття STM32 працює чудово: я можу використовувати вбудований ST-Link для програмування його вбудованого модуля управління STM32 MCU. Це нормально.
  • STM32 MCU був паяний з правильною орієнтацією на користувальницькій платі. Я перевірив це двічі.
  • Я перевірив сліди VDD та SWD. Вони добре з'єднані (ніякої проблеми з пайкою). Pin Boot0 знаходиться на 0В. Шпилька NRST знаходиться на рівні 3,3 В.
  • Кабель SWD короткий, довжиною всього 7-8 см.
  • STM32 на моїй користувальницькій дошці того ж типу, що і на борту Discovery.
  • Я дотримувався вказівок у посібнику дошки відкриття STM32 про те, як використовувати плату Discovery для програмування зовнішнього модуля управління STM32. Щоб бути більш конкретним, я видалив 2 перемички CN3, а потім з'єднав плати, як у цій таблиці: введіть тут опис зображення

  • Я також видалив паяльний міст SB11 на платі Discovery (щоб штифт NRST міг нормально працювати).

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

Я підозрюю, що в дизайні може бути щось не так, але я не впевнений. Будь ласка, допоможіть мені вирішити проблему.

Дуже дякую :)


Наскільки я пам’ятаю, ви повинні використовувати як st-link, так і вашу власну плату. 3,3 В в роз'ємі SWD вашої користувальницької плати повинен забезпечувати 3,3 В для st-зв'язку для виявлення.
davidrojas

@davidrojas: Дякую за вашу відповідь. Ну, в даний час я живлю ST-Link від USB-порту з мого ПК. Користувальна плата STM32 живиться від зовнішнього, окремого 3,3 В. Однак заземлення цих двох дощок вже з’єднано (як у наведеній вище таблиці). Також 3.3V з моєї користувальницької плати також підключений до VDD_TARGET на ST-Link. Як ви вважаєте, цього достатньо?
користувач3286500

Це повинно бути достатньо, так. Іншим питанням може бути довжина та компонування ліній SWDIO та SWCLK, у мене були проблеми переривчастого зв’язку в минулому через це. Вони повинні бути якомога коротшими. Спробуйте також знизити швидкість SWD.
davidrojas

Я знизив швидкість SWD, починаючи з 1,8 МГц до 400 кГц, але все ще не вдався. Що стосується довжини кабелю, то в моїй установці загальна довжина SWD-з'єднання (від ST-Link до цільового STM32) становить приблизно 12-13 див. Це все ще в межах?
користувач3286500

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

Відповіді:


5

Дякую за чудові коментарі. Через них я впевнений, що моя конструкція не містить помилок. Ось чому я зосередив свою увагу на пошуку помилок в апаратному забезпеченні. І я знайшов помилку! Це помилка пайки.

Я виявив цю помилку після виконання цієї інструкції: "Використовуйте мультиметр і протестуйте всі з'єднання на наявність шортів або відсутність з'єднання. Не забудьте торкнутися штифтів / колодок / що б там не було дуже обережно, тому що якщо сильно натиснути на зонд, ви можете" виправити "з'єднання тимчасово (наприклад, ви підштовхуєте штифт ІС до сліду на друкованій платі, і тест в порядку, але як тільки ви відпустите штифт знову згинається вгору)." Оригінальний пост тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.