Zaprojektowałem prostą płytę STM32. Poniżej znajdują się zdjęcia schematu i układu PCB:
Układ PCB z podświetleniem VDD:
Układ PCB z podświetlonym GND:
Na powyższych zdjęciach pokazano tylko części tego projektu, które są istotne dla mojego pytania.
Mój problem polega na tym: próbowałem użyć wbudowanego ST-Link na płycie STM32 Discovery do zaprogramowania tej niestandardowej płyty, ale nie udało mi się jeszcze. Aplikacja ST-Link Utility na PC może rozpoznać programator, ale nie może wykryć docelowego MCU. Komunikaty o błędach, które otrzymałem to: „Target not connected” i „ST-Link USB Communication Error”.
Oto kilka powiązanych faktów na temat mojego problemu:
- Płytka Discovery STM32 działa dobrze: mogę użyć jej wbudowanego ST-Link do zaprogramowania MCU na pokładzie STM32. To jest wporządku.
- Moduł MCU STM32 został przylutowany z prawidłową orientacją na płycie niestandardowej. Sprawdziłem to dwa razy.
- Sprawdziłem ślady VDD i SWD. Są dobrze połączone (bez problemu z lutowaniem). Pin Boot0 ma wartość 0 V. Pin NRST ma napięcie 3,3 V.
- Kabel SWD jest krótki, ma tylko 7-8 cm długości.
- STM32 na mojej niestandardowej płycie jest tego samego typu co ten na płycie Discovery.
Postępowałem zgodnie z instrukcjami w instrukcji STM32 Discovery Board, jak używać Discovery Board do programowania zewnętrznego MCU STM32. Mówiąc ściślej, usunąłem 2 zworki CN3, a następnie podłączyłem płytki zgodnie z poniższą tabelą:
Usunąłem również mostek lutowniczy SB11 na płycie Discovery Board (aby pin NRST mógł działać poprawnie).
- Próbowałem zarówno aplikacji ST-Link Utility, jak i Keil. Otrzymane komunikaty o błędach są takie same.
- Na początku nie podłączyłem pinu 6 w powyższej tabeli (SWO), ponieważ o ile wiem, nie jest to konieczne. Jednak po tym również to połączyłem, ale sprawy nadal nie działały.
- Dodałem również czapkę 100nF z pinu NRST do GND, a następnie 100k rezystor podciągający z tego pinu do VDD. Problem nadal pozostaje.
- Próbowałem także użyć trybu „Połącz w trakcie resetowania” programu ST-Link Utility. Nie ma też szczęścia.
Podejrzewam, że może być coś nie tak z projektem, ale nie jestem pewien. Pomóż mi rozwiązać problem.
Dziękuję Ci bardzo :)
Odpowiedzi:
Dziękuję za wspaniałe komentarze. Dzięki nim byłem pewien, że mój projekt jest wolny od błędów. Dlatego skoncentrowałem się na poszukiwaniu błędów w sprzęcie. I znalazłem błąd! To jest błąd lutowania.
Znalazłem ten błąd po wykonaniu tej instrukcji: „Użyj multimetru i przetestuj wszystkie połączenia pod kątem zwarć lub braku połączenia. Pamiętaj, aby delikatnie dotykać pinów / padów / czegokolwiek, ponieważ jeśli mocno naciskasz sondę, możesz” naprawić „połączenie tymczasowo (na przykład wpychasz pin układu scalonego do śladu na płytce drukowanej, a test jest OK, ale jak tylko go puścisz, pin ponownie się zgina)”. Oryginalny post jest tutaj .
źródło