Uniwersalny programator ISP
Rys. 4. Przypisanie sygnałów wyprowadzeniom JP2 w trybie pracy JTAG
Rys. 5. Przypisanie sygnałów wyprowadzeniom JP2 w trybie pracy ByteBlaster MV (Altera PassiveSerial)
Na rys. 4 pokazano przypisanie sygnałów wyprowadzeniom JP2 w trybie pracy JTAG, na rys. 5 w trybie konfiguratora układów FPGA firmy Altera (Passive Serial), na rys. 6 w trybie konfiguratora układów FPGA firmy Xilinx, a na rys. 7 w trybie programatora układów z interfejsem ispLattice.
Rys. 6. Przypisanie sygnałów wyprowadzeniom JP2 w trybie pracy DCL5 (Xilinx)
Rys. 7. Przypisanie sygnałów wyprowadzeniom JP2 w trybie pracy ispLattice
Przed rozpoczęciem korzystania z programatora należy zaprogramować układ U2, do czego służy złącze JP1. Jego styki dołączono do wyprowadzeń interfejsu JTAG układu U2. Funkcje styków JP1 opisano na płytce drukowanej, co ułatwia programowanie układu. Do zaprogramowania U2 potrzebny będzie dowolny programator przystosowany do programowania (w systemie) układów XC9536XL. Egzemplarz modelowy programowano za pomocą programatora ZL4PRG.
Rys. 8. Schemat montażowy płytki programatora
Rozmieszczenie elementów na płytce drukowanej programatora pokazano na rys. 8. Montaż należy rozpocząć od przylutowania układu U2. Doskonale sprawdził się najprostszy sposób: po precyzyjnym ułożeniu układu na punktach lutowniczych (trzeba sprawdzić położenie wyprowadzenia numer 1!), jedno ze skrajnych wyprowadzeń przygrzewamy grotem lutownicy do cyny znajdującej się na powierzchni punktu. Następnie w ten sam sposób przygrzewamy wyprowadzenie znajdujące się po przekątnej. Pozostałe wyprowadzenia tak przymocowanego do płytki układu lutujemy, korzystając ze spoiwa o średnicy 0,38 mm lub zbliżonej. Po przylutowaniu układu U2 z powierzchni płytki warto usunąć resztki topnika za pomocą któregoś z dostępnych środków chemicznych (np. KONTAKT PCC), co znacznie podnosi estetykę urządzenia.
Rys. 9. Mozaika ścieżek płytki programatora
Kolejność montażu pozostałych elementów jest obojętna, nie jest tutaj także wymagana szczególna precyzja. W zależności od zastosowanej obudowy można zastosować różne rodzaje złącza JP2 (z obudową, z zatrzaskiem, „gołe” szpilki złocone itp.). Nastawniki JP3 i JP4 można zastąpić dowolnymi innymi przełącznikami dwupozycyjnymi.
Prezentowany programator współpracuje z oryginalnym oprogramowaniem, udostępnianym bezpłatnie przez firmy produkujące układy PLD oraz dostępnym bezpłatnie na kilku niezależnych portalach internetowych (dotyczy to programowania mikrokontrolerów AVR). Podłączenie programatora do komputera wymaga zastosowania kabla BD25M/DB25M (jego zalecana długość wynosi nie więcej niż 1 metr), natomiast połączenie z programowanym układem wymaga zastosowania płaskiego kabla taśmowego zakończonego z dwóch wtyczkami ZWS10. Długość tego kabla także nie powinna przekraczać 1 metra, co wynika z dość wysokiej częstotliwości sygnału zegarowego synchronizującego transfer danych.
Pracę z programatorem należy rozpocząć od ustalenia za pomocą JP3 i JP4 rodzaju emulowanego interfejsu. W zależności od typu programowanych układów należy zastosować odpowiednie oprogramowanie:
- układy PLD firmy Altera można programować za pomocą programu Quartus II lub Quartus II Programmer, programator powinien pracować w trybie ByteBlaster MV,
- układy CPLD firmy Atmel można programować za pomocą programu AtmelISP, przy czym programator powinien acować w trybie ByteBlaster MV (w menu Cable Types należy wybrać ByteBlaster MV),
- układy PLD, ispPAC i ispGDX firmy Lattice można programować za pomocą programu ispVM System, programator należy skonfigurować do pracy w trybie ispDOWNLOAD/Lattice Cable,
- układy PLD firmy Xilinx można programować korzystając z programu Impact obsługującego programator, wbudowanego w system projektowy WebPack ISE (programator musi być skonfigurowany jako DLC5),
- mikrokontrolery AVR można programować za pomocą programu IC-PROG lub innego obsługującego interfejsy STK200.
Kolejnym krokiem jest podłączenie programatora do urządzenia, w którym znajduje się programowany układ. Urządzenie powinno być mieć włączone zasilanie, a do złącza służącego do dołączenia programatora powinno być dostarczone stabilizowane napięcie +5 V (pobór prądu przez programator nie przekracza 40 mA).
W zależności od konfiguracji programowanych układów (pojedynczy, łańcuch JTAG itp.) należy odpowiednio skonfigurować oprogramowanie sterujące, załadować plik/pliki JED/SVF/POF/HEX/SOF/BIN (w zależności od programowanego układu) i rozpocząć programowanie.
Wykaz elementów
Rezystory | |
R1, R2, R18, R19, R20, R21, R22 |
22? |
R3, R11, R12, R13, R14, R15, R16, R17 |
10k? |
R4, R5, R6, R7, R8, R9, R10, R23, R24 |
100k? |
R25 | 2,2k? |
R26, R27 | 1k? |
R28 | 1,2k? |
Kondensatory | |
C1, C2, C8, C9 | 100nF |
C3, C4, C5, C6, C7 | 10pF |
C10 | 2,2µF/16V |
Półprzewodniki | |
U1 | LP2950-33 |
U2 |
XC9536XL-10VQ44C (zaprogramowany) |
D1, D2, D3, D4, D5 | diody LED prostokątne |
Inne | |
J1 | DB25F do druku |
JP2 | ZWS10-G |
JP1 | gold-pin 6×1 |
JP3, JP4 | 2 gold-piny 3×1 + jumpery |