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.

Nowy JTAG do ARMa na USB - wstęp do projektu

Freddie Chopin 06 Cze 2010 17:00 88470 353
  • #211 06 Cze 2010 17:00
    artusb
    Poziom 13  

    Witam serdecznie
    Mam problem z kanałem rs-232 w JTAG-lock-pick

    Mianowicie nie działa mi do końca komunikacja.
    A więc

    Mam podłączony Sam7 poprzez ST3232 do JTAG-lock-pick Rs-232 i do komputera.

    Jeżeli Sam wysyła 'a' to 'a' dochodzi do komputera i jest wyświetlane w terminalu.
    Jeżeli w terminalu wciskam 'a' na JTAG-lock-pick zaświeca się czerwona Led ale Sam7 nie rejestruje tego.

    Jeżeli na płytce za ST3232 zewrze RX i TX (czyli po stornie procesora) to gdy wyśle w konsoli 'a' otrzymuje w konsoli 'a' (czyli ok)

    Jeżeli na płytce zewrze RX i TX i Sam7 wysle 'a' otrzymuje 'a' (program mruga po otrzymaniu informacji dioda led)

    Wygląda na to iż ST3232 jest sprawny bo poprzez niego i JTAG-lock-pick komunikacja odbywa się w obie strony.

    Sam7 wygląda też na sprawnego i dobrze skonfigurowanego bo sam ze sobą rozmawia.

    Ale dla czego nie udaje się wysłał niczego z terminalu do Sam7 ???
    Jeżeli ktoś by miał jakiekolwiek pomysły to bardzo proszę ...
    (Może uda mi się podłączyć do standardowego protu RS-232 w komputerze z pominięciem JTAG-lock-pick może wtedy zadziała...)

  • #212 08 Cze 2010 19:51
    Freddie Chopin
    Specjalista - Mikrokontrolery

    kajojj napisał:
    Ma ktoś pomysł co mogę robić źle?

    Spróbuj testowo zamienić komendę "reset halt" na dwie osobne "reset" i "halt", a nuż to coś da. Przetestuj też najnowsze OpenOCD w wersji rozwojowej z mojej strony

    gaskoin napisał:
    Teraz też?

    Teraz też, trochę jeszcze tego zostało...

    4\/3!!

  • #213 16 Cze 2010 15:38
    am248236
    Poziom 12  

    Niewiele tu było chyba o używaniu tego urządzenia pod linuksem, więc napiszę coś od siebie. Po pierwsze nie polecam używania driverów od amonteca, po drugie polecam zostawienie domyślnego PID (0x6010) zamiast amontecowego 0xCFF8 - openocd (skompilowany z obsługą ft2232) po zmienieniu tego PID w pliku interface/jtagkey.cfg radzi sobie doskonale, a system operacyjny widzi UART jako /dev/ttyUSB1 (ze zmienionym PIDem UART nie był widoczny).

    Jeśli openocd nie widzi podłączonego jtaga, to pomóc może dodanie takiego pliku /etc/udev/rules.d/45-jtagkey.rules:

    Code:

    BUS=="usb", ACTION=="add", SYSFS{idProduct}=="6010", SYSFS{idVendor}=="0403", MODE:="0666", GROUP:="users"

  • #214 19 Cze 2010 19:39
    danrok
    Poziom 13  

    Freddie Chopin napisał:
    kajojj napisał:
    Ma ktoś pomysł co mogę robić źle?

    Spróbuj testowo zamienić komendę "reset halt" na dwie osobne "reset" i "halt", a nuż to coś da. Przetestuj też najnowsze OpenOCD w wersji rozwojowej z mojej strony

    gaskoin napisał:
    Teraz też?

    Teraz też, trochę jeszcze tego zostało...

    4\/3!!


    a teraz można się jeszcze zapisać? pisałem PM-kę, ale nie wiem czy odczytałeś ;)

  • #215 19 Cze 2010 20:20
    gaskoin
    Poziom 38  

    cierpliwości, nie każdy siedzi na kompie 24h

  • #216 20 Cze 2010 10:15
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Zbliżamy się powoli do końcówki ponieważ zostało mi dosłownie kilka kompletów. O wszystkich PMach pamiętam i w końcu na nie odpisze, więc bez obaw (;

    4\/3!!

  • #218 20 Cze 2010 17:46
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Chodzi ci o kolejną serię zamówień czy o kolejną wersję płytek?

    4\/3!!

  • #219 20 Cze 2010 18:15
    utak3r
    Poziom 25  

    Jeśli kogoś to interesuje, na swojej stronie opisałem sposób instalacji sterowników, które są niepodpisane zaufanym certyfikatem, w systemie Windows 7 x64. Bezproblemowo zainstalowałem w ten sposób sterowniki do JTAG-lock-pick :D

  • #220 20 Cze 2010 19:00
    gaskoin
    Poziom 38  

    wersję płytek, czysta ciekawość, ale jak już zapytałeś to możesz odpowiedzieć na oba pytania

  • #221 21 Cze 2010 08:40
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Jeśli dojdzie do kolejnej serii zamówień, to najprawdopodobniej zostaną wprowadzone wyjątkowo minimalne poprawki do płytki (położenie otworów, bo okazało się, że jednak Kradex umieścił w końcu na stronie dokładne wymiary obudów i minimalnie różnią się od tego co zmierzyłem). Zmiany te wymuszone byłyby tym, że chciałbym zlecić montaż automatyczny tych JTAGów (wraz z wycinaniem obudów na maszynach), zamiast ręcznego dłubania.

    Nie wiem jednak czy do czegokolwiek dojdzie, bo wydaje mi się, że "rynek" jest już mocno nasycony, bo ilość zainteresowanych ostatnio znacznie spadła. Zobaczymy, na razie jestem niezdecydowany i waham się, czy ciągnąć to dalej.

    We'll see...

    Nie wiem jednak czy dokładnie o to pytałeś, czy raczej chciałeś się dowiedzieć o to, czy są w planach jakieś totalne nowości, ale odpowiedź jest częściowo podobna - na razie zainteresowanie jest zbyt małe na jakiekolwiek plany, więc niczego nie planuję. Wiadomo, że fajnie byłoby zrobić wersję "Tiny" i/lub wersję na najnowszych układach FT2232H...

    4\/3!!

  • #222 23 Cze 2010 17:35
    pekaa
    Poziom 10  

    Witam,

    Dopiero zaczynam prace z Arm i JTAG-lock-pick i probujac połączyc sie z układem za pomoca openocd wyskakuje mi cały czas cos takiego:


    C:\>openocd -f interface/jtagkey.cfg -f target/at91sam7sx.cfg
    Open On-Chip Debugger 0.3.1 (2009-11-13-16:13)
    $URL$
    For bug reports, read
    http://openocd.berlios.de/doc/doxygen/bugs.html
    srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
    Warn : use 'at91sam7s.cpu' as target identifier, not '0'

    i po chwili się wyłącza openocd.

    Czy mogłby mi ktos powiedziec z czego może wynikac błąd?

  • #223 23 Cze 2010 17:44
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Warning zignoruj - jest mało istotny.

    Zastosuj NAJNOWSZE OpenOCD, od dawna jest już wersja 0.4.0.

    No i co rozumiesz przez "wyłącza się"? A nie oczekuje przypadkiem na dalsze komendy od (np.) GDB? Poprawnie uruchomione OpenOCD powinno się niejako "zawiesić", choć tych komunikatów powinno być trochę więcej definitywnie...

    4\/3!!

  • #224 23 Cze 2010 18:40
    pekaa
    Poziom 10  

    Wyłącza sie, tzn. wyskakiwał komunikat windowsa ze program openocd przestał działac.

    Ale faktycznie instalacja nowej wersji (0.4.0) pomogła.

    Dzięki za pomoc!

  • #225 25 Cze 2010 20:48
    gaskoin
    Poziom 38  

    am248236 napisał:
    Niewiele tu było chyba o używaniu tego urządzenia pod linuksem, więc napiszę coś od siebie. Po pierwsze nie polecam używania driverów od amonteca, po drugie polecam zostawienie domyślnego PID (0x6010) zamiast amontecowego 0xCFF8 - openocd (skompilowany z obsługą ft2232) po zmienieniu tego PID w pliku interface/jtagkey.cfg radzi sobie doskonale, a system operacyjny widzi UART jako /dev/ttyUSB1 (ze zmienionym PIDem UART nie był widoczny).

    Jeśli openocd nie widzi podłączonego jtaga, to pomóc może dodanie takiego pliku /etc/udev/rules.d/45-jtagkey.rules:
    Code:

    BUS=="usb", ACTION=="add", SYSFS{idProduct}=="6010", SYSFS{idVendor}=="0403", MODE:="0666", GROUP:="users"


    polecam także zostawić domyślny PID, natomiast w /usr/local/share/openocd/scripts/interface/jtagkey.cfg zmienić linijkę

    Code:
    ft2232_vid_pid 0x0403 0xCFF8


    na

    Code:
    ft2232_vid_pid 0x0403 0x6010



    Nie wiadomo dlaczego ale w nowym jądrze coś jest pokopane z obsługą usb, posiadacze starego jądra mogą się dostosować do instrukcji zawartej na stronie amonteca http://www.amontec.com/jtagkey.shtml#drivers lub do README zawartego w sterownikach FTDI, jednak w systemach z nowym jądrem urządzenia usb nie chcą się montować do /proc/bus/usb. Szperałem dużo w internecie na ten temat, ale żadnej konkretnej odpowiedzi nie uzyskałem ani nie znalazłem. Powyższe zabiegi rozwiązały problem :)

  • #226 29 Cze 2010 18:32
    polprzewodnikowy
    Poziom 26  

    Witam, otrzymałem paczkę z moim JTAG'iem, oczywiście go polutowałem i gdy w openOCD wydaję komendę:

    Code:
    openocd -f interface/jtagkey.cfg


    odpowiada mi takim czymś:

    Code:
    polprzewodnikowy@HP:~/openocd-0.4.0$ openocd -f interface/jtagkey.cfg
    
    Open On-Chip Debugger 0.4.0 (2010-06-29-18:19)
    Licensed under GNU GPL v2
    For bug reports, read
       http://openocd.berlios.de/doc/doxygen/bugs.html
    Error: The specified JTAG interface was not found (ft2232)
    The following JTAG interfaces are available:
    Command handler execution failed
    polprzewodnikowy@HP:~/openocd-0.4.0$


    O co chodzi? Przecież jest wykrywany przez "lsusb"

    Code:
    polprzewodnikowy@HP:~/openocd-0.4.0$ lsusb
    
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 002 Device 007: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    polprzewodnikowy@HP:~/openocd-0.4.0$


    PID zmieniłem tak jak sugerował user wyżej (w jtagkey.cfg też).

    PS. FT2232 powinien być lekko ciepły?

  • #227 29 Cze 2010 18:51
    gaskoin
    Poziom 38  

    to ze lsusb pokazuje ze tam jest, nie znaczy, że system go zainstalował. Mi też widział (ze zmienionym PID), ale za chiny nie dało się go zainstalować.

    Pewnie masz dość nowe jądro (2.6.x są jaja z urządzeniami usb) Zobacz czy masz /dev/ttyUSB1 ?? i zobacz czy masz taki folder: /proc/bus/usb

    i tez zależy co znaczy lekko ciepły, jak wypala naskórek tzn, że albo Freddie Ci przysłał wadliwą sztukę, albo uczyniłeś jakieś zwarcia na płytce. Trochę ciepły powinien być bo przy 5V wydziela ~500mW ciepła

  • #228 29 Cze 2010 18:54
    polprzewodnikowy
    Poziom 26  

    Mam debiana squeeze więc jądro raczej najnowsze z najnowszych. USB1 mam tak samo folder /proc/bus/usb ale w nim pustka świeci. Dodam że na win xp jest tak samo.

  • #229 29 Cze 2010 18:57
    gaskoin
    Poziom 38  

    na winxp jak zrobisz wszystko tak jak napisał Freddie na swojej stronie to MUSI działać, wtedy JTAG jest wykrywany przez OpenOCD (nawet jak nic nie podepniesz) + jeden port COM, powiedz jeszcze jak się zachowują diody i przyczyny chyba bym szukał w HW (chociaż mówisz, że już zmieniłeś eeprom, więc cośtam jednak działa)

  • #230 29 Cze 2010 19:19
    polprzewodnikowy
    Poziom 26  

    Dioda D_USB świeci ale mimo wszystko samo podłączenie FT2232 z usb powinno działać i wykrywać JTAG'a.

  • #231 29 Cze 2010 19:26
    gaskoin
    Poziom 38  

    powinna jeszcze świecić D_RS (jeżeli wszystkie zworki są wyjęte) i żadna inna, w przeciwnym wypadku coś źle polutowałeś

  • #232 29 Cze 2010 19:27
    polprzewodnikowy
    Poziom 26  

    Mam wersję basic w której nie ma diody D_RS :)

  • #234 29 Cze 2010 19:46
    polprzewodnikowy
    Poziom 26  

    Na windowsie już działa ponieważ nie zainstalowałem sterowników win32 jakich im tam tylko ftd2xx i dlatego mi nie działało. Nadal walczę z problemem na linuxie ale podejrzewam że winne są sterowniki których wcale nie instalowałem. EEPROM zaprogramowałem twoim configiem.

  • #235 29 Cze 2010 19:56
    Freddie Chopin
    Specjalista - Mikrokontrolery

    Na linuxie ponoć czasem trzeba dodawać reguły do udev, bo bez tego właśnie nie działa.

    4\/3!!

  • #236 29 Cze 2010 19:56
    gaskoin
    Poziom 38  

    to spróbuj jeszcze tak:

    ściągnąć sterowniki ze strony FTDI
    rozpakować je

    i potem :

    Code:
    sudo su
    
    cp libftd2xx.so.0.4.14 /usr/local/lib

    cd /usr/local/lib
    ln -s libftd2xx.so.0.4.14 libftd2xx.so

    cd /usr/lib
    ln -s /usr/local/lib/libftd2xx.so.0.4.14 libftd2xx.so

    cd /etc
    nano fstab


    i dopisujesz tam:

    Code:
    none /proc/bus/usb usbfs defaults,mode=0666 0 0 


    jak to nie zadziała pozostaje dopisać reguły, poza tym, zdecyduj się jaki masz PID, bo jak programowałeś eeprom dostarczonym plikiem to w cale nie masz zmienionego PIDA...

    Freddie Chopin napisał:
    linuxie


    linuksie

  • #237 29 Cze 2010 20:06
    Freddie Chopin
    Specjalista - Mikrokontrolery

    tylko po co na linuXie używać sterowników ftd2xx? bezsensu - libusb działa tam lepiej. Poszukaj informacji o dodaniu tych reguł do udev i po sprawie będzie.

    Nawet powyżej jest info https://www.elektroda.pl/rtvforum/viewtopic.php?p=8231956#8231956

    4\/3!!

  • #238 29 Cze 2010 20:32
    polprzewodnikowy
    Poziom 26  

    Nadal to samo, FT2232 zaprogramowałem na pid amonteca "0xCFF8", to w /etc/udev/rules.d/45-jtagkey.rules:

    Code:
    BUS=="usb", ACTION=="add", SYSFS{idProduct}=="CFF8", SYSFS{idVendor}=="0403", MODE:="0666", GROUP:="users"


    I w jtagkey.cfg

    Code:
    ft2232_vid_pid 0x0403 0xCFF8


    dałem i nadal nic.

  • #239 29 Cze 2010 20:32
    gaskoin
    Poziom 38  

    się uparł:P masz racje, lepiej stosować sterowniki libusb, dałem tylko jeszcze inne rozwiązanie dla desperatów :)

  • #240 29 Cze 2010 20:57
    Freddie Chopin
    Specjalista - Mikrokontrolery

    polprzewodnikowy, a czy Twój użytkownik jest w grupie "users" (pytanie może być bardzo głupie, nie znam się na linuxie [; )

    Przetestuj jak to jest gdybyś PID zostawił oryginalny (przy programowaniu EEPROMu zmień w pliku z mojej stronki wartość na starą - programować w MProg można tylko gdy zainstalowane są sterowniki ftd2xx)...

    4\/3!!