
Witam serdecznie!
Pragnę zaprezentować dość proste ale bardzo użyteczne narzędzie jakim jest uniwersalny programator JTAG z dodatkowym interfejsem UART. Układ ten powstał w związku z przeniesieniem prac na FPGA serii Artix 7 z zestawów ewaluacyjnych na własne PCB co w oczywisty sposób wymaga posiadania niezależnego programatora JTAG, jednakże fabryczne rozwiązania potrafią być bardzo drogie, zwłaszcza w wersjach izolowanych - np. ISO-HS2 osiąga cenę dwustu dolarów. Oczywiście wyprodukowanie takiej przejściówki we własnym zakresie jest znacznie tańsze.

Dlaczego jednak stosować izolację galwaniczną? Są dwa powody. Po pierwsze, na urządzeniach do których programowania używam przejściówki często implementuję delikatne obwody analogowe, więc nadprogramowe połączenie galwaniczne z komputerem bardzo łatwo może wprowadzić silne zakłócenia fałszujące wyniki testów. Izolacja eliminuje ten problem nie wymagając ciągłego odłączania programatora przyśpieszając szybkie sprawdzanie poprawek w konfiguracji FPGA.
Po drugie, w układach prototypowych łatwo o wywołanie pętli masy, lub zwarcie sporego potencjału pochodzącego z połączeń programowanego układu z urządzeniami zewnętrznymi, potencjalnie prowadząc do rozległych uszkodzeń zarówno prototypu, jak i nawet komputera. Izolator w oczywisty sposób eliminuje takie ryzyko.
Przejściówka została oparta na układzie FT2232H i może być użyta z dowolnym oprogramowaniem wspierającym ten chip. Oznacza to że dzięki ożyciu np. OpenOCD można używaj jej do programowania niemal dowolnych układów posiadających port JTAG.
Również liczne "fabryczne" programatory oparte są na tym chipie, w przypadku gdy potrzebujemy takiego programatora możemy się pod niego "podszyć" poprzez wgranie odpowiedniej konfiguracji i uzyskać pełne wsparcie w środowisku producenta. Ze względu jednak na ogromną ilość możliwych konfiguracji nie będę jednak opisywał w jaki sposób to zrobić, jako że dokładna metoda będzie zależna od układu który chcemy programować. Należy również pamiętać, że takie podszywanie może naruszać licencję producenta programatora.
Dodatkowy port UART działa jako standardowy port COM i może być wykorzystywany do dowolnych zastosowań komunikacyjnych. Programator posiada również wyprowadzone wyjście zasilania 3.3V 400mA, nie jest ono jednak izolowane galwanicznie od komputera.
Zastosowane domyślnie izolatory (użyte, jako że miałem ich zapas) mogą działać jedynie z napięciem 3.3V, jednak zastąpienie ich układami ADUM151N0BRZ dodaje nam możliwość pracy z urządzaniem o poziomach logicznych od 1.8 do 5V znacznie zwiększając uniwersalność przejściówki. Zamienne izolatory posiadają taką samą obudowę i wyprowadzeni, zamiana jest więc bardzo łatwa.
Osobiście testowałem programator z FPGA Artix 7 oraz Spartan 6 - w obu przypadkach udało się nakłonić środowisko producenta do współpracy i bezproblemowo używać pełnej funkcjonalności.
Montaż PCB został wykonany całkowicie odręcznie, najmniejsze użyte elementy są w rozmiarze 0402. Załącznik zawiera schemat urządzenia.
Cool? Ranking DIY