Koło elektroniczno-informatyczne

Projektowanie płytek drukowanych w Eagle
Płytka bazowa APP000

 

Projekt płytki bazowej dla ATTiny13

 
   
W celu wygodnego kontynuowania nauki programowania mikrokontrolerów skonstruujemy kilka przydatnych układów elektronicznych. Na początek będzie to płytka bazowa z mikrokontrolerem ATTiny13. Jest to coś w rodzaju samodzielnego komputera, do którego będzie można przyłączać różne urządzenia. Oczywiście układy takie da się budować na płytce stykowej, jednak nie jest to rozwiązanie wygodne.

Najpierw określmy, co będzie taka płytka bazowa zawierała oprócz samego mikrokontrolera. Po pierwsze musimy mieć możliwość wygodnego programowania mikrokontrolera. Zatem na płytce bazowej umieścimy 10-cio bolcowe gniazdo Kanda (można zamiast niego zastosować dwurzędowe goldpiny, co jest rozwiązaniem tańszym, lecz będziesz musiał uważać, aby poprawnie dołączać wtyczkę taśmy programatora), do którego bez problemów podłączymy taśmę z programatora. Programator dostarczy nam również zasilania, zatem nie będziemy się musieli tym martwić. Płytka bazowa będzie jeszcze zawierała przycisk RESET, diodę sygnalizującą działanie, dwa goldpiny z napięciem zasilania (gdybyśmy chcieli coś dodatkowo do niej podłączyć) oraz gniazdo wyjściowe do podłączania różnych urządzeń, które skonstruujemy w dalszej części kursu.

Gotowa płytka bazowa wygląda jak na poniższej fotografii (dwie płytki w wersji przewlekanej oraz dwie w wersji SMD).

obrazek

Ważnym elementem jest gniazdo wyjściowe. Do jego konstrukcji użyjemy podwójnej, kątowej listwy żeńskiej  goldpin (koszt około 1...2zł za listwę z 40-toma stykami). Na stykach tego gniazda będą dostępne sygnały mikrokontrolera PB0...PB5 oraz masa i zasilanie Vcc. Umówmy się, że przydział tych sygnałów do poszczególnych pinów gniazda będzie następujący (widok od przodu gniazda):

 

Vcc PB0 PB2 PB4
GND PB1 PB3 PB5

 

Gniazdo wyjściowe będzie posiadało 8 styków. Taki przydział sygnałów pozwoli łatwo rozszerzyć to gniazdo na większą liczbę linii portów dla pozostałych mikrokontrolerów, do których będziemy mogli podłączać układy zaprojektowane dla tej płytki ATTiny13.

Schemat płytki bazowej jest następujący:

obrazek

 

Uruchom program Eagle i utwórz w nim nowy projekt o nazwie APP000 i opisz go jako "Płytka bazowa dla ATTiny13":

obrazek

W projekcie APP000 utwórz schemat (klikasz prawym przyciskiem myszki nazwę APP000 i z menu kontekstowego wybierasz New → Schematic). Klikasz narzędzie Add (lub wpisujesz polecenie add) i z biblioteki frames wybierasz ramkę A5L-LOC i wstawiasz ją na schemat w miejscu krzyżyka po lewej stronie u dołu:

obrazek

Wracasz do wyboru elementu z biblioteki (klawisz ESC) i wstawiasz na schemat poszczególne elementy wg podanej niżej listy.

 

pinhead  PINHD-1X2  PINHD-1X2 x 1 (dodatkowe wyjście Vcc i GND)

pinhead  PINHD-2X4  PINHD-2X4/90 x 1 (wyjście, wybieramy goldpiny kątowe męskie, lecz będzie to gniazdo kątowe żeńskie, którego brak w bibliotekach Eagle)

con-ml  ML10 x 1 (złącze Kanda)

atmel   TINY13 TINY13-20PU x 1 (mikrokontroler)

supply1   Vcc x 2 (zasilanie)

supply1   GND x 2 (masa)

rlc   R-EU   R-EU_0204/7 x 2 (opornik)

rlc   C-EU   C-EU050-025x-75 x 1 (kondensator)

rlc   CPOL-EU   CPOL-EUE2.5-5 x 1 (kondensator elektrolityczny)

led   LED   LED3MM x 1 (dioda LED)

switch-omron  10-XX (przycisk RESET)

 

obrazek

Rozmieszczamy elementy na schemacie za pomocą narzędzia Move.

obrazek

Ponieważ połączeń będzie dużo, wykorzystamy narzędzie Bus do narysowania magistrali.

obrazek

Magistrala jest grupą ścieżek, które na schemacie są rysowane jedną linią. Po wybraniu narzędzia w opcjach ustaw Wire bend style 1:

obrazek

Narysuj magistralę jak na poniższym rysunku, rysowanie zakończ podwójnym kliknięciem lewym przyciskiem myszki:

 

obrazek

 

