Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32f103] Niemożność zaprogramowania mikrokontrolera

Kucharskov 10 Paź 2018 16:42 285 11
  • #1 10 Paź 2018 16:42
    Kucharskov
    Poziom 6  

    Witam!
    Mam mikorkontroler STM32F103C8T6 oraz konwerter FTDI. Podpinam zgodnie z wszystkimi prawidłami w Internecie:
    GND - GND
    VCC (konwerter ma ustawione również 3.3Volta) - 3.3V
    RX - TX (pin A9)
    TX - RX (pin A10)
    Zworkę BOOT0 przestawiam na 1. Niestety po podpięciu zasilania na mikrokontrolerze zapala się czerwona dioda PWR oraz mruga bez przerwy dioda opisana jako PC13. Nie można ani wgrać szkicu przez Arduino IDE, ani bootloadera z obsługą USB przez Flash Loader Demonstrator - kończy się komunikatem "No response from the target, the boot loader can not be started. Please verify the boot mode configuration and the flash protection status, Reset your device then try again".

    Co może być przyczyną tego stanu rzeczy? Wygląda to tak jakby mikrokontroler nie wchodził w tryb bootowania z bootloadera.
    Sprawdzałem sam konwerter FTDI zwierając RX z TX i tworząc loopback - PuTTy odbiera wysyłane znaki poprawnie.
    Z góry dzięki!

    0 11
  • #2 10 Paź 2018 18:09
    pukico
    Poziom 8  

    Proponuję jednak zainwestować w programator te $2

    Ale jak miga dioda to znaczy że jakiś program się wykonuje - czyli nie wszedł do bootloadera.

    Dlaczego?

    1. Źle ustawiłeś zworki.
    2. goldpiny zworek są źle przylutowane
    3. Ścieżki są do kitu.
    4. Masz mostek na tych nogach uC

    Po podłaczeniu zasilania naciśnij reset. I zobacz czy dalej miga
    Miernikiem zmierz czy poziom na pinach boot jest taki jak być powinien.

    0
  • #3 10 Paź 2018 18:53
    Kucharskov
    Poziom 6  

    Po podłączeniu i zresetowaniu dalej miga. No więc tak, odpowiadając po kolei:
    1. Zworki na pewno są dobrze ustawione: BOOT0 - 1, BOOT1 - 0.
    2. Pomierzyłem piny zworek i te od "0" są zwarte z GND, a na tych od "1" jest dokładnie 3.3V
    3. Jeżeli udało się wszystko pomierzyć i "przepiszczeć" (nie jestem niestety dobrym ekeltronikiem i nazwa mi wyleciała) to chyba jest okej
    4. Tego nie umiem stwierdzić i chętnie zbadałbym ten problem. Tylko jak?

    0
  • #4 10 Paź 2018 20:08
    pukico
    Poziom 8  

    na pinach uK oczywiscie

    jezeli nic nie pomaga to tylko programator swd

    0
  • #5 10 Paź 2018 22:13
    Kucharskov
    Poziom 6  

    Że nie jestem trochę w temacie bo i programatora SWD nie mam to zapytam czy za pomocą takiego programatora możnaby spróbować wykonać reflash STM32? Jeżeli tak to widzę, ze moje Raspberry Pi może posłużyć jako adapter tylko nie do końca ogarniam jak mógłbym go użyć.

    0
  • #6 11 Paź 2018 17:53
    atom1477
    Poziom 43  

    Zrób reset za pocą pinu Reset podczas działania płytki (czyli bez odłączania napięcia zasilania) i zobaczy zareaguje.

    0
  • #7 11 Paź 2018 19:07
    Kucharskov
    Poziom 6  

    Niestety zwieranie pinu "RESET" do 3.3 czy GND chwilowo gasi mrugającą lampkę. Po rozwarciu dalej mruga. Przekopałem prawie cały internet i nikt nie opisuje problemu ciągle mrugającej diody. Ewidentnie trafił mi się jakiś uwalony egzemplarz, jak to od chińczyka bywa. Próbowałem przemierzyć wszystko, szukać zwarć, porównywać z drugą (działającą) płytką. Wszystko wygląda identycznie ale jednak nie da się podpiąć pod nią w żaden normlany i logiczny sposób.

    Mam dość tego konkretnego mikrokontrolera, bo na początku sądziłem ze konwerter mam nie taki, później próbowałem użyć klona Arduino jako konwertera, nastepnie tłukłem się z Raspberry jako programatorem. Wszystko jak krew w piach. Ostatecznie może to być jakiś chiński zimny lut i mam zamiar dzisiaj wieczorem wsadzić mikrokontroler do piekarnika. Jak nie pomoże to kosz.

    0
  • #8 11 Paź 2018 20:48
    BlueDraco
    Specjalista - Mikrokontrolery

    Wystarczy pogłaskać lutownicą dwie nóżki uC. Może to być też zimny lut przy rezystorze szeregowym na BOOT0.

    0
  • #9 11 Paź 2018 22:06
    drobok
    Poziom 28  

    Jeśli dioda mruga to ktoś wgrał w niego soft, może nadpisał bootloader (nie ma to jak zwroty ...) - dlatego nei da się nic wgrać, może też uc został zabezpieczony przed zapisem.
    Odpuść tego uarta, zrób to po swd (ew dodaj rezystory szeregowo na linie transmisyjne jeśli kabel ma ponad kilka cm), no i koniecznie reset do gnd przy wgrywaniu. Wygrzanie raczej nic nie da jak dobrze przemierzyłeś piny uC.

    Mogłeś też ubić te nogi wyładowaniem esd, lub wgrywaniem / próbami wgrania czegoś przy wyłączonym zasilaniu.

    //edit
    skreśliłem błąd merytoryczny

    0
  • #10 12 Paź 2018 00:27
    pukico
    Poziom 8  

    drobok napisał:
    może nadpisał bootloader (nie ma to jak zwroty ...)
    To nie atmega. Nie da się "nadpisać"

    0
  • #11 12 Paź 2018 09:12
    atom1477
    Poziom 43  

    Kucharskov napisał:
    Niestety zwieranie pinu "RESET" do 3.3 czy GND chwilowo gasi mrugającą lampkę.

    Zwieranie do GND gaszące diodę to nie jest "niestety". Tak ma być.
    Natomiast zwieranie do 3.3V to już "niestety".

    0
  • #12 12 Paź 2018 12:27
    pukico
    Poziom 8  

    atom1477 napisał:
    Natomiast zwieranie do 3.3V to już "niestety".
    W to trudno uwierzyć bo reset jest i tak wewnętrznie połączony z Vdd. Raczej podejrzewam przypadkowe dotknięcie czegoś przy okazji

    0