Programowanie STM32 - co jest źle?

Oct 11, 2021 10 Replies

Witam, za pomocą takiego adaptera:

formatting link
i za pomocą programatora ST-LINK:
formatting link
próbuję połączyć się i zaprogramować lub odczytać procesor: STM32F101RCT6



Jednak bez sukcesu. Próbuję się połączyć za pomocą SWD. Czy wszystkie piny procesora muszą być zasilanie? Nie wiem co robię źle.



Dodam tylko, że programator jest sprawny ponieważ łączy się z płytką STM32F103rbt6 MINI. W obydwu przypadkach podłączam tylko zasilanie, mase, SWDCLK i SWDIO.



Nie wiem co jest grane.



pytajacy


Witam,

Zasilanie vdd, vdda, vss ,swdclk i swdio i powinno działać.

Jak nie działa sprawdź kolejność połączeń bo może ktoś coś zjebał w projekcie podstawki.

Adam Górski

Rozumiem, że podłączyłeś zasilanie tylko do jednego z pinów VCC mikrokontrolera? Tu może leżeć źródło problemu. Podłączone muszą być wszystkie piny VCC - tylko wtedy można mieć pewność. że wszystkie jego komponenty są zasilanie prawidłowo. Do tego wskazane jest umieszczenie kondensatora 100nF w pobliżu każdego z pinów VCC. Nie wspomnę już o tym, że istnieje pewna minimalna konfiguracja - niektóre piny muszą być ściągnięte do masy, inne podciągnięte do plusa. ISP oznacza programowanie w systemie. Nie wystarczy podłączyć procesora do pinów programujących, trzeba mu jeszcze zapewnić... System.

W dniu 2021-10-11 o 20:45, pytający pisze:

Jak już koledzy pisali, musisz zasilić wszystkie pary Vdd/Vdd. STM32F101RCT6 to chyba 64 nóżki? To masz 4 pary do podłączenia. Przy każdej parze kondensator 100n, dodatkowo przy Vdd3/Vss3 (nóżki 63/64) kondensator 4,7 mikro.

Jeśli procesor był już programowany, może być w nim program, który wyłącza funkcjonalność SWDIO i/lub SWDCLK. W takim przypadku warto do ST-LINKa podłączyć też pin NRST i łączyć się w trybie "connect under reset".

Pozdrowienia, MKi

Atlantis snipped-for-privacy@wp.pl napisał(a):

Oznacza programowanie bez potrzeby odłączania od systemu. W czasach przed ISP trzeba było procesor wyciągać z podstawki i wsadzać do programatora. Nie trzeba zapewniać żadnego specjalnego systemu, wystarczy zasilanie na odpowiednich pinach. Może być też potrzebne podłączenie pinu RESET jeśli procesor ma wgrany program, który go usypia lub odłącza piny programowania.

Niezbyt jasno piszesz. STM ma w dokumentacji zalecenia co podlaczac i do czego. Jak masz gotowa plytke (np. to STM32F103rbt6 MINI) to na plytce sa wszystkie polaczenia potrzebne do pracy procka. Jak masz gola podstawke to musisz sam podlaczyc co trzeba. Z grubsza:

- wszystkie zasilania (VDD i VDDA)

- RESET (elementry RC)

- pin/piny BOOT Na zasilaniu zalecane sa kondensatory odsprzegajace. Oczywiscie do programowania dodatkowo podlaczasz SWDCLK i SWDIO.

Wielu ludzi twierdzi ze mozna zignorowac zalecania i tez bedzie dzialalo. Ale z wiszacym RESET-em procek ma prawo robic co zechce. Jak nie podlaczysz VDDA to procek nie ruszy. Z wiszacym BOOT moze i da sie podlaczyc STLINK, ale oczekiwalbym problemow z programowaniem. Linie VDD sa wewnetrze polaczone, wiec teoretycznie jest szansa ze procek zadziala jak podlaczysz tylko jedna (VDDA jest oddzielne).

Nie w przypadku STMów - mają wbudowany pull-up na linii reset.

Fakt, ma. Ale jest zalecenie by dawac zewnetrzne elementy...

A może wbudowany pull-up i brak połączeń jest bezpieczniejszy niż ścieżka + pull-up na zewnątrz? :-)

Zależy jakie zalecają dawać te "zewnętrzne elementy". AVRy (a przynajmniej ATmegi i ATtiny) mają wbudowany pull-up na RST, ale zalecane jest dodanie zewnętrznego 220n do masy (przez to jest problem z podmianką AT89C2051 na ATtiny2313 - ten pierwszy ma reset "jedynką", a drugi "zerem").

Donoszę że, po podłączeniu wszystkich VDD i VSS procek nadal nie gadał. Dopiero po podłączeniu VDDA zagadał. Co ciekawe, nie podłączyłem VSSA. Nie zastosowałem również żadnych kondensatorów. Dziękuję wszystkim za pomoc.

pytający

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required