4R|\/|-JT4G R 02 T R

Transkrypt

4R|\/|-JT4G R 02 T R
pejdŜ 1
4R|\/|-JT4G Rev02, TRM Rev01
4R|\/|-JT4G REV02
TECHNIKAL REFRENS MANJUŁAL
pejdŜ 2
4R|\/|-JT4G Rev02, TRM Rev01
Tejból of kontentz
I. Introdakszion.....................................................................................................................................3
II. Ficzery.............................................................................................................................................4
III. Chardłer..........................................................................................................................................5
1. Elementologia..............................................................................................................................5
2. Gniazdkologia i pinologia............................................................................................................6
3. Taśmologia...................................................................................................................................7
4. Cenologia.....................................................................................................................................7
5. Efekt finalny................................................................................................................................7
IV. Softłer............................................................................................................................................11
V. JusidŜ..............................................................................................................................................13
1. OpenOCD..................................................................................................................................13
2. IDE oparte o GDB.....................................................................................................................15
3. Crossworks (BETA info)............................................................................................................15
4. Gdzie szukać szczegółowych informacji?.................................................................................15
VI. FAKU...........................................................................................................................................16
VII. Trabelszóting...............................................................................................................................17
VIII. TU DO.......................................................................................................................................19
IX. TRM CzejndŜlog..........................................................................................................................20
X. Disklejmer.....................................................................................................................................21
XI. Appendiks.....................................................................................................................................22
pejdŜ 3
4R|\/|-JT4G Rev02, TRM Rev01
I. Introdakszion
4R|\/|-JT4G to JTAG dla procesorów opartych na rdzeniu ARM podłączany do komputera za pomocą magistrali USB. Projekt ten w całości bazuje na projekcie Turtelizer 21 dla Ethernut'a2. Z tego teŜ
względu opis instalacji i uŜytkowania jest praktycznie identyczny. Przeróbki były konieczne, poniewaŜ zastosowane w Turtelizerze elementy (scalone bufory i inwerter) nie są dostępne w Polsce.
RównieŜ wprowadzono kilka poprawek, aby układ mógł współpracować z targetami innymi niŜ
AT91R40008. Nietypowe złącze zmienione zostało na standardowe, a projekt przystosowany do dostępnej w Polsce obudowy.
1 http://www.ethernut.de/en/hardware/turtelizer/
2 http://www.ethernut.de/en/
pejdŜ 4
4R|\/|-JT4G Rev02, TRM Rev01
II. Ficzery
4R|\/|-JT4G posiada standardowe złącze JTAG 20 pin oraz złącze RS232 (10 pin gniazdo IDC) –
emulowany w nim port COM jest w pełni funkcjonalnym portem – doprowadzone są do niego
wszystkie sygnały sterujące (DCD, RX, TX, DTR, DSR, RTS, CTS, RI), napięcia w standardzie
RS-232. JTAG bezproblemowo współpracuje z OpenOCD3, pozwalając na debuggowanie we
wszystkich pakietach które z niego korzystają (m.in. Yagarto4). 4R|\/|-JT4G testowany był równieŜ
przez krótką chwilę w środowisku Crossworks5. Testy w środowisku IAR pokazują, Ŝe nie moŜna w
nim korzystać z opisywanego tutaj układu 4R|\/|-JT4G.
3 http://openocd.berlios.de/web/
4 http://www.yagarto.de/
5 http://www.rowley.co.uk/arm/index.htm
pejdŜ 5
4R|\/|-JT4G Rev02, TRM Rev01
III. Chardłer
1. Elementologia
Schemat, wzór płytek, rozkład i lista potrzebnych elementów znajdują się na końcu tego dokumentu.
Układ zasilany jest częściowo przez złącze USB (główny układ scalony, EEPROM, transceiver
RS-232), częściowo przez targeta (bufory U2, inwerter na tranzystorze Q1) za pośrednictwem złącza JTAG – pozwala to na konwersję poziomów napięcia i współpracę z układem o praktycznie dowolnym napięciu zasilania w zakresie dopuszczalnym przez zastosowany bufor (dla układu typu
74VHC244 w teorii 2V – 5.5V) . Obecność napięć zasilania sygnalizowana jest przez dwie diody:
USB_P (przy gnieździe USB) oraz TRGT_P (przy gnieździe JTAG).
Płytka drukowana ma wymiary około 40 mm x 60 mm. Płytka jest dwustronna i wymaga metalizacji
otworów. Pasuje ona do obudowy typu Z-246 (o dowolnej z dostępnych wysokości). Większość elementów jest w obudowach SMD, jedynie kondensator elektrolityczny (1), tranzystor (1), diody
LED (6), rezonator kwarcowy (1) oraz gniazda (3) są przeznaczone do montaŜu przewlekanego. Rezystory i kondensatory SMD są w obudowach rozmiaru 0805. Dodatkowo przewidziana została
moŜliwość zastąpienia niektórych trudniej dostępnych elementów SMD elementami przewlekanymi:
–
–
–
kondensatory C5, C6 (27pF) przy rezonatorze kwarcowym,
kondensatory C8, C9, C12 (470nF) przy transceiverze MAX3243,
dławik FB przy gnieździe USB.
Główny układ scalony U1 – FT2232 – moŜe być w wersji -C, -L jak i -D – nie ma to znaczenia dla
tego projektu.
Układ U3 – transceiver RS-232 MAX3243 – moŜe być w obudowie typu SSOP jak i TSSOP (warianty -CA-, -CU-, -EA- lub -EU-).
Bufor 74xxx244 powinien być w obudowie typu SOIC-WIDE. Bufor ten powinien być buforem
typu 74VHC244, 74AHC244 lub innym, spełniającym poniŜsze wymagania:
–
–
napięcie zasilania przynajmniej od 3.3V w górę,
odporność na napięcie wejściowe większe od VCC w szerokim zakresie – przynajmniej VCC
+2V lub minimum 5V niezaleŜnie od napięcia zasilania.
W układzie moŜna zastosować inny układ EEPROM, który spełnia poniŜsze warunki:
–
–
–
pojemność ≥ 128 bajtów,
magistrala typu Microwire,
organizacja pamięci 16-to bitowa (np. 64 x 16b).
Mogą to być na przykład układy typu 93C46, 93LC46, 93xx56 lub 93xx66.
Zastosowany dławik powinien dopuszczać prądy I ≥ 0.2A i cechować się niską rezystancją. Indukcyjność nie ma znaczenia. W ostateczności moŜna go zastąpić zworą – jednak wtedy układ moŜe
nie pracować stabilnie w otoczeniu silnie zakłócających urządzeń (zasilacze impulsowe, telefony
bezprzewodowe, komórkowe, silniki, itp.).
Kondensatory C5 i C6 mogą mieć inne wartości niŜ podane w schemacie i na liście elementów –
układ prawidłowo pracuje przy wartościach 22pF, najprawdopodobniej równieŜ inne – zbliŜone –
wartości pozwolą na poprawną pracę. Rezystory R3, R5, R6, R8, R10, R12 (27R) słuŜą jedynie
6 http://kradex.com.pl/z23.htm
pejdŜ 6
4R|\/|-JT4G Rev02, TRM Rev01
ograniczeniu prądu w wypadku zwarć lub błędów uŜytkownika i stanowią proste zabezpieczenie
przed uszkodzeniem wszystkich delikatnych układów scalonych złączonych w całość. Jak jesteś naprawdę twardy, to moŜesz je zastąpić zworami. Ich wartość jest zaleŜna tylko od aktualnego stanu
zaopatrzenia sklepów, mogą mieć nawet kilka kiloomów, jednak tak duŜe wartości mogą zakłócać
pracę układu (zwłaszcza przy duŜych szybkościach). Wszystko do około 100R powinno pracować
bezproblemowo. Rezystory R15 – R18 słuŜą ograniczeniu prądu diod LED sygnalizujących transfer
danych – ich wartość moŜe być inna, byle nie zbyt mała, gdyŜ moŜe to grozić uszkodzeniem U1.
Podobnie rezystory R19 i R20, jednak tu zbyt mała ich wartość moŜe doprowadzić do uszkodzenia
diod LED sygnalizujących obecność napięcia zasilającego lub przeciąŜenia źródeł zasilania (komputera PC i/lub zasilacza targeta).
Diody LED sygnalizujące transmisję lub odbiór danych mogą być zarówno zwykłymi diodami
dwuwyprowadzeniowymi, jak i diodami dwukolorowymi o wspólnej anodzie.
Kondensator elektrolityczny C2 powinien mieć dopuszczalne napięcie większe niŜ 5V. Jego wartość
moŜe być inna, choć nie powinna być mniejsza.
Jeśli nie jest wymagana obecność konwertera USB <=> RS-232 moŜna nie montować następujących elementów: układ U3, kondensatory C7, C8, C9, C11, C12, gniazdo kątowe 10 pin, diody
LED R_RX, R_TX, rezystory R17, R18.
2. Gniazdkologia i pinologia
Opis wyprowadzeń w złączu JTAG znajduje się w tabeli 1. Linie nTRST i nSRST są zwarte. Bufor
konwertujący poziomy logiki zasilany jest poprzez linie TVCC. Masy układu docelowego, JTAGa i
komputera PC (za wyjątkiem stosowania izolowanych galwanicznie hubów USB) będą zwarte. Znaczenie i zastosowanie wszystkich tych linii moŜna znaleźć na stronie Turtelizera7.
Tabela 1. Pinologia złącza JTAG
TVCC – 1 2 – TVCC
nTRST – 3 4 – GND
TDI – 5 6 – GND
TMS – 7 8 – GND
TCK – 9 10 – GND
N/C – 11 12 – GND
TDO – 13 14 – GND
nSRST – 15 16 – GND
N/C – 17 18 – GND
N/C – 19 20 – GND
Opis wyprowadzeń złącza RS-232 znajduje się w tabeli 2. Rozmieszczenie poszczególnych linii
jest zgodne z męskim gniazdem znajdującym się w komputerze PC. Numeracja odzwierciedla numerację oznaczoną na płytce. Ze względu na 'jednostronność' gniazd kątowych numeracja pinów w
gnieździe będzie odwrócona.
Tabela 2. Pinologia złącza RS-232
7 http://www.ethernut.de/en/hardware/enut3/jtag.html
pejdŜ 7
4R|\/|-JT4G Rev02, TRM Rev01
DCD – 1 6 – DSR
RX – 2 7 – RTS
TX – 3 8 – CTS
DTR – 4 9 – RI
GND – 5 10 – GND
Projekt płytki pozwala zastosować kątowe gniazdo JTAG przeznaczone do wtyczek typu IDC.
Gniazdo USB jest gniazdem typu A, kątowym. Gniazdo RS-232 jest gniazdem kątowym przeznaczonym do wtyczek typu IDC. Zamiast gniazd JTAG i RS-232 moŜna wlutować na stałe taśmę lub
inny rodzaj przewodu łączącego.
3. Taśmologia
Taśmę do podłączenia targeta naleŜy zacisnąć w sposób przelotowy – piny nr 1 we wtyczkach
(oznaczone małym trójkątem) powinny być ze sobą połączone czerwoną Ŝyłą taśmy. Zalecane jest,
aby taśma nie była zbyt długa – zwykle mają one 15-30 cm.
Taśmę RS-232 naleŜy zacisnąć w taki sposób, aby zachować zgodność ze standardem wyprowadzeń. Ze względu na fakt 'jednostronności' gniazda kątowego, taśmę od strony układu naleŜy zacisnąć odwrotnie (czerwona Ŝyła taśmy po przeciwnej stronie niŜ mały trójkąt na wtyczce), w dalszej
części taśmy odciąć Ŝyłę nr 10, a w złączu DB-9 IDC zacisnąć taśmę standardowo (czerwona Ŝyła
do pinu 1).
4. Cenologia
Sumaryczna cena wszystkich elementów potrzebnych do zbudowania JTAGa to około 40zł + obudowa + transceiver MAX3243 (około 30zł oryginał MAXIMa lub tańsze zamienniki, niestety niedostępne w Polsce).
5. Efekt finalny
Zmontowany układ przedstawiony został na rysunkach od 1 do 6. Przedstawiony na dwóch pierwszych zdjęciach układ montowany był pod kątem pracy bez obudowy i braku konwertera RS-232.
Brak na nim teŜ diod LED – szufladka z LEDami niestety nie przewidywała chwilowo stosownej
ilości diodek w odpowiednich kolorach. Na kolejnych czterech zdjęciach widać układ w wersji maximum-overkill – zarówno nago jak i w obudowie.
pejdŜ 8
4R|\/|-JT4G Rev02, TRM Rev01
Rys. 1. 4R|\/|-JT4G od góry ...
Rys. 2. ... i od dołu
pejdŜ 9
4R|\/|-JT4G Rev02, TRM Rev01
Rys. 3. 4R|\/|-JT4G z transceiverem RS-232
Rys. 4. 4R|\/|-JT4G z transceiverem RS-232 od d...rugiej strony...
pejdŜ 10
4R|\/|-JT4G Rev02, TRM Rev01
Rys. 5. Okablowany 4R|\/|-JT4G
Rys. 6. 4R|\/|-JT4G podczas pracy
pejdŜ 11
4R|\/|-JT4G Rev02, TRM Rev01
IV. Softłer
Proces instalacji i programowania układu FT2232 opisany jest wnikliwie na stronie Turtelizera8.
Sprowadza się on do następujących kroków:
1. Podłączenie układu do komputera PC, zainstalowanie sterowników VCP9 (Virtual COM
Port Drivers) pobranych ze strony producenta układu – firmy FTDI10
2. Zaprogramowania układu EEPROM za pomocą programu MPROG11, pobranego ze strony
producenta FT2232; konfiguracja którą naleŜy do niego zapisać jest opisana na stronie Turtelizera12; proces ten wygląda następująco:
a. uruchomić program MPROG
b. File -> New (lub przycisk New), aby przełączyć aplikację w tryb Edit Mode (sygnalizowany napisem w pasku tytułu)
c. wybrać Device Type -> FT2232C (lub -D, jeśli taka właśnie jest tam wlutowana)
d. wybrać USB VID / PID -> FTDI Supplied PID
e. wpisać Product ID -> BDC8
f. w zakładce FT2232C, w boxie Side A wybrać: 245 FIFO, D2XX Direct i zaznaczyć
opcję High Current I/O's, następnie w boxie Side B zaznaczyć High Current I/O's
g. wpisać Manufacturer -> egnite
h. wpisać Product Description -> Turtelizer JTAG/RS232 Adapter
i. File -> Save As ... (lub przycisk Save Template As ...) i wybrać dowolną lokalizację oraz
dowolną nazwę
j. Device -> Scan (lub przycisk Scan for Available Devices), aby przełączyć aplikację w
tryb Program Mode (sygnalizowany napisem w pasku tytułu); w tym momencie okno
programu powinno wyglądać tak jak przedstawiono to na rysunku 7 (w przypadku wersji -D układu okno będzie wyglądać nieco inaczej, jednak wybrane opcje powinny być
takie same!)
k. Device -> Program (lub przycisk Program All Existing Devices)
3. Odłączenie układu od portu USB
4. Instalacja OpenOCD
5. Ponowne podłączenie układu do portu USB
a. Ponowna instalacja sterowników dla urządzenia o zmienionej nazwie; sterowniki znajdują się w folderze <folder instalacyjny OpenOCD>\driver\turtelizer2\
8
9
10
11
12
http://www.ethernut.de/en/hardware/turtelizer/
http://www.ftdichip.com/Drivers/VCP.htm
http://www.ftdichip.com/
http://www.ftdichip.com/Resources/Utilities.htm#MProg
http://www.ethernut.de/img/ftmprog02.png
pejdŜ 12
4R|\/|-JT4G Rev02, TRM Rev01
Rys. 7. Ustawienia programu MPROG
pejdŜ 13
4R|\/|-JT4G Rev02, TRM Rev01
V. JusidŜ
1. OpenOCD
Do poprawnej pracy układu z OpenOCD potrzebny jest plik konfiguracyjny, opisujący zastosowany
JTAG i uŜywanego targeta. Przykładowa zawartość takiego pliku przedstawiona jest poniŜej.
#daemon configuration
telnet_port 4444
gdb_port 3333
# tell gdb our flash memory map
gdb_memory_map enable
# enable flash programming
gdb_flash_program enable
#interface
interface ft2232
ft2232_device_desc "Turtelizer JTAG/RS232 Adapter A"
ft2232_layout turtelizer2
ft2232_vid_pid 0x0403 0xbdc8
jtag_speed 3
jtag_nsrst_delay 200
jtag_ntrst_delay 200
#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only srst_pulls_trst
#jtag scan chain
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
jtag_device 4 0x1 0xf 0xe
#target configuration
#target <type> <startup mode>
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4
run_and_halt_time 0 30
daemon_startup reset
working_area 0 0x40000000 0x4000 nobackup
flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 12000 calc_checksum
# For more information about the configuration files, take a look at:
# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
Plik ten jest przeznaczony dla procesora LPC2148 firmy NXP. Dokładne informacje jak powinna
wyglądać zawartość pliku dla innych układów moŜna znaleźć w wiki OpenOCD13. W wiki tej moŜna znaleźć równieŜ przykładowe skrypty konfiguracyjne14 dla róŜnych procesorów.
Fragment istotny dla zastosowanego JTAGa to:
#interface
interface ft2232
ft2232_device_desc "Turtelizer JTAG/RS232 Adapter A"
ft2232_layout turtelizer2
ft2232_vid_pid 0x0403 0xbdc8
jtag_speed 3
jtag_nsrst_delay 200
jtag_ntrst_delay 200
#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only srst_pulls_trst
13 http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_configuration
14 http://openfacts.berlios.de/index-en.phtml?title=OpenOCD_scripts
pejdŜ 14
4R|\/|-JT4G Rev02, TRM Rev01
#jtag scan chain
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
jtag_device 4 0x1 0xf 0xe
Reszta pliku jest specyficzna dla róŜnych targetów. MoŜliwe, Ŝe konieczna będzie zmiana opisu
urządzenia na:
ft2232_device_desc "Turtelizer JTAG/RS232 Adapter"
(bez '<spacja>A' na końcu) – czasem urządzenie instaluje się pod inną nazwą. W zaleŜności od
wielu czynników konieczne moŜe być teŜ ustawienie innej szybkości pracy urządzenia:
jtag_speed 3
(mniej = szybciej, 0 – bez ograniczeń). Urządzenie o zbyt duŜej szybkości nie będzie potrafiło połączyć się z targetem, o czym poinformuje nas przy uŜyciu takiego errora w wierszu poleceń (patrz
dalej):
Open On-Chip Debugger (2008-03-22 12:00 CET) svn: r520
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/
Error:
jtag.c:1291 jtag_examine_chain(): JTAG communication failure, check con
nection, JTAG interface, target power etc.
Error:
jtag.c:1487 jtag_init(): trying to validate configured JTAG chain anywa
y...
Error:
embeddedice.c:181 embeddedice_build_reg_cache(): unknown EmbeddedICE ve
rsion (comms ctrl: 0xffffffff)
Warning: jtag.c:902 jtag_add_reset(): requested reset would assert trst
Error:
armv4_5.c:186 armv4_5_mode_to_number(): invalid mode value encountered
Error:
arm7_9_common.c:1114 arm7_9_debug_entry(): cpsr contains invalid mode v
alue - communication failure
[...]
Error:
target.c:1362 handle_target(): couldn't poll target(-305). It's due for
a reset.
Error:
armv4_5.c:186 armv4_5_mode_to_number(): invalid mode value encountered
Error:
arm7_9_common.c:1114 arm7_9_debug_entry(): cpsr contains invalid mode v
alue - communication failure
[...]
User:
target.c:365 target_process_reset(): Timed out waiting for reset
[...]
Plik naleŜy zapisać na dysku pod jakąś nazwą (np. pajak_je_biedronke.cfg). Następnie moŜna uruchomić OpenOCD z wiersza poleceń (aktualna lokalizacja musi zawierać inkryminowany plik konfiguracyjny) komendą:
openocd-ftd2xx -f pajak_je_biedronke.cfg
Powinno to dać następujący efekt:
Open On-Chip Debugger (2008-03-22 12:00 CET) svn: r520
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/
Info:
jtag.c:1329 jtag_examine_chain(): JTAG device found: 0x4f1f0f0f (Manufa
cturer: 0x787, Part: 0xf1f0, Version: 0x4)
Warning: jtag.c:902 jtag_add_reset(): requested reset would assert trst
pejdŜ 15
4R|\/|-JT4G Rev02, TRM Rev01
2. IDE oparte o GDB
Podrozdział ten oparty jest o IDE Yagarto15, jednak prawdy objawione w nim wypisane będą właściwe równieŜ dla innych IDE, w których debuggowanie oparte jest o GDB.
Uruchomienie sesji debuggowania w IDE poprzez GDB wymaga zawsze pewnego zestawu rozkazów – swoistej gry wstępnej – wysyłanych przez GDB do JTAGa. Przykładowy zestaw komend inicjujących sesję w pakiecie Yagarto wygląda następująco (dla procesora LPC2148, debuggowanie w
RAMie):
target remote localhost:3333
monitor reset
monitor sleep 500
monitor poll
monitor soft_reset_halt
monitor arm7_9 sw_bkpts enable
monitor mww 0xE01FC040 0x0002
monitor mdw 0xE01FC040
load
break main
continue
3. Crossworks (BETA info)
UŜytkowanie 4R|\/|-JT4G w środowisku Crossworks jest moŜliwe. Aby tego dokonać po uruchomieniu pakietu naleŜy kliknąć prawym klawiszem myszki w oknie Targets i wybrać opcję New Target Interface -> Generic FT2232 Device. Następnie w znajdującym się poniŜej oknie Properties naleŜy wpisać następujące wartości (pola niewymienione pozostawić z wartościami standardowymi):
–
–
–
–
–
nSRST Mask: 0x0040,
nTRST Mask: 0x0040,
Output Pins: 0x0C5F,
Output Value: 0x0C00,
PID: 0xBDC8.
4. Gdzie szukać szczegółowych informacji?
Wiele dodatkowych informacji o konfiguracji i uŜytkowaniu JTAGa, IDE, OpenOCD, ARMa itp.
moŜna znaleźć w następujących miejscach:
–
–
–
–
–
15
16
17
18
19
20
wiki OpenOCD16,
how-to pakietu Yagarto17,
opis uŜytkowania Turtelizera 218,
na forum elektrody19,
google20.
http://www.yagarto.de/
http://openfacts.berlios.de/index-en.phtml?title=Main_Page
http://www.yagarto.de/howto.html
http://www.ethernut.de/en/hardware/enut3/openocd.html
http://www.elektroda.pl/rtvforum/
http://www.google.pl/
pejdŜ 16
4R|\/|-JT4G Rev02, TRM Rev01
VI. FAKU
Q: Jak to tak fajnie zlutować?
A: Scalaki w małym rastrze: najwygodniej pastą lutowniczą i lutownicą hot-air, moŜna równieŜ zastosować metodę super-hiper-ultra-achtung-cynowego-smarka, lutownicę kolbową, topnik i odsysacz/plecionkę. Resztę – lutownicą kolbową i najzwyklejszą cienką cyną. Prawdziwy twardziel zlutuje to transformatorówką, a John Rambo – lutownicą do rynien.
Q: Jak zacisnąć te ch#$^&@* wtyczki IDC na taśmach?
A: Ze swojej strony proponuje metodę nazwaną roboczo 'na pieska' (tudzieŜ 'od tyłu'). Potrzebne
rekwizyty to coś w miarę płaskiego, cięŜkiego i łatwego do uchwycenia – ja osobiście stosuje
mega cięŜkie trafo z mikrofalówki, ale egzamin zda teŜ dla przykładu deska do krojenia (byle
mocna!). Wtyczkę w stanie częściowo zmontowanym (czyli taśma jest na miejscu, plastikowy
docisk jest na miejscu, taśma jest dobita na tyle, Ŝeby się nie wysunąć samoczynnie) naleŜy połoŜyć na podłodze (nie mylić z dywanem! ma być twarde i sztywne), uklęknąć przed tą strukturą
w odległości pozwalającej na przyjęcie względem niej pozycji narzucającej się po przeczytaniu
pierwszego zdania tej porady. Po krótkich modłach do wtyczki typu IDC naleŜy połoŜyć na niej
nasz narząd (deskę do krojenia lub trafo np.) dociskowy i dokonać kilku skierowanych pionowo
w dół (! kluczowa sprawa ! dokonanie tego pod kątem zaowocuje rozwaleniem wtyczki !)
pchnięć całym ciałem, co umoŜliwi wbicie taśmy w stosowne dla nich szparki.
Q: Coś mi nie działa.
A: Coś źle zrobiłeś – u mnie działa. Poza tym naucz się zadawać konkretne pytania21.
Q: Gdzie kupić wszystkie elementy?
A: W sklepie. STFW. FT2232 jest dostępny (na chwilę obecną) w co najmniej dwóch sklepach internetowych: sensu22 i kamami23. Reszta elementów jest na tyle standardowa, Ŝe moŜna je kupić
w zasadzie gdziekolwiek. Dodać naleŜy, Ŝe układ FT2232 w wersji -C (lub bezołowiowej -L)
jest wycofany z produkcji i coraz cięzej dostępny na rynku. Łatwiej kupić układ w wersji -D.
Q: Nie wiem nic o ARMach, a chciałbym zacząć. Jak to zrobić?
A: STFW & RTFM. Mnie nie pytaj, bo sam zaczynam.
Q: Wyciąłeś krzywo otwory w obudowie / Krzywo przylutowałeś gniazda / Beznadziejnie przylutowałeś elementy / Wygląda toto jak wyciągnięte psu z pyska / Brzydka obudowa / Za duŜa
płytka / Lewy projekt / etc.
A: FOAD <; . Nie podoba się to nie patrz i zrób lepiej. To ma działać, a nie robić za wystawę.
Q: Co to znaczy STFW albo RTFM albo FOAD albo cokolwiek_innego?
A: Najprawdopodobniej nastał koniec wszechświata, skoro ani google24 ani wikipedia25 nie działają.
W takim wypadku odpowiedź jest nieistotna.
21
22
23
24
25
http://rtfm.killfile.pl/
http://sensu.pl/
http://kamami.pl/
http://www.google.pl/
http://en.wikipedia.org/wiki/Main_Page
pejdŜ 17
4R|\/|-JT4G Rev02, TRM Rev01
VII. Trabelszóting
Problem:
JTAG nie jest wykrywany przez system / Po podłączeniu do portu USB system
wykrywa 'Nieznane urządzenie' i sygnalizuje problem z podłączonym urządzeniem USB / JTAG nie pracuje poprawnie.
Powód:
Schemat układu zawiera drobny błąd – wyprowadzenie AVCC (pin 46) układu
FT2232, będące doprowadzeniem zasilania do analogowego PLLa mnoŜącego
częstotliwość rezonatora 6MHz do wymaganej przez magistralę USB częstotliwości 48MHz, powinien być filtrowany przez prosty układ RC (470R + 100nF).
W schemacie i w projekcie pominięty został kondensator 100nF.
Rozwiązanie 1: Odsunąć JTAGa i przewód USB od silnych źródeł zakłóceń (impulsowy zasilacz
komputerowy, telefony komórkowe, telefony bezprzewodowe itp.).
Rozwiązanie 2: Do znajdującego się bliŜej układu U1 pada rezystora R1 (470R) dolutować przewlekany kondensator 100nF. Drugą nóŜkę moŜna dolutować do dowolnych połączonych z masą padów np. do padów kondensatorów C5 i C6 (SMD lub przewlekanych, w zaleŜności od tego które są wolne) obciąŜających rezonator kwarcowy Y1.
Info! :
Problem jak i jego rozwiązania są jedynie hipotezą! Układ pracuje poprawnie
bez inkryminowanego kondensatora, jednak moŜe się zdarzyć, Ŝe w specyficznych warunkach będzie inaczej.
Problem:
Program MPROG sygnalizuje problem uniemoŜliwiający zaprogramowanie
EEPROMu.
Powód:
Układ FT2232 wymaga pamięci EEPROM o organizacji 16b. Niektóre układy
EEPROMu uŜywają wyprowadzenia ORG (pin 6) do ustalenia szerokości słowa
w pamięci i nie zawiera w swojej strukturze rezystora pull-up, lub teŜ rezystor
ten nie jest w stanie ustalić odpowiedniego potencjału na tym wyprowadzeniu w
momencie włączenia zasilania, co w efekcie powoduje przełączenie EEPROMu
na pracę 8b.
Rozwiązanie 1: Zastąpić zastosowany układ EEPROMu modelem, którego organizacja jest domyślnie 16b (np. 93C46 lub 93LC46).
Rozwiązanie 2: Do pada 6 układu U4 dolutować powierzchniowo zworę z drutu (lub rezystor
przewlekany o w zasadzie dowolnej wartości rzędu do 10kR). Drugi koniec
zwory (lub drugie wyprowadzenie rezystora) dolutować do dowolnego pada dołączonego do VCC (np. pad dławika FB, pad kondensatora C2, pady diod J_RX,
J_TX).
Info! :
Rozwiązanie problemu jest niesprawdzone! Niemniej jednak cięŜko sobie wyobrazić dlaczego miałoby nie działać poprawnie.
pejdŜ 18
4R|\/|-JT4G Rev02, TRM Rev01
Problem:
Pomimo zastosowania opisanych procedur OpenOCD nie moŜe połączyć się z
targetem.
Powód:
Niektóre targety pozwalają na dołączenie JTAGa jedynie 'przez chwilę' od uruchomienia.
Rozwiązanie:
Zresetować targeta i natychmiast po usunięciu sygnału resetu uruchomić OpenOCD odpowiednią komendą.
Info! :
Symptomy takie zaobserwowane zostały jedynie na procesorze LPC2148 (a w
zasadzie na zestawie ewaluacyjnym ZL9ARM + ZL10ARM), poniewaŜ 4R|\/|JT4G nie został na chwilę obecną przetestowany z innymi procesorami. MoŜliwe, Ŝe w przypadku innego procesora lub innej aplikacji (pozbawionej kretyńskich błędów zestawu z BTC) problem nie będzie występował.
Problem:
Dioda LED TRGT_P, sygnalizująca zasilanie ze strony targeta, pali się, choć target nie jest podłączony.
Powód:
Przez diody zabezpieczające wejścia buforów typu 74VHC244 napięcie przechodzi na piny zasilania, jeśli bufor jest niezasilony i nieaktywny, a na jego wejściach pojawiają się stany wysokie (których źródłem jest FT2232).
Rozwiązanie 1: Zignorować problem. Wydajność prądowa tego napięcia jest tak znikoma, Ŝe nie
ma ono Ŝadnego znaczenia. Poza tym podłączenie zasilania ze strony targeta natychmiast spolaryzuje diody zabezpieczające w przeciwnym kierunku.
Rozwiązanie 2: Zastosować bufor bez diod zabezpieczających wejścia, np. typu 74AHC244.
Rozwiązanie 3: Przed dołączeniem targeta uruchomić OpenOCD z plikiem konfiguracyjnym,
tak jak opisano to na stronie 14 w rozdziale V.1. (uruchomienie oczywiście się
nie powiedzie), co spowoduje aktywację bufora i usunięcie problematycznego
napięcia.
Info! :
4R|\/|-JT4G został dość wnikliwie przetestowany i początkowa obecność napięcia na liniach TVCC złącza JTAG nie stanowi Ŝadnej przeszkody dla poprawnego funkcjonowania układu. Dokładna geneza problemu jak i rozwiązanie 2 jest
hipotetyczne.
Problem:
JTAG działa przeraźliwie wolno
Powód:
Układ FT2232 przeznaczony jest do współpracy z magistralą USB2.0 – praca z
magistralą USB1.0 lub USB1.1 nie pozwala na osiągnięcie pełnej prędkości
układu.
Rozwiązanie:
brak, naleŜy korzystać z komputera wyposaŜonego w kontroler magistrali
USB2.0.
pejdŜ 19
4R|\/|-JT4G Rev02, TRM Rev01
VIII. TU DO
1. Współpraca z innymi IDE:
Jeśli masz jakieś info dotyczące współpracy układu 4R|\/|-JT4G z innymi środowiskami,
podziel się nim z innymi. Napisz do mnie PMa na forum elektrody, a info to znajdzie się w
poprawionych wersjach TRMa.
2. Współpraca z Crossworks:
Zgłębić sprawę diodek i debuggowania. Jeśli udało ci się zmusić do jakiejś konkretnej
współpracy diody sygnalizujące, albo jeśli masz uwagi dotyczące współpracy w Crossworks
– prześlij mi je.
pejdŜ 20
4R|\/|-JT4G Rev02, TRM Rev01
IX. TRM CzejndŜlog
15.05.2008 – Rev00 – iniszal rilis wersji dla 4R|\/|-JT4G Rev02
13.06.2008 – Rev01 – drobne poprawki, dodane informacje o nieprawidłowej współpracy z kontrolerami USB poniŜej USB2.0, dodane info o braku współpracy z IARem, dodane zdjęcia
układu z wszystkimi elementami i w obudowie, dodane informacje o wersji -L układu
FT2232
pejdŜ 21
4R|\/|-JT4G Rev02, TRM Rev01
X. Disklejmer
THIS HARDWARE DESIGN IS PROVIDED 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE DESIGNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
DESIGN, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
(oczywiście, Ŝe skopiowałem to ze strony Turtelizera <: )
pejdŜ 22
XI. Appendiks
Dołączone dokumenty:
–
schemat układu,
–
lista elementów,
–
wzór ścieŜek (top layer + bottom layer),
–
rozkład elementów (top overlay + bottom overlay).
4R|\/|-JT4G Rev02, TRM Rev01
1
2
3
4
tVCC
RESET
RSTOUT
1.5K
46
VCC
41
6
C4
USB_P
VBUS
GND
100n
USB
1
2
3
4
VBUS
DD+
GND
470
R20
PWREN
3V3OUT
R10 27
USB-D- 8
USB-D+ 7
ACBUS3
ACBUS2
ACBUS1
ACBUS0
USBDM
USBDP
R12 27
SI/WUA
USB-A
43
44
GND GND
Y1
6MHz
B
2
XTIN
XTOUT
BDBUS7
BDBUS6
BDBUS5
BDBUS4
BDBUS3
BDBUS2
BDBUS1
BDBUS0
1
C5
27p
1
2
48
C6
27p
EESK
EEDATA
EECS
GND
TEST
VCC
SI/WUB
JTAGOE
RST
1
TCK
TDI
TMS
RST
JTAGOE
TMS
TDO
TDI
TCK
2
4
6
8
20
tVCC
11
12
13
15
RX1LED
TX1LED
SENSE
TDO
32
33
35
36
37
38
39
40
BDBUS7
BDBUS6
BDBUS5
BDBUS4
BDBUS3
BDBUS2
BDBUS1
BDBUS0
9
7
5
3
10
GND
tnSRST
tTDI R3
tTMS R5
tTCK R6
Y1
Y2
Y3
Y4
VDD GND
Y1
Y2
Y3
Y4
18
16
14
12
tTCK
tTDI
tTMS
bnSRST
10
GND VDD
27
GND
74VHC244
19
OE
A1
A2
A3
A4
tTDO R8
tnSRST
27
27
27
1
3
5
7
9
11
13
15
17
19
tVCC
tVCC
A
2
4
6
8
10
12
14
16
18
20
GND
GND
GND
11 tnSRST
13
GND
15 tTDO
17
GND
20
R7
10K
bnSRST
tnSRST
R9
10K
Q1
BC547
tVCC
B
R11
10K
U3
C7 28
24
470n C8 1
2
BDBUS014
100n
27
28
29
30
A1
A2
A3
A4
SENSE
10
JTAG
GND
74VHC244
OE
U2B
RX2LED
TX2LED
26
45
9
18
25
34
GND
GND
GND
GND
GND
AGND
47
BCBUS3
BCBUS2
BCBUS1
BCBUS0
16
17
19
20
21
22
23
24
U2A
330
USB-D+ R4
ADBUS7
ADBUS6
ADBUS5
ADBUS4
ADBUS3
ADBUS2
ADBUS1
ADBUS0
10K
TRGT_P
4
5
R2
FT2232C
R19
GND
VCC
VCC
VCC
GND
tVCC
C1
100n
VCC
470
AVCC
U1
VCC
R1
14
31
C2
10uF
C3
100n
A
VCC
VCCIOA
VCCIOB
VCC
FB
3
42
VBUS
C1+
C1C2+
C2-
MAX3243EUI+ VCC
26 C9
VCC
27
V+
GND
GND
470n
9 TX
BDBUS413
10 DTR
BDBUS212
11 RTS
20
C
R13
10K
R14
2.2K
GND
5
4 RI
BDBUS518
5 DSR
BDBUS617
6 DCD
BDBUS116
7 RX
BDBUS315
8 CTS
RS-232
U4
1
6
3
2
BDBUS719
93LC46B VCC
8
VCC
CS
ORG
D
SCL
Q
DU
VCC
4
100n
7
GND
GND
C11
25
R_TX
J_RX
J_TX
C
DSR
RTS
CTS
RI
Header 5X2A GND
GND
GND
INVALID
FORCEON
FORCEOFF
V-
21
23
22
3
GND
VCC
GND
C12
470n
R_RX
100n
GND
Title
100n
GND
1
470
R18
470
R17
470
R16
470
D
4R|\/|-JT4G
Size
RX2LED
C16
100n
TX2LED
C15
100n
RX1LED
C14
TX1LED
R15
VCC
C17
GND
6
7
8
9
10
VCC
VCC
100n
1
2
3
4
5
C18
GND
D
DCD
RX
TX
DTR
Number
Revision
A4
Date:
File:
2
3
02
2008-05-13
Sheet of
D:\elektronika\..\4RM-U58-JT4G.SCHDOCDrawn By: Freddie Chopin
4
Report Generated From DXP
Designator
C1
C2
C3
C4
C5
C6
C7
C8
C9
C11
C12
C14
C15
C16
C17
C18
FB
JTAG
J_RX
J_TX
Q1
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
R16
R17
R18
R19
R20
RS-232
R_RX
R_TX
TRGT_P
U1
U2
PartType
Cap
Cap Pol1
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Cap
Inductor
Header 10X2
LED1
LED1
BC547
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Res2
Header 5X2A
LED1
LED1
LED1
FT2232C
74VHC244
kwiecieĔ 29, 2008 2:38:56 PM
Description
Capacitor
Polarized Capacitor (Radial)
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Capacitor
Inductor
Header, 10-Pin, Dual row
Typical RED GaAs LED
Typical RED GaAs LED
NPN General Purpose Amplifier
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Resistor
Header, 5-Pin, Dual row
Typical RED GaAs LED
Typical RED GaAs LED
Typical RED GaAs LED
FTDI FT2232C dual UASB UART / FIFO I.C.
Octal Bus Buffer
Footprint
CC2012-0805
Elektrolit 100
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CC2012-0805
CR2012-0805
HDR2X10
LED 100
LED 100
BCY-W3/E4
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
CR2012-0805
HDR2X5_CEN
LED 100
LED 100
LED 100
48 LD LQFP
751D-04
Value
100n
10uF
100n
100n
27p
27p
100n
470n
470n
100n
470n
100n
100n
100n
100n
100n
470
10K
27
1.5K
27
27
10K
27
10K
27
10K
27
10K
2.2K
470
470
470
470
330
470
Page 1 of 2
Designator
U3
U4
USB
USB_P
Y1
PartType
MAX3243EUI+
93LC46B
USB-A
LED1
6MHz
kwiecieĔ 29, 2008 2:38:56 PM
Description
Footprint
Value
±15kV ESD-Protected, 1µA, 3.0V/5.5V, 250kbps, RS-232 TransceiverTSSOP-28
with AutoShutdown
1Kb (x8/x16) Serial Microwire Bus EEPROM
SOP8
USB 1.1, Right Angle, Thru-Hole, Series A, Reverse Type, Receptacle,
440314
4 Position, Black
Typical RED GaAs LED
LED 100
Crystal Oscillator
kwarc
Page 2 of 2

Podobne dokumenty