0,0 → 1,650 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
<title> XVC_FT220X02A </title> |
<meta name="keywords" content="stavebnice MLAB univerzální moduly JTAG XVC Xilinx Virtual Cable XVC_FT220X01A FTDI USB"> |
<meta name="description" content="Xilinx Virtual Cable založený na obvodu FT220X, JTAG programování FPGA a CPLD přes USB"> |
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE --> |
<link rel="StyleSheet" href="../../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl"> |
<link rel="StyleSheet" href="../../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print"> |
<link rel="shortcut icon" type="image/x-icon" href="../../../../../../Web/PIC/MLAB.ico"> |
<script type="text/javascript" src="../../../../../../Web/JS/MLAB_Menu.js"></script> |
<!-- AUTOINCLUDE END --> |
</head> |
|
<body lang="cs"> |
|
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE --> |
<!-- ============== HLAVICKA ============== --> |
<div class="Header"> |
<script type="text/javascript"> |
<!-- |
SetRelativePath("../../../../../../"); |
DrawHeader(); |
// --> |
</script> |
<noscript> |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
</noscript> |
</div> |
<!-- AUTOINCLUDE END --> |
|
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE --> |
<!-- ============== MENU ============== --> |
<div class="Menu"> |
<script type="text/javascript"> |
<!-- |
SetRelativePath("../../../../../../"); |
DrawMenu(); |
// --> |
</script> |
<noscript> |
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p> |
</noscript> |
</div> |
<!-- AUTOINCLUDE END --> |
|
<!-- ============== TEXT ============== --> |
<div class="Text"> |
|
<p class="Title"> |
Xilinx Virtual Cable s USB obvodem FTDI FT220X |
</p> |
|
<p class=Autor> |
Milan Horkel |
</p> |
|
<p class="Subtitle"> |
Vývojové prostředí ISE pro práci s obvody programovatelné logiky |
(FPGA/CPLD) firmy XILINX přímo podporuje protokol XVC, kterým se |
přenáší JTAG příkazy prostřednictvím sítě TCP/IP. Na vzdáleném konci |
musí běžet příslušný obslužný program a k němu musí být připojen |
programovací kabel. Toto je modul programovacího kabelu s obvodem FTDI |
FT220X s USB rozhraním na jedné straně a JTAG konektorem na straně |
druhé. |
</p> |
|
<p class="Subtitle"> |
<img width="301" height="224" src="XVC_FT220X02A.cs_soubory/image001.jpg" |
alt="Vzhled modulu XVC_FT220X02A"> |
</p> |
|
<h1> Technické parametry </h1> |
|
<table> |
<tr> |
<th> Parametr </th> |
<th> Hodnota </th> |
<th> Poznámka </th> |
</tr> |
<tr> |
<td> Vstupní rozhraní </td> |
<td> USB 2.0 </td> |
<td> Standardní velký konektor typu B </td> |
</tr> |
<tr> |
<td> Výstupní rozhraní </td> |
<td> JTAG </td> |
<td> Obvyklý jednořadý hřebínek </td> |
</tr> |
<tr> |
<td> Napájení </td> |
<td> +5V do 100mA </td> |
<td> Z rozhraní USB, s pojistkou 0.75A </td> |
</tr> |
<tr> |
<td> Signalizační napětí </td> |
<td> +1.8 až +3.3V / +3.3V </td> |
<td> Z cílového systému / fixní z FTDI </td> |
</tr> |
<tr> |
<td> Síťový protokol / program </td> |
<td> XVC / mlab_xvcd.exe </td> |
<td> UDP, port 2542 / Windows aplikace </td> |
</tr> |
<tr> |
<td> Vývojové prostředí </td> |
<td> XILINX ISE – IMPACT<br> |
XILINX ISE – ChipScope </td> |
<td> Včetně volné verze WebPack,<br> |
ChipScope vyžaduje licenci </td> |
</tr> |
<tr> |
<td> Rozměry </td> |
<td> 40x30x18mm </td> |
<td> Výška nad základnou </td> |
</tr> |
</table> |
|
<h1> Popis konstrukce </h1> |
|
<h2> Úvodem </h2> |
|
<p> |
Pro práci s programovatelnými obvody FPGA a CPLD firmy XILINX je |
potřeba příslušné vybavení. Jednou z nezbytností je vhodný programovací |
kabel pro nahrávání konfigurace do cílové součástky. Jelikož LPT port |
se postupně stěhuje do muzea, jsou programovací kabely vyrobené jako |
klony známého Parallel Cable III zastaralé a je nutné nalézt nové |
řešení. |
</p> |
|
<p> |
Vývojové prostředí ISE přímo podporuje připojení programovacího kabelu |
prostřednictvím TCP/IP sítě a použitý protokol Xilinx Virtual Cable (ve |
zkratce XVC) je dokumentovaný. Díky tomu lze realizovat programovací |
kabel za použití některého vhodného standardního obvodu rozhraní a |
dopsat jen poměrně jednoduchý obslužný program. |
</p> |
|
<p> |
<img width="676" height="621" src="XVC_FT220X02A.cs_soubory/image002.png" |
alt="Schéma toku dat ve vývojovém cyklu"> |
</p> |
|
<p> |
Volba padla na obvod FTDI FT220X s rozhraním USB. Jedná se o nový (v |
roce 2012) obvod, jehož cena je překvapivě nízká (cca 40Kč). Obslužný |
program s obvodem FTDI komunikuje v režimu BitBang, tedy nevyužívá |
žádné speciální vlastnosti tohoto obvodu a může tak pracovat prakticky |
se všemi obvody FTDI (včetně populárního FT232R). |
</p> |
|
<p> |
Tato konstrukce představuje modul s USB rozhraním na jedné straně a |
JTAG konektorem na straně druhé. Konektor je zapojen dle zvyklostí |
XILINX programovacích kabelů. Modul podporuje signalizační napětí na |
JTAG rozhraní v rozmezí 1.8 až 3.3V a navíc obsahuje indikační diody. |
</p> |
|
<p> |
Obslužný program běží na počítači, ke kterému je připojen programovací |
kabel a návrhový program ISE (přesněji komponenta IMPACT, případně |
ChipScope Analyser) se s programem spojí prostřednictvím TCP/IP sítě. |
Vývojové prostředí může samozřejmě běžet jak na dálku (přes skutečnou |
síť), tak i na stejném počítači (síťuje se jen uvnitř počítače). |
Současná verze programu běží pod systémem Windows (WinXP až Win8, |
32/64bit), verze pro Linux se připravuje. |
</p> |
|
<p> |
Obslužný program má samostatnou dokumentaci a stránku, kde lze stáhnout |
přeložený binární soubor (ale i zdrojové texty). |
</p> |
|
<p> |
<a href="http://www.mlab.cz/PermaLink/XVC-SOFTWARE">http://www.mlab.cz/PermaLink/XVC-SOFTWARE</a> |
</p> |
|
<h2> Zapojení modulu </h2> |
|
<p> |
<img width="721" height="448" src="XVC_FT220X02A.cs_soubory/image003.png" |
alt="Elektrické zapojení modulu XVC_FT220X02A"> |
</p> |
|
<p> |
Obvod U1 FT220X je obvod rozhraní USB/SPI, ale ve skutečnosti se |
používá v BitBang režimu, kdy se jeho SPI specifické vlastnosti |
nepoužijí. V zapojení by mělo jít použít i další obvody řady FT200X, |
zapojení vývodů je stejné. |
</p> |
|
<p> |
Konektor J4 slouží pro napájení cílového zařízení z napětí +5V z USB |
rozhraní. Modul obsahuje samoopravnou pojistku 0.75A, nepřetěžujte |
napájení USB portu! |
</p> |
|
<p> |
Hřebínek J3 slouží pro přepínání napájecího napětí IO vývodů USB |
obvodu. Standardně se používá napětí poskytované cílovou platformou z |
JTAG konektoru J2.1. Toto napětí může ležet v rozmezí 1.8 až 3.3V. |
Dioda D4 slouží jako ochranná. |
</p> |
|
<p> |
Pokud cílová platforma neposkytuje napájecí napětí (někdy bývá značené |
jako VTG) na JTAG konektoru, lze použít napětí 3.3V z vnitřního |
stabilizátoru obvodu FTDI. <i>Pozor na to, že některé |
obvody FPGA nemusejí akceptovat 3.3V.</i> |
</p> |
|
<p> |
Dioda D1 indikuje přítomnost napájecího napětí cílové platformy. |
</p> |
|
<p> |
Dioda D2 indikuje aktivitu obslužného programu (spuštění programu a |
přenos dat). |
</p> |
|
<p> |
Dioda D3 indikuje zapojení do USB (věci fungují mnohem lépe, když jsou |
zapojené). |
</p> |
|
<p> |
Zbývající součástky jsou blokovací kondenzátory, obvody odrušení a |
ochranné odpory R3 až R6. |
</p> |
|
<h2> Mechanická konstrukce </h2> |
|
<p> |
Jedná se o standardní MLAB modul k přišroubování k základnové desce. |
</p> |
|
<h1> Osazení a oživení </h1> |
|
<h2> Osazení </h2> |
|
<p> |
Strana spojů obsahuje SMD součástky. Je vhodné připájet nejdříve C5 a |
L1 a pak obvod U1. Dioda D4 má anodu připojenou na zemní plochu. |
</p> |
|
<p> |
<img width="566" height="426" src="XVC_FT220X02A.cs_soubory/image004.png" |
alt="Osazení součástkami ze strany spojů"> |
</p> |
|
<p> |
Strana součástí obsahuje jen hřebínky, konektory a 3 diody LED. Anody |
LED diod jsou označeny písmenem A. Konektor J2 má 3 vývody odstraněné |
jako klíč. |
</p> |
|
<p> |
<img width="570" height="424" src="XVC_FT220X02A.cs_soubory/image005.png" |
alt="Osazení součástkami ze strany součástek"> |
</p> |
|
<table class="soupiska"> |
<tr> |
<th> Reference </th> |
<th> Hodnota </th> |
<th> Pouzdro </th> |
<th> </th> |
<th> Reference </th> |
<th> Hodnota </th> |
<th> Pouzdro </th> |
</tr> |
<tr> |
<th colspan="3"> Odpory </th> |
<td> </td> |
<th colspan="3"> Tranzistory </th> |
</tr> |
<tr> |
<td> R1, R2 </td> |
<td> 27 </td> |
<td> R0805 </td> |
<td> </td> |
<td> Q1, Q2 </td> |
<td> 2N7000SMD </td> |
<td> SOT23 </td> |
</tr> |
<tr> |
<td> R3, R4, R5, R6 </td> |
<td> 100 </td> |
<td> R0805 </td> |
<td> </td> |
<th colspan="3"> Integrované obvody </th> |
</tr> |
<tr> |
<td> R7, R8, R9 </td> |
<td> 330 </td> |
<td> R0805 </td> |
<td> </td> |
<td> U1 </td> |
<td> FT220XS </td> |
<td> SSO16_154 </td> |
</tr> |
<tr> |
<td> R10, R11 </td> |
<td> 10k </td> |
<td> R0805 </td> |
<td> </td> |
<th colspan="3"> Konektory </th> |
</tr> |
<tr> |
<th colspan="3"> Kondenzátory </th> |
<td> </td> |
<td> J1 </td> |
<td> USB_B_01 </td> |
<td> USB_B_01 </td> |
</tr> |
<tr> |
<td> C1, C2 </td> |
<td> 47pF </td> |
<td> C0805 </td> |
<td> </td> |
<td> J2 </td> |
<td> JUMP9_X3_X5_X8 </td> |
<td> JUMP9_X3_X5_X8 </td> |
</tr> |
<tr> |
<td> C3 </td> |
<td> 10nF </td> |
<td> C0805 </td> |
<td> </td> |
<td> J3 </td> |
<td> JUMP3 </td> |
<td> JUMP3 </td> |
</tr> |
<tr> |
<td> C4, C6, C7 </td> |
<td> 100nF </td> |
<td> C0805 </td> |
<td> </td> |
<td> J4 </td> |
<td> JUMP2X3 </td> |
<td> JUMP2X3 </td> |
</tr> |
<tr> |
<td> C5 </td> |
<td> 10uF </td> |
<td> C0805 </td> |
<td> </td> |
<th colspan="3"> Mechanické součásti </th> |
</tr> |
<tr> |
<th colspan="3"> Pojistky </th> |
<td> </td> |
<td> 1ks </td> |
<td> XVC_FT220X02A </td> |
<td> Plošný spoj </td> |
</tr> |
<tr> |
<td> F1 </td> |
<td> SR075-06_SMD0805 </td> |
<td> R0805 </td> |
<td> </td> |
<td> 4ks </td> |
<td> Screw M3x12 </td> |
<td> Šroub pozinkovaný </td> |
</tr> |
<tr> |
<th colspan="3"> Indukčnosti </th> |
<td> </td> |
<td> 4ks </td> |
<td> Washer M3 </td> |
<td> Podložka </td> |
</tr> |
<tr> |
<td> L1 </td> |
<td> MI0805K400R-10 </td> |
<td> R0805 </td> |
<td> </td> |
<td> 4ks </td> |
<td> Standoff M3x5 </td> |
<td> Distanční sloupek </td> |
</tr> |
<tr> |
<th colspan="3"> Diody </th> |
<td> </td> |
<td> 1ks </td> |
<td> JUMPER </td> |
<td> Propojka </td> |
</tr> |
<tr> |
<td> D1, D3 </td> |
<td> HCL-1505-4(RED) </td> |
<td> LED1206REV </td> |
<td> </td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<td> D2 </td> |
<td> HCL-1503-4(GREEN) </td> |
<td> LED1206REV </td> |
<td> </td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
<tr> |
<td> D4 </td> |
<td> BZV55-B3V6 </td> |
<td> MINIMELF </td> |
<td> </td> |
<td> </td> |
<td> </td> |
<td> </td> |
</tr> |
</table> |
|
<h2> Oživení </h2> |
|
<p> |
Po umytí desky a optické kontrole (zkraty, otočený U1) přistoupíme k |
oživení. Nejprve připojíme +5V na prostřední pin J4 a změříme napětí na |
J3.1 (mělo by být +3.3V). Dioda D3 (s nápisem USB) by měla svítit. |
</p> |
|
<p> |
Odpojíme zdroj a připojíme USB kabelem k počítači. Počítač by měl najít |
nový hardware a nainstalovat driver. Ovladač (typu D2XX) se najde na |
stránce výrobce čipu <a href= |
"http://www.ftdichip.com/Drivers/D2XX.htm">http://www.ftdichip.com/Drivers/D2XX.htm</a>. |
</p> |
|
<p> |
Dále je třeba nastavit správně konfiguraci obvodu FTDI tak, aby vývod |
CBUS3 fungoval jako obyčejná IO nožička. Když se to neudělá, nebude |
fungovat indikace LED D2 (indikuje aktivitu programu a přenos dat). To |
se dělá pomocným programem FT_Prog od FTDI. Program je zašitý na webu |
výrobce tak, aby ho laici nenašli <a href= |
"http://www.ftdichip.com/Support/Utilities.htm">http://www.ftdichip.com/Support/Utilities.htm</a>. |
</p> |
|
<p> |
Stažený ZIP archiv rozbalíme a můžeme spustit FT_Prog.exe a provést |
změnu nastavení ručně, případně můžeme použít připravenou konfiguraci |
ze souboru XVC_FT220X.xml. |
</p> |
|
<p> |
Na obrázku je zvýrazněné požadované nastavení vývodu CBUS3. |
</p> |
|
<p> |
<img width="641" height="406" src="XVC_FT220X02A.cs_soubory/image006.png" |
alt="Nastavení funkce vývodu C3 u obvodu FTDI"> |
</p> |
|
<p> |
Když už měníme konfiguraci je vhodné zadat smysluplné jméno do položky |
Product Description. Toto jméno pak bude vypisovat obslužný program a |
usnadní se tím výběr zařízení v případě, že je v systému více FTDI USB |
převodníků. Pro operační systém se zařízení bude i nadále tvářit jako |
USB Serial Converer (kdybychom změnili identifikaci zařízení, museli |
bychom do systému doplnit INF soubor tak, aby systém věděl, že se má |
pro zařízení použít FTDI driver). |
</p> |
|
<p> |
<img width="642" height="448" src="XVC_FT220X02A.cs_soubory/image007.png" |
alt="Nastavení USB identifikace obvodu FTDI"> |
</p> |
|
<p> |
Tím by mělo být nastavení dokončené a je možné spustit obslužný program |
mlab_xvcd.exe a pokud vše funguje správně, program vypíše spoustu |
informací a na konci slovo „Listen“ a je připraven k navázání síťového |
spojení ze strany vývojového prostředí. Dále postupujeme podle návodu k |
použití (abychom se zde neopakovali). |
</p> |
|
<h1> Software a návod k použití </h1> |
|
<h2> Instalace programu a první spuštění </h2> |
|
<p> |
Program pro obsluhu XVC_FT220X se jmenuje mlab_xvcd.exe a je k |
dispozici na adrese |
<a href="http://www.mlab.cz/PermaLink/XVC-SOFTWARE/XVC-1x/BIN">http://www.mlab.cz/PermaLink/XVC-SOFTWARE/XVC-1x/BIN</a>. |
Program se neinstaluje (je slinkovaný jako jediný exe soubor), ale |
potřebuje aby na počítači byly nainstalované drivery FTDI, které jsou |
ke stažení na stránce výrobce |
<a href="http://www.ftdichip.com/Drivers/D2XX.htm">http://www.ftdichip.com/Drivers/D2XX.htm</a>. |
</p> |
|
<p> |
Program při prvním spuštění potřebuje povolit ve firewallu Windows |
síťovou komunikaci (ve Win7 si o to systém sám řekne, ve starších |
verzích Windows je třeba spustit konfiguraci systému firewall ručně a |
povolit programu síťování). Připomínám, že nastavení je třeba |
zopakovat, když program přesunete do jiného adresáře, nebo |
přejmenujete, protože nastavení platí pro konkrétní program na |
konkrétním místě v systému. |
</p> |
|
<h2> Spuštění mlab_xvcd.exe </h2> |
|
<p> |
Program po spuštění vypíše informace a nalezené obvody FTDI a spojí se |
se zadaným zařízením, a když není zadáno tak s prvním nalezeným. Na |
příkazové řádce lze zadat spojení podle názvu, sériového čísla, |
umístění na USB sběrnici nebo podle pořadí nalezených obvodů FTDI. |
</p> |
|
<p> |
<samp class="Block"> |
D:\...\BIN>mlab_xvcd.exe |
|
Xilinx Virtual Cable Network Server |
=================================== |
(c) miho 2012 v 1.03 |
|
FTDI Connect |
Library Version 0x30207 |
Devices Found 1 |
JTAG Port Pins TCK->DBUS0(TXD) |
TDI->DBUS1(RXD) |
TDO->DBUS2(RTS) |
TMS->DBUS3(CTS) |
LED->CBUS3+DBUS7(RI) |
|
Device 0 |
Description "XVC_FT220X" |
SerialNumber "DAVY7XCB" |
Location 0x111 |
|
Selected Device |
Description "XVC_FT220X" |
SerialNumber "DAVY7XCB" |
Device Driver Ver 0x20824 |
Baud Rate 1000000 |
USB Latency 1 |
|
Starting Network Server |
Host Name mihomsi |
Network Name mihomsi |
Host Address 192.168.22.14 |
Bound Socket 2542 |
Set in IMPACT xilinx_xvc host=mihomsi:2542 disableversioncheck=true |
|
Listen |
</samp> |
</p> |
|
<p> |
Je-li na konci výpisu slovo Listen, je program připraven k navázání |
spojení ze strany vývojového systému. Současně se rozsvítí LED indikace |
aktivity (na plošném spoji označená ACT). |
</p> |
|
<h2> Spuštění a nastavení programu IMPACT </h2> |
|
<p> |
Nyní je třeba ve vývojovém prostředí spustit program IMPACT a v něm |
nastavit plugin pro XVC protokol. Abychom si nemuseli pamatovat jaké |
parametry se zadávají, program mlab_xvcd.exe vypisuje přesně to, co je |
třeba do programu IMPACT zadat. Lze použít klipboard, ale pozor aby na |
začátku nebyla mezera (není vidět, ale plugin se nenajde a nespustí). |
Nastavení je v položce Output / Cable Setup. |
</p> |
|
<p> |
<img width="397" height="440" src="XVC_FT220X02A.cs_soubory/image008.png" |
alt="Nastavení XVC kabelu v programu iMPACT"> |
</p> |
|
<p> |
Po odklepnutí dojde k navázání spojení a program mlab_xvcd.exe začne |
vypisovat tečky (program IMPACT každou sekundu pošle data po síti i |
když nemá co na práci). Současně zhasne indikační LED a jen poblikává |
při zpracování dat. |
</p> |
|
<p> |
<samp class="Block"> |
Listen |
Accepted 192.168.22.14:63280 |
Handle Data ......................................... |
......... |
</samp> |
</p> |
|
<p> |
Nyní lze nahrát do obvodu FPGA konfiguraci, což bylo cílem našeho |
snažení. |
</p> |
|
<p> |
<img width="834" height="432" src="XVC_FT220X02A.cs_soubory/image009.png" |
alt="Funkční program iMPACT"> |
</p> |
|
<h2> XVC a ChipScope </h2> |
|
<p> |
Použití XVC kabelu není omezeno jen na nahrávání obvodů FPGA, ale lze |
jej použít i ve spojení s IP jádrem ChipScope (licencované) a zabudovat |
si tak do obvodu FPGA velmi šikovný logický analyzátor. Tomuto tématu |
se věnuje samostatný článek na adrese |
<a href="http://www.mlab.cz/PermaLink/XVC-ChipScope">http://www.mlab.cz/PermaLink/XVC-ChipScope</a>. |
</p> |
|
<h2> Omezení </h2> |
|
<p> |
Řešení má i svá omezení. Zatím se mi nepodařilo rozchodit programování |
pamětí SPI připojených k obvodu FPGA ani vnitřní SPI paměti obvodů |
Spartan3AN. Tato funkce totiž nahrává obsah paměti tak, že nejdříve do |
obvodu FPGA nahraje pomocný obsah (což se povede) a pak pomocí tohoto |
pomocného zapojení získá přístup k pinům, ke kterým je připojena |
(vnější nebo vnitřní) sériová FLASH paměť. To už se bohužel nepovede. |
Zatím nevím proč. |
</p> |
|
<p> |
Pro nahrávání SPI pamětí tedy i nadále používám LPT port s paralelním |
kabelem (na některých počítačích to taky občas nefunguje), nebo XILINX |
USB kabel (když si ho nezapomenu vypůjčit). |
</p> |
|
</div> |
|
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE --> |
<!-- ============== PATIČKA ============== --> |
<div class="Footer"> |
<script type="text/javascript"> |
<!-- |
SetRelativePath("../../../../../../"); |
DrawFooter(); |
// --> |
</script> |
<noscript> |
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p> |
</noscript> |
</div> |
<!-- AUTOINCLUDE END --> |
|
</body> |
</html> |