Musimy określić sygnały, które będą przebiegały w magistrali. Robi się to nadając magistrali odpowiednią nazwę, która zawiera nazwy sygnałów. Co będzie się znajdowało w tej magistrali? Wszystkie linie portu B mikrokontrolera ATTINY13, czyli PB0...PB5. Dodatkowo umieścimy tam Vcc i GND. Jeśli sygnały różnią się tylko cyframi, to można wprowadzić je blokowo. Np. linie portu wpiszemy do nazwy magistrali jako PB[0..5] (inaczej należałoby żmudnie wpisywać PB0, PB1...).

Wybierz narzędzie Name i kliknij magistralę i wpisz.

obrazek

Teraz chcielibyśmy zobaczyć na schemacie tę nazwę. W tym celu używamy narzędzia etykiety Label.

obrazek

Wybierz je z paska narzędziowego i kliknij lewym przyciskiem myszki w magistralę. Pojawi się jej nazwa, którą możesz sobie przemieszczać. Ustaw ją w jakimś widocznym miejscu i zatwierdź położenie kliknięciem lewego przycisku myszki:

obrazek

Zmianę położenia etykiety zawsze uzyskasz za pomocą narzędzia Move.

Po nazwaniu magistrali możemy przystąpić do łączenia elementów na schemacie. Wybierz narzędzie Net. Najpierw połącz wszystkie elementy poza magistralą:

obrazek

Następnie wyprowadzimy z magistrali przewody do odpowiednich elementów na schemacie. Robi się to bardzo prosto. Dla przykładu połączymy magistralę z wyprowadzeniami Vcc i GND. Najpierw ustaw we własnościach Net opcję:

obrazek

Pozwala ona zaginać przewód pod katem 45 stopni. Kliknij narzędziem Net lewą końcówkę magistrali. Ponieważ magistrala zawiera wiele przewodów, pojawi się menu kontekstowe, z którego wybieramy właściwy przewód, w tym wypadku przewód GND, czyli masę:

obrazek

Przewód łączymy z elementem GND na schemacie:

obrazek

Wyprowadzony przewód może posiadać etykietę w celu łatwej identyfikacji. Kliknij go prawym przyciskiem myszki i wybierz opcję Label.

obrazek

Etykietę ustaw w odpowiednim miejscu i zatwierdź to położenie kliknięciem lewym przyciskiem myszki.

obrazek

W podobny sposób wyprowadź przewód Vcc i połącz go z elementem VCC na schemacie:

obrazek

W ten sam sposób połącz resztę elementów z magistralą.

obrazek

Schemat jest prawie gotowy. Pozostaje jeszcze nazwać elementy i określić ich wartości:

obrazek

Zapisz schemat pod nazwą app000.sch i przejdź do edytora PCB. Ułóż elementy wg poniższego rysunku:

obrazek

Wykonaj połączenia ścieżek wg poznanych wcześniej zasad. Możesz uruchomić Autorouter, a następnie ręcznie poprawić ścieżki. Ja tak często robię. Efekt wygląda następująco (nie musisz tworzyć płytki identycznej z naszą):

obrazek

Wykonaj płytkę PCB i przylutuj do niej elementy. Pamiętaj, że JP2 jest gniazdem żeńskim kątowym, tutaj widać bolce, ponieważ w standardowych bibliotekach Eagle brakuje tego elementu. Oczywiście, można sobie zaprojektować dowolny element biblioteczny, lecz nie wszystko na raz. W dalszej części kursu pokażę, jak to się robi. Poniżej masz pliki z projektu Eagle wraz z grafiką i stroną do wydruku na drukarce laserowej:

 

Element Ilość Opis
ATTiny13 1  
podstawka DIL8 1  
złącze Kanda lub goldpin 2x5 1 złącze programatora
złącze żeńskie goldpin kątowe 2x4 1 złącze wyjściowe
goldpin 1x2 prosty 1 złącze zasilania
opornik 1kΩ/0,125W 1 –(                )–
opornik 4,7kΩ/0,125W 1 –(                )–
dioda LED 3mm 1 kolor dowolny
kondensator 100nF 1  
kondensator 4,7µF/6,3V 1 elektrolityczny
przycisk Omron 1 RESET

 

Stronę z obrazami ścieżek drukujemy za pomocą drukarki laserowej na gładkim papierze kredowym. Wycinamy odpowiedni fragment – płytka SMD jest dwustronna, wycinamy zatem oba obrazki spodu i wierzchu płytki.

obrazek

Wycięty kawałek kartki zaginamy wzdłuż kreskowanej linii i dopasowujemy do siebie oba obrazki ścieżek. Najlepiej zrobić to pod światło. Po dopasowaniu zszywamy z trzech stron zszywkami i wkładamy do środka płytkę miedziowana przyciętą na odpowiedni wymiar i dokładnie oczyszczoną papierem ściernym, płynem do mycia oraz rozpuszczalnikiem nitro lub benzyną. Zamykamy płytkę w środku przez zszycie kartek ostatnią, czwartą zszywką. Zszywki należy spłaszczyć, aby nie rysowały spodu żelazka.

