background image

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). 

background image

http://www.easy-soft.tsnet.pl/ 
 

 
J.Bogusz „Uniwersalny sterownik z mikrokontrolerem”   

STRONA 2/3 

Rysunek1. Schemat elektryczny sterownika. 

background image

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