Uživatelské nástroje

Nástroje pro tento web


cs:jtagft2232v

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


Předchozí verze
cs:jtagft2232v [2020/01/22 18:26] (aktuální) – [SPI programátor] kaklik
Řádek 1: Řádek 1:
 +====== J-tag programátor JTAGFT2232V02A ======
 +
 +[[http://www.mlab.cz/Modules/CommSerial/JTAGFT2232V02A/DOC/JTAGFT2232V02A.cs.pdf|Dokumentace k modulu]]
 +[[http://www.ust.cz/shop/product_info.php?products_id=236&osCsid=knud68e99fjvmuruh74pk48hj3|E-shop UST]]
 +
 +Jedná se o J-TAG programátor vhodný pro programování procesorů ARM osazených v modulu [[cs:stm32f10xrxt|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 [[http://xc3sprog.sourceforge.net/guide.php|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 [[cs:arm_programming#j-tag|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 [[cs:jtagft2232v|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 [[cs:s3an|S3AN01A]]. Výhodou tohoto programátoru oproti řešení [[cs:xvc_ft220x|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).