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.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Předchozí verze
cs:jtagft2232v [2013/11/20 22:06]
cs:jtagft2232v [2020/01/22 19:26] (aktuální)
kaklik [SPI programátor]
Řá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).