Skocz do zawartości

STM32 problem z połączeniem


Pomocna odpowiedź

Napisano

Cześć, od jakiegoś czasu rozpoznaje sobie STM32f3discovery. Wszystko szło pięknie, fajnie do momentu kiedy pojawił się błąd: "No target connected", a potem "flash download failed target dll cancelled".

Błąd z flashem męczył mnie kiedyś, wystarczyło pozmieniać odpowiednie ustawienia w Keilu i działało, teraz problem jest chyba poważniejszy.

Połączenie przestało działać gdy zaingerowałem w pin PA13 (do TIM4), potem sprawdziłem w dokumentacji, że pin ten odpowiada również za SWD. Czy możliwe, że to wpłynęło na problemy z połączeniem?

Przeszukałem internet w poszukiwaniu rozwiązania. Trafiłem na poradę aby BOOT0 ustawić na High. W przypadku tej płytki jest to mostek SB19 i jest tam wlutowany rezystor na pull-down. Rozumiem, że musiałbym wylutować rezystor i podać tam 3v?? Dajcie znać zanim coś spalę😉

Z drugiej strony nie wierzę, że jest to jedyne rozwiązanie, chyba nie możliwe, żebym programowo mógł coś aż tak zepsuć.

Proszę kolegów o wyrozumiałość i pomoc, może ktoś miał podobny problem.

Cześć 🙂

1. Co znaczy zingerowałem w pin PA13?

2. Przy programowaniu układu używasz SWD czy JTAG?

Proponuję zainstalowanie/odszukanie na dysku programu STM32 ST-LINK Utility - może za jego pomocą będzie można przeprowadzić całkowity erase flash'a procka? Jeżeli nie to faktycznie będziemy musieli się pobawić opcjami bootowania.

Da się programowo zablokować możliwość połączenia SWD. Sam to przerabiałem. Jednak trzeba się natrudzić. Najlepszym ratunkiem jest wgranie czystego kodu przez bootloader, tak jak piszesz 😉

Dzięki za zainteresowanie

Używam SWD. Faktycznie niejasno się wyraziłem, po prostu ustawiłem PA13 na wyjście. Dla tego trochę mnie dziwi zachowanie płytki, chyba powinna być w tym stopniu idioto-odporna;)

Możecie poradzić jak to zrobić bootowaniem krok po kroku? Nigdy tego nie robiłem, a zestaw trochę kosztuje.

To jeszcze chyba nie jest aż tak źle 😉

Nie powinieneś mieć problemów z wyczyszczeniem flash'a przez STM32 ST-LINK Utility. Spróbuj się połączyć z urządzeniem: jeżeli się uda to jestśmy w domu! Wybierasz opcję Target->EraseChip i problem zażegnany. Jeżeli się nie połączy, to będziemy musieli pobawić się opcjami bootowania. Daj znać co z tego wyszło 🙂

  • Pomogłeś! 1

Dzięki Miszczu! Faktycznie zadziałało za pomocą STM32 ST-LINK Utility;)

Jakby ktoś w przyszłości miał podobny problem:

dokładnie co musiałem zrobić to Target -> Settings ->wybrać Connect Under Reset (w moim wypadku SWD) OK

Target->Erase Chip->śmiga

Dodatkowo napiszę, że usunąłem kod ustawiający PA13 na OUT i działa normalnie (dafug?)

To ja dla ciekawostki dodam jak wyłączyć SWD i zablokować możliwość programowania 🙂

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
To ja dla ciekawostki dodam jak wyłączyć SWD i zablokować możliwość programowania 🙂
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

Chyba się mylisz:

1. Nadal jest bootloader i można programować przez bootloader

2. Z tego co wiem (nie próbowałem) wystarczy podpiąć pod boot0 "1" żeby włączyć bootloader i wtedy normalnie SWD działa i można skasować pamięć bez faktycznego użycia bootloadera do czegokolwiek... (po prostu uruchamiając bootloader nie wywołujemy komeny remappingu z kodu... )

MirekCz, masz rację. Miałem na myśli możliwość zaprogramowania przez SWD. Oczywiście Bootloader działa i można nim "odratować" procesor 😉

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...