Utwórz ekran debugowania dla mikrokontrolerów: 6 kroków

Utwórz ekran debugowania dla mikrokontrolerów: 6 kroków

Spisu treści:

Anonim

Ten ekran jest bardzo przydatny, jeśli pracujesz z funkcją ADC mikrokontrolerów.

Do sterowania wyświetlaczem potrzebne są tylko dwa piny (trzy, jeśli chcesz również kontrolować zatrzask). Z dwoma siedmioma segmentami może wyświetlić do 0xFF jako hex. To jest cały zakres 8-bitowy, co jest najczęściej używaną zmienną szerokością dla małych uC.

Zbudowałem go, ponieważ ostateczna aplikacja nie ma wyświetlacza i chciałem wiedzieć, co się dzieje, zanim to skończę.

Potrzebne są dwa rejestry przesuwne 74HC959, dwa siedmiosegmentowe wyświetlacze i rezystory 14 (16) Potrzebujesz 16, jeśli chcesz użyć kropek, które nie są zaimplementowane w oprogramowaniu. Ale użycie kropek rozszerzyłoby wyświetlane wartości do 10bit lub 0-1027. Zostawię ci to, żeby to rozgryźć.

Kieszonkowe dzieci:

Krok 1: Schemat

Używamy dwóch rejestrów zmianowych 74HC595 do interfejsu wyświetlaczy siedmiosegmentowych. Niezależnie od tego, czy używasz wspólnej anody, czy wspólnej 7-segmentowej katody, musisz dostosować obwód. Użyłem zwykłych katod. Co oznacza, że ​​każdy segment jest jedną zieloną diodą LED, a katody wszystkich diod LED są ze sobą połączone. (Piny 3 i 8 wyświetlacza 7-segmentowego)

Rejestry zmianowe działają w ten sposób:

Za każdym razem, gdy przykładasz impuls do wejścia zmiany, aktualny stan pinów wejścia szeregowego jest przesuwany w pamięci 74HC595. Za każdym razem, gdy impuls na wejściu zatrzasku dochodzi, stan wewnętrznej pamięci jest wykorzystywany do sterowania wyjściami.

Po 8 cyklach zmiany pierwsze wejście jest ponownie przesunięte na pin9 i może być użyte jako wejście do innego 74HC595. Nazywa się to również łańcuchem daisy.

74HC595 może napędzać łącznie do 70 mA, więc musimy dostosować rezystory w taki sposób, aby prąd płynący przez każdy segment LED był poniżej 9 mA, czyli około 470 omów dla 5 V i używanych wyświetlaczy.

Krok 2: Rejestr zmian 75HC595

Spojrzenie na zdjęcie informuje, które szpilki należy podłączyć.

Szpilki są liczone w kierunku przeciwnym do zegara, zaczynając od znaku na IC, jeśli patrzysz na to z góry.

Podłącz pin 1 - 7 i pin 15 do pinów 7-segmentowego.

Pin 8 i 13 muszą być podłączone do masy (GND lub ujemny zacisk akumulatora)

Pin 9 jest podłączony do pin 14 następnego IC.

Pin 10 i pin 16 muszą być podłączone do napięcia zasilania (VCC lub dodatni zacisk akumulatora)

Pin 11, 12 i 14 są interfejsem sterowanym przez mikrokontroler, podłącz je do trój pinowego pinheadera do zewnętrznego interfejsu.

Krok 3: Zbuduj wyświetlacz

Chociaż można było wytrawić niestandardową płytkę drukowaną, zdecydowałem się zbudować całość na płytce z cienkim drutem miedzianym.

Ten drut miedziany jest powlekany, ale powłoka może zostać spalona przy pomocy odrobiny stopionej cyny. Bardzo łatwo jest nawiązać z nim połączenia. Wystarczy cynkować jeden koniec, przylutować go do szpilki, a następnie rozciągnąć go na drugi pin i wypalić izolację, w której chcesz go przylutować. Następnie przylutuj go do szpilki i odetnij resztę. Lutownica o mocy 30 W taka jak ta od Craftsman jest więcej niż wystarczająca do tego zadania.

Użyłem małych rezystorów SMD 1206, ponieważ pasują one dobrze pod siedmiosegmentowymi wyświetlaczami.

Ale przecież sam musisz uzupełnić planszę i oczywiście możesz wziąć dowolny opornik.

Krok 4: Znajdź kolejność segmentów

Wreszcie musimy napisać funkcje, aby wyświetlić coś znaczącego.

Głównym problemem jest teraz znalezienie odpowiedniego segmentu - sekwencji kontrolnej. Najpierw spróbuj przesunąć pojedynczy 1 przez cały rejestr przesuwny.

Zastosuj wysokie do wejścia szeregowego i impulsuj przesunięcie raz. Teraz pulsuj zatrzask raz i zobacz, które segmenty się zapalają.

Jeśli ponownie wciśniesz przycisk zmiany biegów i zatrzasku, następny segment zaświeci się i tak dalej.

W końcu masz kolejność wszystkich segmentów i możesz przenieść je na liczby binarne.

Krok 5: Napisz kod

Chciałem użyć wyświetlacza z moimi mikrokontrolerami AVR. Napisałem więc plik *.h, który można włączyć do dowolnego projektu.

Jeśli podłączyłeś płytę w inny sposób, być może będziesz musiał dostosować tablicę segmentcontrol.

Aby go użyć, musisz dostosować definicje pinów w pliku debug.h (pierwsze 12 linii).

W głównej aplikacji musisz dodać następujące wiersze:

#include „debug.h”

initdebug (); // To inicjuje porty wyjściowe określone w debug.h

Następnie możesz wyświetlić dowolną 8-bitową zmienną, wywołując z nią funkcję debugowania. powiedzmy, że zmienna jest nazywana licznikiem, wtedy bieżąca wartość licznika jest wyświetlana przez:

debugowanie (licznik);

Poradnik:

  • Dodaj trochę czasu opóźnienia po wywołaniu debug (), aby mieć czas na odczyt wartości.
  • Po połączeniu przesunięcia i zatrzasku po prostu zdefiniuj dwa porty dla tego samego pinu. Za każdym razem, gdy wyzwalane jest przesunięcie, blokuje również bieżący stan, co oznacza, że ​​wyświetlacz miga podczas ładowania rejestrów zmian. Jeśli zrobisz to szybko w porównaniu do czasu, w którym wyświetlacz pozostanie, będzie on o.k.
  • Aby wyświetlić wartość 16-bitową, podziel ją przez 256 i wyświetl wynik lub oddziel wysoki bajt i niższy bajt i wyświetl je jeden po drugim z małym hamulcem między nimi.

Krok 6: Przetestuj to

Aby przetestować ekran, wydaje się, że najlepiej jest użyć adaptera do chleba attiny2313, który opublikowałem w tym podręczniku:

www.instructables.com/id/Make-a- breadboard-adapter-for-your-AVR-microcontroller

Program osadzonego wideo liczy od 0 do 0xFF iz powrotem.

Wideo: