http://www.easy-soft.tsnet.pl/
J.Bogusz „Uniwersalny sterownik z mikrokontrolerem”
STRONA 1/3
Przydatne urządzenia:
Uniwersalny sterownik z mikrokontrolerem AVR.
Opisywane niżej urządzenie powstało jako rodzaj
uniwersalnego sterownika. Może być wyposażone w
mikrokontroler AT89S8252 lub AT90S8515 (również inne
z rodziny AVR i AT89S). Funkcjonalnie sprawdzane było z
tymi dwoma pierwszymi. Sterownik przystosowany jest
do umieszczenia w obudowie na szynę TH35 produkcji
firmy „Systemy Informatyczne SZANIAWSKI SYSTEM”
(Pruszków, ul. Lipowa 3, http://www.szaniawski.pl/).
Polecam również do innych tego rodzaju urządzeń. W
obudowie tej umieściłem również zasilacz urządzenia,
układy wykonawcze z przekaźnikami i interfejsowe.
Geneza.
Budując różnego rodzaju urządzenia z mikrokontrolerami na zamówienia, zawsze dążyłem do maksymalnego
skrócenia czasu wykonania układu elektronicznego a chociażby samego prototypu, układu, który będą mógł
położyć na stole i wstępnie zaprogramować. Praktycznie „baza” raczej nie zmienia się. Prawie zawsze gdzieś w
centrum jest mikrokontroler i do niego dołącza się układy peryferyjne. Często też to przyzwyczajenia dyktują
wykorzystanie tego a nie innego mikrokontrolera. Postanowiłem zaprojektować i wykonać rodzaj uniwersalnego
sterownika, który spełniłby tak postawione wymagania, umożliwiając mi skierowanie wysiłku tam, gdzie jest on
najczęściej najbardziej potrzebny: na tworzenie oprogramowania. Jego schemat można zobaczyć na rysunku 1.
Można zaryzykować twierdzenie, że współcześnie istnieją mikrokontrolery, posiadające w swojej strukturze
wszystkie układy, w które wyposażyłem sterownik. Nie mniej jednak świetnie spełnia on swoje zadanie.
Opis układu.
Sterownik jest maksymalnie uproszczony. Zasilanie (+5V) doprowadzane jest z zewnątrz. Płytka zawiera
mikrokontroler wraz z niezbędnym otoczeniem: zegar czasu rzeczywistego z kalendarzem PCF8583, pamięć
EEPROM PCF 85116 (ale może to być dowolna pamięć z interfejsem I
2
C), MAX202 umożliwiający dołączenie do
komputera PC, baterię zasilającą zegar w przypadku braku zasilania, proste układy buforów, jednym słowem:
tylko niezbędne otoczenie. Układy zewnętrzne, takie jak przekaźniki, wyświetlacze i inne układy wykonawcze,
dołączane są z zewnątrz z wykorzystaniem złącz – terminali „pod śrubkę”. Jeśli płytka nie jest umieszczana w
obudowie, mogą to być najtańsze złącza o rastrze 5,08 mm (tak, jak na zdjęciu 1). Jeśli wymagane jest aby
płytka pracowała w obudowie, to należy kupić złącza firmy np. PHOENIX, o identycznym rastrze ale wyższe od
tych najtańszych, typowo stosowanych (złącza PHOENIX mają wysokość około 14 mm). Charakterystycznym
jest zielony kolor tych złącz. Myślę, że większość elektroników już się z nimi zetknęła, ponieważ nawet
„podróbki” również wykonywane są w identycznym kolorze. Wróćmy do schematu elektrycznego.
Wyprowadzenia PD4 i PB 4 mikrokontrolera (U2) tworzą szynę interfejsu I
2
C, do której dołączony jest układ
zegara czasu rzeczywistego (RTC, U3) i pamięć szeregowa EEPROM (U4). PD4 to sygnał danych SDA, PB4 to
sygnał zegarowy SCL. Linie interfejsu zasilane są przez rezystory o wartości 10k (R2, R3), co przy bardzo
krótkich połączeniach jest zupełnie wystarczające. Dodatkowo, do wyjścia INT układu zegara czasu
rzeczywistego (U3), doprowadzony jest port PB0 umożliwiający sygnalizację alarmu. Wejście INT również
zasilane jest poprzez rezystor 10k (R4).
Układ zegara, poprzez prosty przełącznik zasilania wykonany z diod BAVP18 (D1 i D2), zasilany jest z napięcia
+5V, lub w przypadku jego nieobecności, z baterii litowej B1. Bateria zasila wyłącznie układ zegara. Linie
interfejsu szeregowego RXD i TXD podane są na przełącznik zbudowany z bramek trójstanowych (U6) układu
74126. Czasami sterownik używany był wspólnie z wyświetlaczem VFD wyposażonym w interfejs szeregowy
RS232, ale o poziomach napięć zgodnych ze standardem TTL. W związku z tym, że jednocześnie interfejs
mikrokontrolera służył do komunikacji z układami zewnętrznymi (na przykład komputerem PC), na płytce
zbudowano rodzaj przełącznika, umożliwiający dokonanie wyboru, czy sygnał z/do mikrokontrolera pojawia się
na doprowadzeniach zgodnych ze standardem TTL, czy pochodzi z drivera MAX202 i jest zgodny ze standardem
RS232. Dzięki przełącznikowi sprzętowemu sterownik jakby posiada dwa porty szeregowe. Wybór rodzaju
sygnału sterowany jest przez wyprowadzenie PC7. Jego stan wysoki oznacza, że komunikacja odbywa się z
wykorzystaniem poziomów napięć zgodnych z TTL. Dodatkowo zwory JP1 i JP2 umożliwiają wybór polaryzacji
sygnału.
Sterownik wyposażony jest również w doprowadzenia interfejsu 1-Wire. Wykorzystuje on bit 1 portu PA. Do tej
linii dołączony jest rezystor zasilający 2,2k (R5) oraz tranzystor BS170 (T1) umożliwiający załączenie zasilania
układów 1-Wire (np. czujnika DS1820 w czasie konwersji). Tranzystor sterowany jest za pomocą
wyprowadzenia PA0 (stan niski załącza zasilanie 1-Wire).
http://www.easy-soft.tsnet.pl/
J.Bogusz „Uniwersalny sterownik z mikrokontrolerem”
STRONA 2/3
Rysunek1. Schemat elektryczny sterownika.
http://www.easy-soft.tsnet.pl/
J.Bogusz „Uniwersalny sterownik z mikrokontrolerem”
STRONA 3/3
Płytka wyposażona jest w dwa rezonatory kwarcowe, oznaczone na schemacie jako Q1 (2
15
Hz, to jest 32768Hz)
i Q2 (7,3728MHz). O ile wartości częstotliwości pierwszego nie wolno zmieniać, o tyle drugi należy dobrać w
zależności od potrzeb. Wyjście generatora zegarowego mikrokontrolera (XTAL2) jest doprowadzone do
terminala (X10-1) poprzez bramkę inwertora U1B. Umożliwia to użycie sygnału zegarowego z mikrokontrolera
w innych układach, dołączonych z zewnątrz.
Złącze G1 służy do podłączenia programatora szeregowego opisywanego na tej stronie (Programator szeregowy
AVR i AT89S8252 z interfejsem RS232). Oczywiście można użyć również innego, ale przekonałem się już na
własnej skórze, że programatory te pracują „różnie”. Programowanie mikrokontrolera odbywa się w układzie
(in-circuit), z wykorzystaniem sygnałów MISO, MOSI i SCK interfejsu SPI. Na płytce brak jest układu kontroli
napięcia zasilającego i generującego sygnał reset dla mikrokontrolera.
Obwód reset jest bardzo prosty: składa się na niego rezystor 10k (R1) i kondensator 100µF (C1). Obwód działa
poprawnie w przypadku użycia mikrokontrolera AVR. Jeśli używany jest inny, z rodziny ’51 (np. AT89S8252), to
w miejsce R1 należy wlutować kondensator 0,1µF i nie montować C1.
Podsumowanie.
Opisywanego sterownika używam w różnych konfiguracjach. Jak pisałem wcześniej – umieściłem go w
obudowie na szynę TH35. W związku z tym łatwo jest zbudować zestaw potrzebnych układów peryferyjnych,
również umieścić je na szynie TH35 i połączyć w potrzebną konfigurację urządzeń przy pomocy zwykłych
przewodów. W ten sposób powstał model sterownika wyposażenia akwarium (i długi czas w tej postaci
funkcjonował), sterownika oświetlenia, wagi, termometr cyfrowy, terminal z wyświetlaczem VFD i wiele, wiele
innych układów. Dzięki wykorzystaniu programatora szeregowego układ świetnie programuje się z
wykorzystaniem Bascom, C, asemblera. Po drobnej zmianie można w nim użyć również AT89S8252, AT89S53,
AT89S8253 (w obudowach PLCC).
Jacek Bogusz
jacek.bogusz@easy-soft.tsnet.pl