logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[STM32] [STM32F205][OpenOCD] - Problemy z uruchomieniem przez JTAG, brak połączenia

Pokrentz 10 Paź 2012 17:53 2124 2
  • #1 11397703
    Pokrentz
    Poziom 22  
    Posty: 546
    Pomógł: 19
    Ocena: 81
    Mam problem a jestem trochę dziewicą w temacie.

    Zrobiłem sobie płytkę developerską na STM32F205. Zrobiłem ja tak, że po prostu podłaczyłem piny zasilania układu do 3,3V, masy - do masy, BOOT0 do masy, kondensatorki dałem zgodnie z manualem do kostki, złacze J-TAG zgodnie z opisem Freddiego, popodpinałem jego piny do odpowiednich pinów na kostce i właczyłem system przez J-Tag od Freddiego.

    Efekty są takie: Uruchamiam OpenOCD:

    openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c init -c reset


    Na co ustrojstwo odpowiada mi czymś takim:

    Open On-Chip Debugger 0.5.0 (2011-12-03-10:15)
    Licensed under GNU GPL v2
    For bug reports, read
    	http://openocd.berlios.de/doc/doxygen/bugs.html
    Info : only one transport option; autoselect 'jtag'
    1000 kHz
    adapter_nsrst_delay: 100
    jtag_ntrst_delay: 100
    Info : clock speed 1000 kHz
    Info : JTAG tap: stm32f2xxx.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
    Info : JTAG tap: stm32f2xxx.bs tap/device found: 0x06411041 (mfg: 0x020, part: 0x6411, ver: 0x0)
    Warn : Invalid ACK 0 in JTAG-DP transaction
    Polling target failed, GDB will be halted. Polling again in 100ms
    Polling target failed, GDB will be halted. Polling again in 300ms


    Jak usiłuje uruchamiać bez opcji "reset", to po prostu ostrzeżenie o ACK = 0 i cały czas nie daje rady dopukac się do kostki.
    Uzycie telnetu na localhost 4444 nie daje nic, cały czas nie może się dopukać i np. mam taki efekt:

    >flash info 0
    Target not examined yet
    auto_probe failed
    in procedure 'flash'
    Polling target failed, GDB will be halted. Polling again in 6300ms
    Polling target failed, GDB will be halted. Polling again in 6300ms
    Polling target failed, GDB will be halted. Polling again in 6300ms
    Polling target failed, GDB will be halted. Polling again in 6300ms


    Przy połaczeniu gniazda J-tag z mikrokontrolerem tylko jedno miałem nie do końca pewne połaczenie: nSRST z pinu w manualu Freddiego mam podłaczone do pinu NRST kostki.
    Po rozpięciu połaczenia układ w ogóle nie gadał z j-tag'iem (świeciły tylko 2 zielone diody). Dopiero po zwarciu rozpiętego połaczenia zapaliła sie trzeciazielona w samym rogu j-taga.

    Gdyby ktos wiedział, o co chodzi, byłbym wdzięczny.
  • #2 11397728
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Profilaktycznie spróbuj tak:

    openocd -f ... -f ... -c "reset_config trst_and_srst; adapter_khz 1;"

    Jeśli oczywiście masz podłączone obydwa resety.

    Spróbuj też najnowszego OpenOCD.

    No i pokaż schemat (;

    4\/3!!
  • #3 11397831
    Pokrentz
    Poziom 22  
    Posty: 546
    Pomógł: 19
    Ocena: 81
    Do poprzedniego postu dopisałem takie coś, jakby umknęło. Ale już łacze na sztywno i robię Twój test.

    Przy połaczeniu gniazda J-tag z mikrokontrolerem tylko jedno miałem nie do końca pewne połaczenie: nSRST z pinu w manualu Freddiego mam podłaczone do pinu NRST kostki.
    Po rozpięciu połaczenia układ w ogóle nie gadał z j-tag'iem (świeciły tylko 2 zielone diody). Dopiero po zwarciu rozpiętego połaczenia zapaliła sie trzeciazielona w samym rogu j-taga.

    Po Twoim poleceniu zelżył mnie takimi słowy:

    $ openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c "reset_config trst_and_srst; adapter_khz 1;" 
    Open On-Chip Debugger 0.5.0 (2011-12-03-10:15)
    Licensed under GNU GPL v2
    For bug reports, read
    	http://openocd.berlios.de/doc/doxygen/bugs.html
    Info : only one transport option; autoselect 'jtag'
    1000 kHz
    adapter_nsrst_delay: 100
    jtag_ntrst_delay: 100
    trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
    1 kHz
    Info : clock speed 1 kHz
    Info : JTAG tap: stm32f2xxx.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
    Info : JTAG tap: stm32f2xxx.bs tap/device found: 0xf6411041 (mfg: 0x020, part: 0x6411, ver: 0xf)
    Warn : JTAG tap: stm32f2xxx.bs       UNEXPECTED: 0xf6411041 (mfg: 0x020, part: 0x6411, ver: 0xf)
    Error: JTAG tap: stm32f2xxx.bs  expected 1 of 1: 0x06411041 (mfg: 0x020, part: 0x6411, ver: 0x0)
    Error: Trying to use configured scan chain anyway...
    Error: stm32f2xxx.cpu: IR capture error; saw 0x0d not 0x01
    Warn : Bypassing JTAG setup events due to errors
    Warn : Invalid ACK 0x7 in JTAG-DP transaction
    Polling target failed, GDB will be halted. Polling again in 100ms
    Polling target failed, GDB will be halted. Polling again in 300ms
    Polling target failed, GDB will be halted. Polling again in 700ms
    Polling target failed, GDB will be halted. Polling again in 1500ms


    Schematu nie mam, bo nawet nie powstał. Popodłaczałem wszystkie zasilania do 3,3V
    may do masy, BOOT0 do masy, piny J-taga do odpowiednich pinów na kostce. Więcej nic tam nie ma.

    nTRST z j-taga połaczyłem do nóżki PB4 (JTRST) na chipie, sTRST podłaczyłem do NRST.

    Czy styki 1 i 2 na złaczu IDC J-tag'a powinny być połaczone do +3V3 na płytce z mikrokontrolerem?
    Czy styk TMS powinno byc podciągnięte rezystorem 10k do +3V3?
    Czy styk TCK powinien byc podciągnięty do masy podobnym rezystorem?

    EDIT:

    Chyba rozwiązałem, piny 1 i 2 złacza J-TAG muszą byc podpięte do zasilania na płytce, przy zdjętych zworkach. Teraz polecenie:

    openocd -f interface/jtagkey.cfg -f target/stm32f2x.cfg -c "reset_config trst_and_srst; adapter_khz 10;"


    Odpowiada mi tak
    Open On-Chip Debugger 0.5.0 (2011-12-03-10:15)
    Licensed under GNU GPL v2
    For bug reports, read
    	http://openocd.berlios.de/doc/doxygen/bugs.html
    Info : only one transport option; autoselect 'jtag'
    1000 kHz
    adapter_nsrst_delay: 100
    jtag_ntrst_delay: 100
    trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
    10 kHz
    Info : clock speed 10 kHz
    Info : JTAG tap: stm32f2xxx.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
    Info : JTAG tap: stm32f2xxx.bs tap/device found: 0x06411041 (mfg: 0x020, part: 0x6411, ver: 0x0)
    Info : stm32f2xxx.cpu: hardware has 6 breakpoints, 4 watchpoints


    Freddie, dzięki za zainteresowanie tematem, na razie chyba jakos sobie poradziliśmy tym razem!
REKLAMA