Autor: afterparty
Redakcja i uwagi: Dondu
Wszystko zaczęło się pewnego popołudnia, kiedy bawiłem się świeżo kupioną Atmega8. Pomigałem trochę diodami na płytce prototypowej, ale nie miało to dłuższego sensu, a więc pomyślałem, że spróbuję wyświetlić parę cyferek na wyświetlaczu 7-segmentowym.
Szybko okazało się, że na płytce stykowej podłączenie takowych wyświetlaczy jest jak dla mnie dosyć uciążliwe. I w ten sposób, w mojej głowie zrodził się pomysł na przedstawianą płytkę testową.
Wiedziałem, że takie płytki istnieją i można je kupić, ale postanowiłem zrobić ją sam.
A dlaczego? W ten sposób mogę umieścić na niej co mi jest potrzebne, nie jestem ograniczony do tego co narzuca producent, na pewno koszty wykonania będą mniejsze, można się sporo nauczyć, no i daje to niesamowitą satysfakcję. :-)
Założenia
Założenia były proste:
1. Płytka musi być możliwa do wykonania w warunkach domowych metodą termotransferu na jednostronnym laminacie.
2.Na płytce miały się znaleźć:
- mikrokontroler Atmega8 (wybrałem go gdyż jest tani oraz popularny),
- złącze 10PIN w standardzie KANDA,
- 4 tact switche,
- 4 diody led,
- 4 wyświetlacze 7 segmentowe,
- buzzer z generatorem,
- miejsce (podstawka 20 pin) na inne układy,
- regulator napięcia 5V,
- kwarc 12MHz,
- przekaźnik.
Po drodze projekt trochę się rozrósł i dodane zostały:
- drugi regulator napięcia (3.3V),
- port RS-232 do komunikacji z komputerem.
Schemat
Kiedy zdecydowałem już co ma znaleźć się na płytce, nadszedł czas na narysowanie schematu. Do tego celu użyłem popularnego programu EAGLE, a schemat realizowałem według tych wskazówek.
Po kilku godzinach miałem już kompletny schemat, który umieściłem na forum popularnej strony Elektroda.pl tutaj. Dzięki radom tamtejszych użytkowników, mogłem poprawić wytyczone błędy, i dodać zupełnie inne rzeczy, o których nie myślałem. Tak przedstawia się końcowa wersja schematu:
Do pobrania:
Kiedy schemat był już gotowy, trzeba było zaprojektować płytkę drukowaną. Nie było to zadanie łatwe, ale kolejny raz dzięki użytkownikom Elektrody (tym razem w dziale dla PCB) mogłem poprawić swoje błędy. Ostatecznie PCB przybrało taką formę:
Do pobrania: Pliki PDF do druku i wykonania PCB
Opis wykonania przeze mnie tej płytki PCB znajdziesz tutaj: PCB: Metoda termotransferu
Gotowa płytka
Po złożeniu płytka prezentuje się tak:
Opis płytki
Elementy na schemacie i płytce ułożyłem modułami, by łatwiej było się zorientować, ponieważ nie zależało mi na minimalizacji płytki.
Mikrokontroler
Najważniejszym elementem jest oczywiście mikrokontroler Atmega8. Wybrałem go, gdyż jest tani, popularny, w sieci można znaleźć wiele przykładów kodu dla tego układu. Płytka jest również zgodna z nowszymi odmianami Atmegi8 – Atmega48, ATmega88, ATmega168 i ATmega328, zarówno w wersjach standardowych oraz A i L.
Datasheet'y:
- ATmega8/8L
- ATmega8A
- ATmega48/88/168
- ATmega48A/48PA/88A/88PA/168A/168PA/328/328P (35MB, bez możliwości podglądu online)
Inne noty:
Płytka przygotowana jest dla napięć pracy 3,3V oraz 5V. Wszystkie wyżej wymienione mikrokontrolery działają z napięciem 5V.
Nie wszystkie jednak działają z napięciem 3,3V - przed zakupem sprawdź w datasheet.
Zwróć uwagę także na to, że maksymalna prędkość taktowania może zależeć od napięcia zasilania.
Nie wszystkie jednak działają z napięciem 3,3V - przed zakupem sprawdź w datasheet.
Zwróć uwagę także na to, że maksymalna prędkość taktowania może zależeć od napięcia zasilania.
Zastosowane zostały obowiązkowe kondensatory oraz dławik filtrujące zasilanie. Wszystkie porty mikrokontrolera są wyprowadzone na złączach typu goldpin. Możliwe jest podłączenie zewnętrznego źródła napięcia odniesienia dla przetwornika ADC po wcześniejszym odłączeniu zworki oznaczonej JP4, gdyż pin AREF też został wyprowadzony.
RESET
Moduł RESET'u wykonałem maksymalnie zgodnie z notą Atmela AVR042 opisaną w tym artykule. Dodałem także jumper JP1, którym można rozłączyć kondensator, w przypadku gdyby przeszkadzał w programowaniu.
Kwarc
Zastosowany kwarc 12MHz taktuje układ na płytce. W swoim egzemplarzu wlutowałem go na stałe, ale oczywiście można zastosować jednorzędową podstawkę, tak aby kwarc można było dowolnie zmieniać. Możliwe jest też jego odłączenie za pomocą zworek JP2 oraz JP3, i wykorzystanie pinów portu B: 6 i 7, które również są wyprowadzone na goldpinach.
Złącze programatora ISP
Złącze 10 pin w standardzie KANDA umożliwia zaprogramowanie poprzez ISP mikrokontrolera na płytce. Do tego potrzebny będzie dowolny programator obsługujący ten standard, na przykład STK200 podłączany pod port drukarkowy, bądź USBASP, który można wykorzystać z nowszymi komputerami.
Zworka JP5 obok tego złącza pozwala na odłączenie zasilania, kiedy posiadamy programator mogący zasilić programowany układ. W przypadku problemów, należy odłączyć zworkę JP1 (patrz moduł RESET'u), która odłącza kondensator C1 mogący utrudniać programowanie.
Zasilanie 5V lub 3,3V
Sekcja zasilania składa się z dwóch stabilizatorów w obudowach TO220 - ja umieściłem je w radiatorach, wraz z kondensatorami wymaganymi do ich pracy.
Oprócz głównego włącznika zasilania, na płytce znajduje się przełącznik pozwalający na zmianę napięcia docierającego do urządzeń na płytce. Obok włącznika znajdują się dwie diody sygnalizujące tryb pracy – 5V bądź 3.3V. Dzięki temu można wykorzystać elementy pracujące z napięciem 3.3V takie jak na przykład karty pamięci SD.
Zasilanie można podłączyć poprzez standardowe złącze zasilacza 5.5x2.1mm, bądź umieszczone obok złącze śrubowe. Dioda D2 zabezpiecza przed odwrotnym podłączeniem zasilania. Dioda LED z oznaczeniem PWR sygnalizuje włączenie urządzenia.
Uwagi Dondu
Zasilanie to tzw. "temat rzeka", można go rozwiązać na wiele sposobów. W tym module można było jeszcze na wyjściu każdego regulatora napięcia dodać po jednym lub dwóch goldpinach, które pozwoliłyby na korzystanie z drugiego napięcia jako pomocniczego (które i tak jest włączone). Na przykład, gdy korzystamy z 5V jako napięcia głównego (zasilającego całą płytkę) włączonego za pomocą włącznika S5, to 3,3V można by wykorzystać do zasilania karty SD podłączonej na przykład na płytce stykowej. I odwrotnie, gdy cała płytka pracuje na 3,3V, to np. zewnętrznie podłączony wyświetlacz LCD wymagający 5V mógłby być zasilany z tej płytki.
Komunikacja szeregowa UART
Na lewej krawędzi znajduje się złącze DB9 umożliwiające komunikację z komputerem za pomocą UART. W celu konwersji napięć użyty został układ MAX232 z niezbędnymi kondensatorami. Oprócz sygnałów RxD i TxD zostały wyprowadzone sygnały CTS (clear to send) oraz RTS (request to send).
Podstawka dodatkowa
Podstawka 20 pin oraz wyprowadzone obok wszystkie piny umożliwiają wykorzystanie na płytce innych układów. Obok znajdują się piny zasilania z kondensatorami filtrującymi.
Wyświetlacze LED
Cztery wyświetlacze 7-segmentowe ze wspólną katodą umożliwiają wyświetlanie danych z mikrokontrolera. Wszystkie segmenty wyświetlaczy są wyprowadzone goldpinami, obok położone jest złącze do wyboru aktywnego wyświetlacza, podczas multipleksowania.
Złącza AUX
Sześć złączy śrubowych AUX umożliwia wygodne podłączenie zewnętrznych urządzeń.
Przekaźnik
Mały przekaźnik SPDT pozwala na manipulację znacznie większymi napięciami. Złącze śrubowe umożliwia podłączenie do jego styków. Zastosowana została dioda zabezpieczająca przed przepięciami. Przekaźnik sterowany jest tranzystorem NPN.
Uwagi Dondu
Tutaj należy uważać z podłączaniem wysokich napięć, które umożliwia ten konkretny przekaźnik, ze względu na zbyt bliskie położenie tego modułu względem innych oraz kształtu ścieżek. W czasie konsultacji PCB nie było mowy o takich napięciach. Dlatego:
Dlatego bezwzględnie należy ograniczyć się do bezpiecznych 24V.
Moduł na wyższe napięcia powinien być opracowany inaczej lub w ogóle poza płytką.
Moduł na wyższe napięcia powinien być opracowany inaczej lub w ogóle poza płytką.
Buzzer
Buzzer z generatorem, sterowany tranzystorem, po podaniu logicznej jedynki wydaje głośny dźwięk. W przypadku zastosowania buzzera bez generatora, przygotowane jest miejsce na diodę D4 zabezpieczającą przed przepięciami z buzzera piezoelektrycznego lub standardowego głośniczka.
Diody LED
Cztery diody LED z rezystorami załączane są stanem logicznego zera.
Przełączniki (microswitch)
Cztery małe przełączniki (tact switch) zwierają port mikrokontrolera do masy, dając logiczne zero. Do ich prawidłowej obsługi należy włączyć wewnętrzny rezystor pull-up pinu mikrokontrolera. Czyli gdy przycisk jest naciśnięty, to odczytamy zero, a gdy nie jest przyciśnięty, to odczytamy jeden.
Przewody łączące
Do tego potrzebne będą przewody łączące. Można takie kupić, ale ja zrobiłem je sam, wystarczą pojedyncze gniazda goldpin i trochę przewodu. Warto zrobić też 8-pinowy kabel do łączenia wyświetlacza 7-seg żeby uniknąć plątaniny, i przewody przejściówki do płytki stykowej.
Podsumowanie
Mam nadzieję, że się komuś przyda lub będzie pomocna w projektowaniu własnej :-)
W razie pytań proszę je zadawać w komentarzach do tego artykułu.
Kontakt bezpośredni możesz uzyskać przez moje konto na Elektrodzie.
Pozdrawiam,
afterparty
Podsumowanie Dondu
Jak w każdym tego typu projekcie, można było coś dodać, coś zrobić inaczej, ... itd.
Niewątpliwie autor projektując własną płytkę nauczył się wielu rzeczy, w krótkim czasie.
- określił cel i założenia,
- zaprojektował wstępny schemat,
- skonsultował schemat na forum Elektroda.pl w odpowiednim dziale,
- zaprojektował wstępne PCB,
- skonsultował PCB na forum Elektroda.pl w innym odpowiednim dziale,
- wykonał PCB bardzo starannie,
- zmontował płytkę,
- przetestował ją.
Tak powinien wyglądać proces tworzenia projektów szczególnie wtedy, gdy jest się jeszcze na początkowym etapie tej zabawy. Z takim podejściem jestem przekonany, że afterparty będzie w przyszłości bardzo dobrym inżynierem :-)
Tak trzymaj!
Witaj. Nie podałeś nic o kosztach.
OdpowiedzUsuńCześć :) Koszt wszystkich części to około 40,85zł - bez wytrawiacza, środka do cynowania, pasty, i lakieru w sprayu. Także w porównaniu z gotowymi zestawami startowymi to śmieszna kwota.
OdpowiedzUsuńKiedy pojawi się artykuł z instrukcją wykonania płytki o którym piszesz?
OdpowiedzUsuńTo już zależy tylko ode mnie, ponieważ wszystkie materiały przesłane przez autora mam. Artykuł ukaże się dzisiaj, najpóźniej jutro.
OdpowiedzUsuńBardzo fajna płytka, jak dla mnie brakuje tylko jeszcze wyświetlacza LCD np. 2 x 16 znaków.
OdpowiedzUsuńIle czasu zajęło ci wykonanie pcb wraz z montażem?
OdpowiedzUsuńDzięki, cieszę, że się podoba, o LCD jakoś przy projektowaniu nie myślałem. Ile czasu mi to zajęło - Samo przeniesienie ścieżek na laminat trwało praktycznie od rana do wieczora - nie chciało mi wyjść, musiałem kilka razy próbować, ale w końcu się udało i wyszło w miarę ładnie. Po przeniesieniu ścieżek trzeba poczekać aż się wytrawi, pocynować, zrobić opis, itp. Później jeszcze może godzinę poświęcić na wiercenie otworów - zalecana cierpliwość. No i na koniec lutowanie, to już w inny dzień. Także ogólnie zajęło mi to naprawdę sporo czasu, ale było warto, można szybko jakieś układziki zmontować bez plątaniny jak na stykowej. W następnej części będzie wszystko opisane.
OdpowiedzUsuńCzyli dopiero pierwszy raz robiłeś PCB, a przynajmniej tak duże? Pytam bo ja jeszcze nie robiłem ta metodą, tak dużej płytki. Na razie tylko malutkie z różnym skutkiem. Jak się nazywają fachowo te wtyki na końcach przewodów?
OdpowiedzUsuńDokładnie tak, wcześniej robiłem tylko małe płytki. Najwięcej problemów miałem z krawędziami, trzeba je naprawdę dobrze przyprasować. Z termotransferem to różnie bywa, trzeba znaleźć optymalną termperaturę i czas prasowania A te wtyki na końcach to po prostu pojedyńcze gniazda goldpin, np BLS-01.
OdpowiedzUsuńOstatni datasheet nie ma podglądu. Można go tylko ściągać a ma aż 35MB. Da się jakoś zrobić podgląd tak jak inne?
OdpowiedzUsuńNiestety nie ma takiej możliwości. Pozostaje tylko pobrać cały datasheet.
OdpowiedzUsuńGdzie i kiedy kolejny artykuł ? :)
OdpowiedzUsuńJuż się pojawił tutaj: Jak wykonałem PCB ...
OdpowiedzUsuńZnakomity artykuł! Właśnie takiej płytki potrzebowałem. Zrobiłem ją i jestem naprawdę zadowolony :)
OdpowiedzUsuńPrzepraszam czy osoby, które wykonywały płytkę napotakł y się może z problemami przy uruchomieniu rs232?
OdpowiedzUsuńNie działa link do pobrania schematów do Eagle'a.
OdpowiedzUsuńDo wykazu elementów też nie działa.
Usuń