Obsah
J-tag programátor JTAGFT2232V02A
Dokumentace k modulu E-shop UST
Jedná se o J-TAG programátor vhodný pro programování procesorů ARM osazených v modulu STM32F10xRxT01A. Tento modul programátoru je softwarově i hardwarově kompatibilní se známou konstrukcí BusBlaster V4.
Konstrukce modulu
Modul obsahuje USB interface s čipem FTDI a FPGA Xilinx. FTDI čip je připojován k hradlovému poli přes spínače HC4066. A hradlové pole proto může pracovat samostatně a nebo v kombinaci s FTDI čipem. Interni komunikacni signaly jsou 3.3 V proto, protože spicac HC4066 nepracuje spolehlive se signaly mensimi, nez 2 V.
Oživení modulu
Protože modul komunikuje s programovanou periferií přes hradlové pole, tak je potřeba hradlové pole nejdříve naplnit schématem. To lze udělat programem xc3sprog. Tento program zatím nemá .deb balíček. Proto je potřeba jej zkompilovat a nainstalovat klasickým postupem:
svn co https://xc3sprog.svn.sourceforge.net/svnroot/xc3sprog/trunk xc3sprog cd xc3sprog cmake . make make package
Chybu o nedostupnosti programu RPM package requires rpmbuild executable můžeme ignorovat, protože RPM balíček v Ubuntu nepotřěbujeme. Měl by ale vzniknout deb balíček xc3sprog-0.0-svn752.x86_64.deb. Který můžeme již nainstalovat standardním instalačním procesem.
Pro nahrání schéma je potřeba mín na madolu JTAGFT2232V02A Jumper MODE v poloze JTAG, která umožňuje JTAG spojení s interním CPLD. Pomocí příkazu pak již do modulu nahrajeme schéma:
sudo xc3sprog -c bbv2_2 jtagkey.bit
Bitfile od schéma je v dokumentační složce svnMLAB/Modules/CommSerial/JTAGFT2232V02A/HDL/JTAGkey.
Využití modulu
Modul může být díky svojí univerzální konstrukci, kdy je jeho funkce dána obsahem CPLD využit pro různé účely.
SPI programátor
Modul může být použit k naprogramování schéma do SPI flash paměti.
J-tag programátor
ARM
Procesory ARM lze přes tento modul programovat pomocí programu OpenOCD. Podrobnosti najdete na stránce o programování procesorů ARM.
OpenOCD má v Ubuntu sice dostupné balíčky, ale jejich verze je zatím značně opožděna za současným vývojem. Proto je lepší si zkompilovat aktuální verzi. To provedeme následujícím postupem:
sudo apt-get install libtool git gcc automake libftdi-dev texinfo git clone git://git.code.sf.net/p/openocd/code openocd-code cd openocd-code/ ./bootstrap ./configure --enable-maintainer-mode --disable-werror --enable-ft2232_libftdi make sudo make install
Tím máme v systému naistalováno OpenOCD. Pokud jej budeme chtít odinstalovat, použije se příkaz
sudo make uninstall
Pokud máme k počítači připojený modul JTAGFT2232V02A s nahraným schématem v FPGA, tak se můžeme připojit k nějakému ARMu.
sudo openocd -f "interface/busblaster.cfg" -f "target/stm32f1x.cfg" Open On-Chip Debugger 0.7.0-rc1-dev-00011-gd9ba56c (2013-04-28-11:46) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxygen/bugs.html Info : only one transport option; autoselect 'jtag' adapter speed: 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 cortex_m3 reset_config sysresetreq Info : max TCK change to: 30000 kHz Info : clock speed 1000 kHz Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) Info : JTAG tap: stm32f1x.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1) Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
OpenOCD teď vytvořilo server ke kterému se můžeme přípojit přes telnet
telnet localhost 4444 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Open On-Chip Debugger >
FPGA hradlová pole
Modul může být dále využit k programování hradlových polí. Tedy například i vývojové desky S3AN01A. Výhodou tohoto programátoru oproti řešení Xilinx Virtual Cable s obvodem FTDI FT220X je že takto lze schéma nahrát i do interní FLASH paměti, takže v FPGA zůstane i po vypnutí napájení.
K tomu co je k JTAG modulu připojeno se dostaneme příkazem:
xc3sprog -c bbv2
Vývojová deska FPGA
Hradlové pole v modulu lze využívat i samostatně v aplikacích, kde je jeho rychlost a rozměr dostačující. Modul tak může být v některých případech použit, jako USB interfaece mezi PC a aplikací.
JTAGFT2232V01A
Je již zastaralá verze modulu, která není nadále podporována.
TODO
Seznam změn: přidat tranzistor na (NRST nebo JNTRST - musím zjistit, nemám u sebe zdrojáky) odebrat piníky J9 , J5 ,J6, J7, J13 - jsou nepotřebné a zabírají místo přidat pojistku na USB přidat sériové odpory 22Ohm na JTCK ,JTDI, JTDO, JTMS dodělat nap. translátor? (budeme zatím programovat jen 3,3V aplikace?)
Napsal MIJA
Chtěl jsem udělat JTAG i s napěťovým translátorem ( 1,8 - 3,3 V), proto jsou tam ty tranzistory na reset. Nemusí se řešit napěťová úroveň. Pro datové signály jsem pořídil od TI sn74avc4t774 na převod úrovně.
Toto byla první verze, kde jsem chtěl otestovat samotnou funkčnost JTAG. Verze po úpravě ve zdrojáku v OPENOCD fungovala, a mezi tím KAHO přišel na ST-link, který umí pohodlněji naprogramovat STM32Fxxx. Já už se na úpravu nedostal.
Pokud bys chtěl FTDI 2232D tak mám ještě dvě (ať mi tu neleží). FTDI dodává už FT2232H, který komunikuje s USB přes High-speed. Bohužel je jiné pouzdro. Určitě dokáže rychleji naprogramovat, ale po prostudování STM je rychlost JTAG omezena a na to stačí FTDI2232D (full-speed).