Ponieważ chyba 99% STK200 jakie można znaleźć w sieci, posiada płytki drukowane zaprojektowane pod kątem montażu wtyku LPT, postanowiłem zaprojektować swoją płytkę. Prace rozpocząłem od narysowania schematu. Wzorowałem się na układzie ze strony www.lancOS.com. Układ sprzed kilku lat posiadał mały błąd, o którym później. Teraz można tam znaleźć poprawioną wersję opisaną jako betterSTK200.
Mój programator postanowiłem zmodernizować o diody LED: zasilania i wymiany danych. Schemat narysowany w darmowym KiCadzie wygląda tak:
Jak widać, układ jest dosyć prosty: kilkanaście rezystorów, kilka kondensatorów, układ 74HC244 i reszta drobnicy. Do złącza P1 należy doprowadzić sygnały z portu LPT, złącze P2 to 2 rzędy po 5 goldpinów do których sygnały zostały dołączone w standardzie KANDA, dzięki czemu programator jest kompatybilny z całą masą płytek prototypowych z mikrokontrolerami AVR na pokładzie.
Płytkę, podobnie jak schemat, zaprojektowałem w programie KiCad. Jej wymiary były podyktowane liczbą elementów, a nie konkretną obudową. Dzięki temu gniazdo LPT może być dołączone do płytki za pośrednictwem tasiemki czy nawet skrętki o długości 1 czy 2 metry. Można je też przykręcić do obudowy. Jest tu pełna dowolność. Poniższy rysunek pokazuje rozmieszczenie elementów i będzie bardzo pomocny przy montażu całości:
Jeśli ktoś chciałby wykonać płytkę samodzielnie, a nie za bardzo wie, jak się za to zabrać, polecam ten wpis: Jak zrobić płytki drukowane w domu.
Prace najlepiej rozpocząć od skompletowania elementów. Niezbędne będą:
R1-R6, R8-R11, R15, R16 – wartości od 330Ω do 1kΩ, dwa ostatnie decydują o jasności diod LED
R7 – 100Ω
R12-R14 – 100kΩ
C1 – 47μF/16V elektrolit
C2-C4 – 100pF ceramiczne
C5 – 100nF ceramiczny
D1 – 1N4148
D2, D3 – diody LED według uznania
U1 – 74HC244 + podstawka DIL20
P2 – wtyk goldpin 2×5 kątowy w obudowie
J1 – wtyk DB25 na kabel + ewentualna obudowa
Jakaś obudowa, w której zmieści się płytka, niezbędne kable do diod LED i wtyku DB25.
Ja przyciąłem nieco dłuższy laminat, by móc umieścić na nim otwory na śruby, którymi przykręciłem całość do obudowy, od strony P1.
Montaż najlepiej rozpocząć od zworki pod układem U1 (kolor czerwony na rysunku płytki), pod scalaka warto też dać podstawkę, kosztuje niewiele, a w razie uszkodzenia układu wymiana trwa chwilkę. Do montażu użyłem małych rezystorków 1/8 wata, jeśli masz większe, można je zamontować pionowo. Dwie diody LED przymocowałem do płytki za pośrednictwem kabelków – uwaga na polaryzację – ich prostokątne pola, to +, tak samo z kondensatorem C1. Diodę D1 należy zamontować w taki sposób, by jej czarny pasek znajdował się od strony krawędzi płytki. Podobnie układ U1 – jego klucz musi znaleźć się na “górze”.
Ja mój programator budowałem na raty, ponad 6 lat przeleżał on w takim stanie:
Wtyk LPT przylutowałem do pól złącza P1 za pośrednictwem kawałków skrętki komputerowej – pomocny będzie schemat. Pamiętać tu należy o połączeniu we wtyku pinów: 3 z 11 i 2 z 12. W posiadanej, starej obudowie, wyciąłem kawałki plastiku na złącze do programowania i LPT, a płytkę przykręciłem dwoma śrubami. W górnej części wywierciłem dwa otwory na oprawki diod LED. W programie Inkscape narysowałem coś na wzór panelu górnego, który zabezpieczyłem przezroczystą folią samoprzylepną, można też go zalaminować. Całość nakleiłem na obudowę za pomocą mocnej taśmy dwustronnie przylepnej 3M.
Złącze LPT przykręciłem do obudowy, ponieważ do komputera mam wpięty odpowiedni przedłużacz. Dobrym pomysłem może być przylutowanie wtyku DB25 z obudową do 2 metrowej skrętki, której drugi koniec należy wlutować do płytki. Wpinamy wtedy port równoległy z tyłu komputera, a programator mamy “pod ręką”.
Poprawnie zmontowany układ nie wymaga uruchomienia i działa od razu. Programator wymaga zasilania napięciem stabilizowanym o wartości +5V, które pobiera z programowanego układu za pośrednictwem 2 pinu złącza KANDA. Obecność tego napięcia jest sygnalizowana świeceniem diody LED D2.
Mój programator nie ruszył jednak od razu, a to za sprawą rezystora R7 – zastosowałem tam, zgodnie z posiadanym schematem opornik 1kΩ i taka wartość okazała się za duża, by wymusić stan niski na pinie 10 (ACK) portu LPT. Zmieniłem jego wartość na 100Ω i AVRDUDE odczytał sygnaturę Atmegi.
Do podłączenia programatora z płytką będzie potrzebny odcinek 10 żyłowej taśmy z gniazdami 2×5. Piny tych gniazd muszą być połączone ze sobą 1:1, czyli 1 pin do 1 pinu, 2 pin do 2 itp.
Do testów użyłem programu avrdude, który uruchamiałem na Linux Mint. Po upewnieniu się, że programator jest podłączony do komputera i płytki testowej z włączonym zasilaniem, w terminalu wydałem polecenie:
avrdude -c stk200 -p m8
Czyli poinformowałem program, że będzie odczytywał mikrokontroler atmega8 za pośrednictwem programatora stk200. W odpowiedzi avrdude zwrócił:
Podczas odczytu, na programatorze migała dioda LED D1, czyli wszystko OK. Jeśli jednak dostaniesz komunikat o braku dostępu do portu LPT, zapoznaj się z tym wpisem, lub dodaj się do grupy lp.
Spróbowałem też zaprogramować atmegę, by sprawdzić czy nie wystąpią jakieś błędy:
Avrdude odczytał sygnaturę, skasował pamięć flash, zapisał w niej program ze wskazanego pliku i zweryfikował czy zawartość mikrokontrolera jest taka sama jak pliku hex. Wynik pozytywny, więc wszystko działa jak należy :).
Jeśli programator będziemy chcieli użyć z płytką stykową, lub inną, gdzie nie ma złącza KANDA, przydatna może być poniższa rozpiska z pinami gniazda i ich znaczeniem:
Wszystkie niezbędne pliki ułatwiające samodzielne zmontowanie programatora STK200, możesz pobrać tutaj: dokumentacja_stk200.
Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…
Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…
Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…
W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…
Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…
Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…
Zobacz komentarze
świetna robota, choć większość pewnie powie po co to robić jak można kupić gotowca za grosze :)
krótkie pytanko: HC244 (będę musiał kupić) czy LS244 (mam)
są jakieś przeciwwskazania użycia LS'a?
pozdr
krzysztof
@~krzycho 74HC244 jest wykonany w technologii CMOS, a 74LS244 w TTL. Ten ostatni jest znacznie szybszy, ale ma większe wymagania jeśli chodzi o zasilanie (4,5V do 5,5V) oraz poziomy logiczne. Ogólnie 74LS244 powienien działać prawidłowo.