Monitor portów AVR
Transkrypt
Monitor portów AVR
+ Monitor portów AVR Do czego to służy? Na początku stycznia zadzwonił do mnie pewien Czytelnik, który napotkał kłopoty przy próbie dołączenia wyświetlacza LCD do procesora AVR (‘8535). Przez telefon nie sposób było ustalić przyczyny. Mógł nią być błąd w programie albo też błędne podłączenie lub uszkodzenie wyświetlacza. Poradziłem, żeby przede wszystkim sprawdził, czy procesor wysyła informację na linie portu procesora, do których jest dołączony wyświetlacz. Można to zrobić w różny sposób. Po chwili namysłu doszedłem do wniosku, że podobne problemy z pewnością napotka wielu Czytelników, piszących własne programy. Aby ułatwić im życie, postanowiłem zaprojektować monitor stanu portów procesora. Chodzi o to, żeby podczas pracy programu można było łatwo sprawdzić, co dzieje się na poszczególnych liniach portów. W przypadku wielu procesorów, w tym rodziny ‘51, nie ma żadnego problemu, bo na porcie może wystąpić jeden z dwóch stanów. Monitorem stanu danej końcówki może być dioda LED i rezystor szeregowy włączone między daną końcówkę a dodatnią szynę zasilania. Z portami procesorów AVR sprawa jest trudniejsza, bo mogą tam występować nie dwa, tylko cztery różne stany - szczegóły można znaleźć w odcinku Mikroprocesorowej Oślej łączki w numerze 1/2003. Opisany dalej monitor pozwala określić nie tylko spoczynkowy stan danej końcówki, ale też zmiany stanów podczas pracy programu. Jak to działa? Rysunek 1 pokazuje schemat ideowy układu monitora, ściślej - monitor stanu jednej linii. Punkt PORT należy dołączyć do badanej linii portu procesora AVR, a punkty VCC i GND podłączyć do napięcia zasilającego procesor. Aby rozróżnić cztery stany (dwa przy pracy w roli wyjścia, dwa - jako wejścia) potrzebne są co najmniej dwie diody LED. Gdy końcówka pracuje jako wejście „pływające”, nie świeci żadna z diod. Sytuacja jest taka, jakby 18 punkt PORT pozostał niepodłączony. Aby lampki nie świeciły, suma napięć przewodzenia diod i złącza baza-emiter tranzystora musi być większa od napięcia zasilania. Ponieważ niektóre żółte diody LED zaczynają zauważalnie świecić już przy napięciu 1,7V, koniecznie jest zastosowanie szeregowych diod D1...D4. Wtedy na pewno przy napięciu zasilania do 5,5V żółte diody LED1 i LED2 nie będą świecić. Rys. 1 Schemat ideowy Gdy sprawdzana końcówka pracuje jako wyjście, procesor ustawia tam „czysty” stan wysoki albo niski, co odpowiada dołączeniu punktu PORT do plusa zasilania albo do masy. Znaczny prąd płynie przez rezystor R1 i jasno świeci jedna z diod LED1, LED2. Przy stanie wysokim wyjścia – LED2, przy niskim – LED1. Tranzystor T1 praktycznie nie odgrywa wtedy żadnej roli. Gdy badana końcówka jest wejściem „podciągniętym”, panuje na niej w spoczynku stan wysoki, ale wydajność prądowa jest mała (znacznie poniżej 1mA). Właśnie dzięki zdecydowanie różnej wydajności prądowej „podciągnięte” wejście można skutecz- nie odróżnić od wyjścia w stanie wysokim. Pomaga w tym tranzystor T1 i dodatkowy rezystor R2. Mianowicie z badanej końcówki przez rezystor R1 płynie wtedy bardzo mały prąd, ale otwiera on tranzystor T1 i przez diodę LED2 płynie prąd o wartości wyznaczonej przez R2. Wartość R2 jest tak dobrana, żeby prąd ten wynosił 1mA lub mniej. Tym samym, gdy badana końcówka jest wejściem „podciągniętym”, świeci LED2, ale ze znacznie zmniejszoną jasnością, wyznaczoną przez wartość rezystora R2. W ten sposób jasność świecenia LED2 pokazuje, czy chodzi o „prawdziwy” wysoki stan wyjścia (jasne światło), czy o „podciągnięcie” wejścia (świecenie słabe, ale wyraźnie zauważalne). Rezystor R3 jest potrzebny, żeby układ nie reagował na prądy upływu, mniejsze niż 5µA. Na rysunku 2 pokazane są reakcje monitora na wszystkie cztery możliwe stany linii portu i rozpływ prądów. Oczywiście, gdy porty będą pracować w roli wyjść i gdy będą się na nich szybko zmieniać stany, będą świecić obie lampki. Świecenie obu lampek świadczy więc, że na badanej końcówce występuje przebieg impulsowy, a stosunek jasności lampek wskaże współczynnik wypełnienia tego przebiegu. Uwaga! W proponowanej wersji układ przeznaczony jest do pracy przy napięciu zasilania w granicach 5V±0,5V. Jeśli procesor miałby pracować przy innym napięciu zasilania albo z diodami LED o innym napięciu przewodzenia, należy zmienić liczbę szeregowych diod krzemowych (D1...D4), by przy odłączonym punkcie PORT nie świeciła żadna z diod LED. Zwłaszcza w przypadku użycia diod czerwonych, mających niższe napięcie przewodzenia, może zajść potrzeba dodania diod krzemowych Warto dodać, że najprostszy monitor stanu portów procesora AVR można zbudować według rysunku 3. Działanie będzie identyczne, jak układu z rysunku 1, tylko przy wejściu „podciągniętym” jasność świecenia LED2 będzie bardzo mała. E l e k t ro n i k a d l a Ws z y s t k i c h Kto chciałby wypróbować taki prosty układ, powinien zastosować diodę LED2 z przezroczystą soczewką, żeby można było dostrzec to znikome świecenie przy prądzie diody rzędu 0,1mA. z naszej strony internetowej. Należy dołączyć wejście monitora (PORT) do punktu D0 (zacisk ARK lub dolna szpilka zwory J5), jak pokazuje rysunek 4. Piotr Górecki Montaż i uruchomienie Rys. 3 Do tak prostego układu nie przewidziano płytki drukowanej. Wszyscy uczestnicy kursu mikroprocesorowej Oślej łączki powinni wykonać przynajmniej jednokanałowy tester według rysunku 1, choćby w postaci „pająka”, jak na fotografii wstępnej. Aby dołączyć monitor do badanej końcówki portu, warto wykorzystać jedną końcówkę z listwy z gniazdkami. Kto chce, może zmontować kilka, nawet osiem, kanałów, by uzyskać prosty analizator stanów. Aby wstępnie sprawdzić działanie testera, można wykorzystać programik MonPort.bas Ry s. 4 Wykaz elementów monitora jednokanałowego R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220Ω R2 . . . . . . . . . . . . . . . . . . . . .3,3kΩ (2,2...6,8kΩ) R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100kΩ LED1,LED2 . . . . . . . . . . . . . . . . . . . . . .żółta 3mm T1 . . . . . . . . . . . . . . . . . . . . .BC548 lub podobny D1...D4 . . . . . . . . . . . . . . . . . . . . . . . .1N4001...7 (wspólne dla wszystkich kanałów) Rys. 2 Ciąg dalszy ze strony 17. Przyciski szybkiego wyboru w programie są tworzone wirtualnie, to znaczy, że mogą one mieć wartości inne niż wartości przycisków szybkiego wybierania znajdujące się w zasilaczu. Dzięki temu istnieje możliwość zwiększenia liczby przycisków wyboru aż do 16. Przyciskiem „MODE” można zmienić wartości wskazywane przez przyciski wyboru na prąd lub napięcie. Aby program poprawnie pracował, należy go skonfigurować. Konfiguracja będzie polegać na zmianie pliku tekstowego, w którym zawarty jest numer portu oraz napięcia i prądy przypisane wirtualnym przyciskom wyboru. Wygląd tego pliku konfiguracyjnego przedstawia rysunek 9. Pierwsza wartość wskazuje na numer portu i jeżeli będzie to COM1, to „1”, a jeżeli COM2, to należy wpisać „2”. Pozostałe wartości przypisywane są klawiszom od 1 do 8 w kolejności, w jakiej znajdują się w tym pliku. Po wartościach napięć podawane są wartości prądów. Dla uniknięcia błędów, nowe wartości E l e k t ro n i k a d l a Ws z y s t k i c h ustawień należy podawać w takiej formie w jakiej znajdują się w dołączonym pliku „ustaw.txt”. Programowy przycisk „OUT” załącza napięcie do obciążenia, natomiast przycisk „Power” jest wirtualnym wskaźnikiem zasilania, który należy za- Rys. 9 Rys. 10 wsze włączyć, by program zaczął działać. Na rysunku 10 przedstawiam program dostosowany do drugiej wersji programu zapisanego w 89C4051, który jest odzwierciedleniem płyty czołowej zasilacza. Należy zauważyć, że w dołączonym programie obsługi zasilacza pobierany prąd jest wskazywany w drugiej linii, nie ma tam przełącznika trybu wyświetlania. Napisany przeze mnie program można udoskonalić. Jak było wspomniane, program zawarty w 89C4051 napisany został w rewelacyjnym BASCOMie, przy czym 4kb zawarte w mikrokontrolerze zostały wykorzystane całkowicie. Działanie programu nie jest skomplikowane, gdyż polega w znacznej części na obsłudze klawiatury, komunikacji z RS232, przetwornikami i wyświetlaczem LCD. Marcin Wiązania P.S. Pliki programów oraz rysunki płytek drukowanych można ściągnąć ze strony internetowej EdW. 19