obrazek

Tak przygotowane płytki traktujemy rozgrzanym żelazkiem przez około 2 min. Płytkę dwustronną należy ogrzać z obu stron. Przy termotransferze nie dociskaj zbyt mocno żelazka do płytki, ponieważ może to spowodować nieładne rozpłaszczenie ścieżek, szczególnie tych cienkich. Toner przy ogrzewaniu mięknie i zachowuje się jak materiał plastyczny.

obrazek

Operacja jest skończona, gdy poprzez papier widoczne są ścieżki. Musisz sobie to wypraktykować. Po kilku "produkcjach" nabierzesz wprawy.

obrazek

Płytki z papierem wrzucamy do letniej wody z mydłem i zostawiamy tak na około 15 minut, aby papier dobrze odmoknął. Następnie delikatnie odrywamy papier od płytek. Jeśli termotransfer został wykonany poprawnie, to całość tonera powinna pozostać na płytce. W przeciwnym razie będziesz musiał uzupełnić ubytki ścieżek pisakiem edding 141F. Ze ścieżek należy dokładnie usunąć resztki papieru. Możesz to zrobić palcem lub starą szczoteczką do zębów. Papier z otworów na polach lutowniczych usuwasz ostrym końcem nożyka lub szpikulcem.

Przygotowujemy roztwór trawiący: łyżeczkę nadsiarczanu sodowego B327 zalewamy gorącą wodą (nie wrzątkiem) i dokładnie mieszamy, aby w całości się rozpuścił. Do roztworu wrzucamy płytki i mieszamy od czasu do czasu, co przyspiesza trawienie.

obrazek

Po wytrawieniu płytki czyścimy dokładnie rozpuszczalnikiem nitro, który usunie toner ze ścieżek. Ja wrzucam jeszcze płytki na kilka minut do roztworu kalafonii w rozpuszczalniku nitro lub w denaturacie. Tak potraktowane płytki należy dokładnie wysuszyć. Zostaną one pokryte cieniutką warstwą kalafonii, która później ułatwi lutowanie.

obrazek obrazek

W płytce wiercimy otwory. Pod elementy przewlekane stosujemy wiertło 0,7mm. Pod goldpiny 0,9mm. Otwory należy wiercić prostopadle do płytki, inaczej miną się z polami lutowniczymi po drugiej stronie płytki.

obrazek

Płytka jest gotowa. Lutujemy do niej elementy w kolejności od najniższych do najwyższych – łatwiej je wtedy dociskać przy lutowaniu, inaczej te wyższe będą ci przeszkadzać. W płytce SMD zacznij od zlutowania przelotek (Via). Płytki na poniższych fotografiach posiadają zamiast gniazda Kanda zwykłe goldpiny. Wtyczkę z programatora dołączamy, tak aby jej występ był skierowany do mikrokontrolera.

obrazek obrazek

 

Uruchomienie płytki bazowej APP000

Zlutowaną płytkę APP000 należy teraz uruchomić, czyli sprawdzić poprawność montażu elementów. Podłącz płytkę do programatora USBasp, programator podłącz do gniazda USB w komputerze i uruchom środowisko Eclipse. Stwórz nowy projekt dla ATTINY i wpisz do edytora poniższy program:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    DDRB  = 0b11111; // Określamy PB0...PB4 jako wyjścia
    PORTB = 0;       // Na wszystkie wyjścia stan 0
    while(1)
    {
        PORTB++;        // W rejestrze portu B tworzymy licznik
        _delay_ms(100); // Czekamy 0,1 sekundy
                        // I od nowa w pętli
    }
}

Program tworzy w rejestrze portu B licznik, który zlicza co 0,1 sekundy. Pojawia się tutaj nowy operator: ++. Zwiększa on o 1 zawartość rejestru PORTB i w ten sposób powstaje w tym rejestrze prosty licznik binarny, który zlicza co 1/10 sekundy. Najszybciej zmienia się stan linii PB0 (najmłodszy bit licznika). PB1 zmienia się dwa razy wolniej (starszy bit licznika), PB2 znów dwa razy wolniej i tak dalej aż do PB4. Do badania stanu linii wyjściowych PB0...PB4 wykorzystaj próbnik stanów logicznych, który wykonałeś wcześniej. Zasilanie próbnika pobieramy z dwóch goldpinów na płytce bazowej. Sondę próbnika wkładamy do kolejnych otworów gniazda wyjściowego (za wyjątkiem dwóch pierwszych, w których jest +5V i masa).

+5V PB0 PB2 PB4
GND PB1 PB3 PB5

Jeśli próbnik będzie wskazywał odpowiednie zmiany poziomów logicznych, to płytka bazowa jest poprawnie zbudowana. W przeciwnym razie będziesz musiał zabawić się w detektywa i znaleźć na niej błąd. Ostatecznie możesz sobie zrobić nową płytkę, tym razem bardziej starannie.

obrazek

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe