46_50.pdf

(431 KB) Pobierz
AVT Nixie Clock - VHDL i lampy, część 2
P R O J E K T Y
VHDL i lampy,
czêæ 2
No tak, Elektronika
Praktyczna wziê³a siê za
odgrzewanie kotletów,
pomyl¹ pewnie ci sporód
naszych Czytelników, którzy
pamiêtaj¹ polsk¹ elektronikê
z koñca lat 80. Akceleracja,
jakiej jestemy poddawani
przez ostatnich 12 lat -
chodzi g³ównie o dostêp do
nowoczesnych podzespo³ów -
spowodowa³a, ¿e jeszcze
niedawno traktowane
pogardliwie lampy Nixie
nabra³y wyj¹tkowego smaku.
Pomys³em na ich
zastosowanie dzielimy siê
z Wami w artykule.
Rekomendacje : projekt
z popularnego na Zachodzie
gatunku "Vintage Electronics",
czyli chwytaj¹ce za serce
(i zazwyczaj oko) praktyczne
starocie. O tyle dopasowany
do EP-owskiej doktryny
nad¹¿ania za nowociami, ¿e
ca³a czêæ cyfrowa zosta³a
opisana w VHDL-u.
Monta¿ zegara
P³ytka drukowana zegara jest
jednoczenie jego baz¹ mechanicz-
n¹, na której znajduj¹ siê wszyst-
kie elementy elektroniczne, prze-
³¹czniki, transformator, a tak¿e
lampy Nixie oraz pomocnicza p³yt-
ka drukowana, na której s¹ zamon-
towane dwie neonówki spe³niaj¹ce
rolê dwukropka. Ze wzglêdu na
du¿¹ rednicê szklanych baniek
lamp wymiary p³ytki s¹ doæ
znaczne (305 x 102 mm), ale jak
pokaza³a praktyka, wygoda wyni-
kaj¹ca ze zintegrowania wszyst-
kich elementów zegara na jednej
p³ytce rekompensuje doæ wysoki
koszt wykonania takiej p³ytki.
Schemat monta¿owy p³ytki
g³ównej pokazano na rys. 8 .
W urz¹dzeniu zastosowano dwa
uk³ady scalone przystosowane do
monta¿u powierzchniowego - U1
oraz stabilizator napiêcia 3,3 V -
U3. O ile monta¿ stabilizatora nie
sprawi ¿adnej trudnoci przeciêt-
nie wyposa¿onemu elektronikowi,
to do monta¿u uk³adu U1 jest
niezbêdna lutownica z cienkim
grotem oraz tama rozlutownicza
Wick. Mo¿na tak¿e podj¹æ próbê
zamontowania tego uk³adu w wys-
pecjalizowanej firmie zajmuj¹cej
siê monta¿em elementów SMD, ale
ze wzglêdu na trudn¹ dostêpnoæ
i wysok¹ cenê takiej us³ugi zachê-
cam do podjêcia próby samodziel-
nego przylutowania uk³adu.
Zaczynamy od posmarowania
spodniej czêci obudowy uk³adu
U1 odrobin¹ nieprzewodz¹cego
kleju (doskonale sprawdzi³ siê
butapren). Nastêpnie k³adziemy
uk³ad na miejscu dla niego prze-
znaczonym, zwracaj¹c oczywicie
uwagê na w³aciw¹ orientacjê
pierwszego wyprowadzenia uk³a-
du. Delikatnymi ruchami nale¿y
mo¿liwie dok³adnie umieciæ wy-
prowadzenia uk³adu na polach
lutowniczych, na co przez kilka
minut pozwala elastycznoæ kleju
zastosowanego do przymocowania
uk³adu. Teraz nale¿y odczekaæ co
najmniej godzinê, co spowoduje,
¿e klej przestanie byæ elastyczny,
a obudowa uk³adu trwale przymo-
cowana do p³ytki drukowanej.
W zale¿noci od rednicy grota
posiadanej lutownicy mo¿na za-
stosowaæ dwa sposoby lutowania
wyprowadzeñ:
- je¿eli grot jest gruby (rednica
koñca wiêksza ni¿ 1,2 mm)
najlepiej jest delikatnie przy-
grzewaæ i jednoczenie dociskaæ
46
Elektronika Praktyczna 3/2003
AVT Nixie Clock
32570440.019.png 32570440.020.png
AVT Nixie Clock
Rys. 9. Sposób wykonania podstawek do lamp
do pól lutowniczych
po kolei grupy po
kilka wyprowadzeñ
(ich liczba zale¿y od
rednicy/szerokoci
grota) - ale bez po-
dawania dodatkowe-
go topnika! Je¿eli
wyprowadzenia uk³a-
du zostan¹ dobrze
rozgrzane i dociniê-
te, cyna znajduj¹ca
siê na polach lutow-
niczych zwi¹¿e siê
z nimi zapewniaj¹c
dobre przewodzenie
pr¹du.
- je¿eli mamy do
dyspozycji chudy
grot i oczywicie
wprawn¹ rêkê mo¿na
podj¹æ ryzyko poda-
nia odrobiny dodat-
kowego topnika.
Zwiêkszy to prawdo-
podobieñstwo dok³ad-
nego i trwa³ego przy-
lutowania wyprowa-
dzeñ, ale grozi po-
wstaniem zwaræ po-
miêdzy s¹siednimi
wyprowadzeniami
uk³adu. Lekarstwem
na to jest miedziana
tama rozlutownicza
(np. Wick), za pomo-
c¹ której mo¿na od-
ci¹gn¹æ nadmiar cy-
ny, co w wiêkszoci
przypadków spowo-
duje usuniêcie zwaræ.
Kolejnym krokiem
monta¿owym jest
wlutowanie w p³ytkê
drukowan¹ gniazdek
ze sprê¿ystymi styka-
mi (FAS901), które
Rys. 10. Rozmieszczenie elementów
na p³ytce drukowanej dwukropka
spe³niaj¹ rolê podstawki dla lamp
Nixie. Poniewa¿ lampy s¹ monto-
wane od strony lutowania (czyli
przeciwnej ni¿ pozosta³e elemen-
ty), to gniazdka nale¿y wlutowaæ
otworami od strony lutowania,
jak to pokazano na rys. 9 . Ze
wzglêdów oszczêdnociowych
gniazdka nale¿y wlutowaæ wy³¹cz-
nie pod te wyprowadzenia lamp,
które s¹ wykorzystywane w aplika-
cji. Nie dotyczy to lampy L1 (s¹
na niej wywietlane dziesi¹tki go-
dzin), której zaledwie trzy wypro-
wadzenia s¹ wykorzystywane. Aby
zapewniæ jej odpowiedni¹ stabil-
noæ mechaniczn¹ nale¿y zwiêk-
szyæ liczbê gniazd, przy czym
sensowne minimum zapewnia ta-
kie ich rozmieszczenie, jak w przy-
padku lampy L3 (s¹ na niej
wywietlane dziesi¹tki minut).
Od strony lutowania monto-
wane jest tak¿e gniazdo J1, które
s³u¿y do zamontowania p³ytki
drukowanej z dwiema neonówka-
Rys. 8. Rozmieszczenie elementów na p³ytce
drukowanej (widok zmniejszony do 80%)
Rys. 11. Widok okna konfiguracji
programatora Uprog HS48 w trybie
JTAG
Elektronika Praktyczna 3/2003
47
32570440.021.png 32570440.022.png 32570440.001.png 32570440.002.png 32570440.003.png 32570440.004.png 32570440.005.png 32570440.006.png 32570440.007.png 32570440.008.png 32570440.009.png 32570440.010.png 32570440.011.png 32570440.012.png
AVT Nixie Clock
Rys. 12. Widok okna konfiguracji
programu iMPACT
O JTAG-u s³ów kilka
Typowe dla JTAG-a procesy, tzn. testowanie i programowanie
(konfigurowanie) uk³adów z interfejsem JTAG przebiegaj¹
w podobny sposób. Najwa¿niejsza ró¿nica pomiêdzy nimi
polega na wykorzystaniu podczas testowania rejestrów cie¿ki
krawêdziowej , a podczas programowania (konfigurowania)
rejestrów ISP . Twórcy interfejsu JTAG przewidzieli mo¿liwoæ
jednoczesnego programowania lub testowania wielu uk³adów.
W takim przypadku nale¿y je po³¹czyæ kaskadowo w ³añcuch
BST (cie¿ki krawêdziowej), jak to pokazano na poni¿ej.
Ka¿dy uk³ad z interfejsem zgodnym ze standardem JTAG musi
byæ wyposa¿ony w 1-bitowy rejestr obejciowy ( bypass ). To
w³anie dziêki temu rejestrowi istnieje mo¿liwoæ operowa-
nia na uk³adach dowolnie wybranych z ca³ego ³añcucha.
mi (LP1 i LP2, wkrêcone w op-
rawki), które spe³niaj¹ rolê dwu-
kropka sygnalizuj¹cego odmierza-
nie czasu. Schemat monta¿owy tej
p³ytki pokazano na rys. 10 .
Monta¿ pozosta³ych elementów
nie sprawi ¿adnych trudnoci Czy-
telnikom z choæby niewielkim do-
wiadczeniem, nie bêdziemy siê
wobec tego nim zajmowaæ.
Uruchomienie zegara
Uk³ad U1 jest wyposa¿ony
w pamiêæ konfiguracji typu Flash,
któr¹ mo¿na wielokrotnie repro-
gramowaæ w systemie za pomoc¹
wbudowanego w uk³ad interfejsu
JTAG. Korzystanie z niego bardzo
przypomina programowanie w sys-
temie mikrokontrolerów PIC lub
AVR, a do jego przeprowadzenia
jest potrzebny ma³o skomplikowa-
ny interfejs portu drukarkowego,
który opisalimy w EP4/2001.
Przeprowadzi³em tak¿e próby pro-
gramowania uk³adu U1 za pomoc¹
programatora uniwersalnego
UprogHS 48, który jest przysto-
sowany do programowania w sys-
temie uk³adów wyposa¿onych
w interfejs JTAG, co wymaga je-
dynie zastosowania 6-¿y³owego
kabla po³¹czeniowego, którego
koñcówki s¹ z jednej strony za-
ciskane w podstawce ZIF48 ( rys.
11 ). Poniewa¿ projekt dla uk³adu
U1 powsta³ w oparciu o bezp³atne
narzêdzie WebPack ISE, za pomo-
c¹ którego nie mo¿na wygenero-
waæ bezporednio pliku w forma-
cie JAM-STAPL/SVF (które to for-
maty akceptuje UprogHS 48), trze-
ba dokonaæ konwersji pliku wy-
nikowego w formacie JEDEC na
SVF lub JAM-STAPL. Do tego
celu s³u¿y program iMPACT ( rys.
12 ), który nale¿y prze³¹czyæ
w tryb pracy File Mode (w menu
opcja Mode ). Format pliku wyni-
kowego mo¿na wybraæ w menu:
Output>SVF File lub Out-
Styk fizyczny interfejsu JTAG sk³ada siê z zaledwie 4 lub
5 pojedynczych, jednokierunkowych linii sygna³owych. Ciê¿ar
realizacji algorytmów steruj¹cych wymian¹ informacji
w ³añcuchu JTAG jest roz³o¿ony pomiêdzy program steruj¹cy
prac¹ interfejsu oraz blok TAP wraz z elementami towarzysz¹-
cymi, w które wyposa¿ono uk³ady ISP. Dziêki temu typowe
programatory-konfiguratory uk³adów programowanych
w systemie zawieraj¹ zazwyczaj tylko bufory zabezpieczaj¹ce
przed uszkodzeniem wyjcia portu równoleg³ego komputera
(LPT). Niektórzy producenci oferuj¹ tak¿e konwertery RS232
<->JTAG oraz nowoczeniejsze konwertery USB<->JTAG,
których jedn¹ z zalet jest mo¿liwoæ pracy plug&play .
put>STAPL File - w naszym przy-
padku obydwa formaty s¹ równo-
wa¿ne.
Na fot. 13 pokazano ulokowa-
nie z³¹cza JTAG na p³ytce zegara.
Jak widaæ, wszystkie sygna³y z³¹-
cza J2 zosta³y wyranie opisane
na p³ytce, co u³atwia do³¹czenie
przewodów. Z lewej strony tego
z³¹cza widaæ tak¿e jumper ozna-
czony 12/24H, za pomoc¹ którego
mo¿na zmieniaæ tryb zliczania
czasu przez zegar.
Programowanie uk³adu U1 nie-
sie ze sob¹ pewne niebezpieczeñ-
stwo, poniewa¿ zegar nie jest
odizolowany galwanicznie od sie-
ci energetycznej. W przypadku
wiêkszoci klasycznych kompute-
rów PC, ich obudowy w przypad-
ku le wykonanej instalacji elek-
trycznej tak¿e mog¹ znaleæ siê na
potencjale sieci, co grozi pora¿e-
niem oraz uszkodzeniem zarówno
komputera, jak i elementów zasto-
sowanych w zegarze. Zagro¿enia
tego nie mo¿na bagatelizowaæ,
dlatego gor¹co zachêcam do za-
stosowania do zasilania zegara
(lub PC) transformatora bezpie-
czeñstwa 220 VAC/220 VAC, mo¿-
na pokusiæ siê tak¿e o zast¹pienie
go UPS-em, ewentualnie zamiast
komputera stacjonarnego mo¿na
zastosowaæ notebooka zasilanego
podczas programowania z wbudo-
wanej baterii.
Zaprogramowanie uk³adu U1
jest w zasadzie jedyn¹ czynnoci¹,
jak¹ trzeba wykonaæ podczas uru-
chamiania zegara. W zale¿noci
od parametrów zastosowanego
kwarcu X1 mo¿e okazaæ siê ko-
nieczne zmodyfikowanie pojem-
noci kondensatora C7 - czêstot-
liwoæ pracy generatora z tranzys-
torem T30 powinna byæ mo¿liwie
bliska 32,768 kHz.
48
Elektronika Praktyczna 3/2003
32570440.013.png 32570440.014.png
AVT Nixie Clock
List. 3. Opis po³¹czeñ pomiêdzy
elementami projektu w jêzyku VHDL
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity zegar is port (
jm: inout std_logic_vector(9 downto 0);
dzm: inout std_logic_vector(5 downto 0);
dzh: inout std_logic_vector(2 downto 1);
jh: inout std_logic_vector(9 downto 0);
ster_dk, szybko_wy, wolno_wy: out std_logic;
clk_ref, res, mode, clk_set, res_a,
set_a: in std_logic
K³opoty z generatorem
Wykona³em dwa egzemplarze
zegara, podczas uruchamiania któ-
rych okaza³o siê, ¿e generator
sygna³u wzorcowego jest bardzo
czu³y na parametry oscylatora
kwarcowego X1. Praktycznie
w obydwu przypadkach konieczne
by³o wyselekcjonowanie kwarcu,
który wzbudza³ generator. Aby
unikn¹æ problemów podczas uru-
chamiania powsta³ znacznie stabil-
niejszy generator, którego schemat
elektryczny pokazano na rys. 14 .
Jest to - jak widaæ - klasyczny
generator z niebuforowanym uk³a-
dem CMOS typu 4069. Sygna³
z wyjcia generatora jest buforowa-
ny przez inwerter U1B, a pozosta³e
inwertery nie s¹ wykorzystywane
i maj¹ wejcia zwarte do masy. Do
regulacji czêstotliwoci pracy ge-
neratora s³u¿y trymer C3.
Schemat monta¿owy generatora
oraz sposób zainstalowania na
p³ytce drukowanej (za pomoc¹
piêciu pojedynczych szpilek
gold-pin o d³ugoci 17 mm) po-
kazano na rys. 15 . W przypadku
zastosowania generatora z rys. 14
na p³ytce g³ównej nie montujemy
elementów: T30, R39, R40, R41,
X1, C7 i C9.
);
end zegar;
architecture behavioral of zegar is
component licznik_jm port (
clk: in std_logic;
clk_o: out std_logic;
res: in std_logic;
outp: inout std_logic_vector(9 downto 0)
);
end component licznik_jm;
component licznik_dzm port (
clk: in std_logic;
clk_o: out std_logic;
res: in std_logic;
outp: inout std_logic_vector(5 downto 0)
Fot. 13. Umieszczenie z³¹cza JTAG
na p³ytce zegara
przyk³ad modyfikacji opisu, co spo-
woduje zmianê sposobu sygnalizo-
wania prze³¹czenia zegara w tryb
ustawiania czasu.
W modelowych egzemplarzach
podczas normalnego zliczania cza-
su dwukropek miga z czêstotli-
woci¹ 1 Hz, natomiast po prze-
³¹czeniu w tryb ustawiania czasu
zaczyna³ migaæ z czêstotliwoci¹
4 Hz (zgodnie ze schematem blo-
kowym z rys. 6 - EP2/2003). Za
prze³¹czanie sygna³u steruj¹cego
dwukropkiem odpowiada multi-
plekser mux_dwukropka ( list. 3 ).
Zwróæmy uwagê na poni¿szy frag-
ment tego listingu:
mux_dwukropka: mux_2_1 port
map (
in0 => int_1Hz,
in1 => int_4Hz,
a => a,
out_mux => ster_dk
);
);
end component licznik_dzm;
component licznik_h port (
clk: in std_logic;
res, mode: in std_logic;
outp_j: inout std_logic_vector(9 downto 0);
outp_dz: inout std_logic_vector(2 downto 1)
);
end component licznik_h;
component mux_2_1 port (
in0, in1, a : in std_logic;
out_mux: out std_logic
);
end component mux_2_1;
component presk port (
szybko, wolno, wy_1_min, wy_1Hz,
wy_4Hz: out std_logic;
res, clk: in std_logic
);
end component presk;
signal a, d, clk_a, clk_min,
clk_min_set: std_logic;
signal clk_0, clk_1, int_1Hz, int_4Hz,
nie_clk_a: std_logic;
begin
licz_j_minut: licznik_jm port map (
clk => clk_min_set,
clk_o => clk_0,
res => res,
outp => jm
);
licz_d_minut: licznik_dzm port map (
clk => clk_0,
clk_o => clk_1,
res => res,
outp => dzm
Modyfikacje U1
Dzia³anie uk³adu U1 (serca
zegara) zosta³o opisane w jêzyku
VHDL (komplet róde³ opublikowa-
limy na CD-EP2/2003B). Dziêki
zastosowaniu niezwykle elastyczne-
go uk³adu PLD, którego dzia³anie
jest modelowane za pomoc¹ jêzyka
opisu sprzêtu, ka¿dy z Czytelników
mo¿e samodzielnie zmodyfikowaæ
jego dzia³anie lub zwiêkszyæ mo¿-
liwoci zegara. Poka¿ê teraz prosty
);
licz_h: licznik_h port map (
clk => clk_1,
res => res,
mode => mode,
outp_j => jh,
outp_dz => dzh
Wejciu in1 multilpeksera jest
przypisany sygna³ o nazwie
int_4Hz , pobierany z wyjcia
clk_4_Hz preskalera czêstotliwoci
wzorcowej. Proponujê zmieniæ
sposób sygnalizowania prze³¹cze-
);
mux_czasu: mux_2_1 port map (
in0 => clk_min,
in1 => clk_set,
a => a,
out_mux => clk_min_set
);
mux_dwukropka: mux_2_1 port map (
in0 => int_1Hz,
in1 => int_4Hz,
a => a,
out_mux => ster_dk
);
preskaler: presk port map (
szybko => szybko_wy,
wolno => wolno_wy,
wy_1_min => clk_min,
res => res,
clk => clk_ref,
wy_1Hz => int_1Hz,
wy_4Hz => int_4Hz
);
-- przerzutnik D adresujacy multipleksery
-- wybor trybu pracy: uwstawianie/czas
d_ff: process (clk_a, res)
begin
if res = 1 then
a <= 0;
elsif clk_a = 1 and clk_aevent then
a <= d;
end if;
d <= not a;
end process d_ff;
-- przerzutnik RS likwidujacy drgania stykow
clk_a <= 0 when res_a = 1 else
1 when set_a = 1 else
clk_a;
nie_clk_a <= 1 when res_a = 1 else
0 when set_a = 1 else
clk_a;
end behavioral;
Rys. 14. Schemat elektryczny zmodyfikowanego generatora wzorcowego
Elektronika Praktyczna 3/2003
49
32570440.015.png 32570440.016.png
AVT Nixie Clock
Rys. 15. Sposób monta¿u generatora wzorcowego
nia w tryb ustawiania - zamiast
szybkiego migania dwukropek bê-
dzie siê wieci³ na sta³e. Wymaga
to wprowadzenia jednej zmiany
w opisie sposobu przy³¹czenia
multipleksera mux_dwukropka , jak
to pokazano na listingu poni¿ej:
mux_dwukropka: mux_2_1 port
map (
in0 => int_1Hz,
in1 => '1',
-- ^Tu wprowadzono zmiane!
a => a,
out_mux => ster_dk
);
niach zasilaj¹cych specjalnego d³a-
wika odk³ócaj¹cego ( rys. 16 ), któ-
ry zosta³ wymontowany ze starego
zasilacza z PC. Cech¹ charakterys-
tyczn¹ tego d³awika jest to, ¿e ma
dwa uzwojenia nawiniête wspó³-
bie¿nie i symetrycznie na jednym
rdzeniu, co znakomicie likwiduje
zak³ócenia impulsowe. Alterna-
tywnym wyjciem mo¿e byæ za-
stosowanie gniazda sieciowego
z wbudowanym filtrem LC (do-
stêpne m.in. w Elfie i TME).
Piotr Zbysiñski, AVT
piotr.zbysinski@ep.com.pl
Ka¿da wprowadzona zmiana
wymaga oczywicie ponownego
skompilowania opisu i zaprogra-
mowania uk³adu U1.
W artykule wykorzystano zdjê-
cia i informacje pochodz¹ce ze
stron:
- http://www.webx.dk/oz2cpu/index.htm,
- http://www.arttec.net/art/Relevators.html,
- http://www.amug.org/~jthomas/iee-
enix.html,
- http://w1.871.telia.com/~u87127080/
ind/z560m.htm,
- http://www.mif.pg.gda.pl/homepages/
frank/sheets/084/z/Z560M.pdf.
Likwidacja zak³óceñ
Podczas eksploatacji zegara
w warunkach domowych wp³yw
zak³óceñ wystêpuj¹cych w sieci
energetycznej na jego dzia³anie by³
trudny do wychwycenia. Smutna
prawda objawi³a siê po przepro-
wadzeniu kilku prób w rodowis-
ku semi-przemys³owym, gdzie do
linii zasilaj¹cych s¹ do³¹czone sil-
niki du¿ej mocy, lampy sodowe
i wietlówki z zap³onnikami bime-
talicznymi, a tak¿e impulsowe re-
gulatory mocy. Zak³ócenia wystê-
puj¹ce w liniach zasilaj¹cych po-
wodowa³y, ¿e zegar doæ zmie-
nia³ swoje ustawienia, czêsto
uk³ad U1 zawiesza³ siê.
Okaza³o siê, ¿e doskona³ym
lekarstwem na problemy tego
typu by³o zastosowanie w li-
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostêpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/marzec03.htm oraz na p³ycie
CD-EP3/2003B w katalogu PCB .
Rys. 16. Sposób w³¹czeani
d³awika odk³ócaj¹cego w liniê
zasilania
50
Elektronika Praktyczna 3/2003
32570440.017.png 32570440.018.png
Zgłoś jeśli naruszono regulamin