Mini płytka testowa AVR z odzysku
W erze Bascoma, Arduino i GCC ciężko pominąć mikrokontrolery w budowanych układach elektronicznych. Zastosowanie w układzie nawet prostego AVR’a pozwala znacznie uprościć płytkę drukowaną, zmniejszyć liczbę elementów i wyposażyć urządzenie w funkcje niedostępne przy wykorzystaniu układów nieprogramowalnych. Warto więc poznać jakąś rodzinę mikrokontrolerów i język programowania. Najpopularniejsze w polskojęzycznym internecie są układy AVR firmy Atmel – bardzo dobre i tanie. Jeśli chodzi o język, to najbardziej optymalny jest moim zdaniem C w połączeniu z darmowym kompilatorem GCC, najwydajniejszy to oczywiście asembler, ale wymaga bardzo dużo pracy programisty. Najprostszy to Bascom Basic, który można opanować w jeden dzień, ale kosztem pochłaniania wątłych zasobów procesora. Platforma Arduino to połączenie języka C i specjalnych bibliotek, sprzęt opiera się na modułach które łączy się jak klocki Lego. Jeśli chcesz się tylko pobawić to warto bliżej przyjrzeć się Bascomowi czy Arduino, jeśli chcesz wycisnąć ile się da z mikrokontrolera, dobrym wyborem będzie język C i później asembler.
Do pełni szczęścia brakuje jeszcze platformy sprzętowej, czyli zestawu uruchomieniowego zwanego też startowym, ewaluacyjnym czy płytką testową. Wartą taką kupić lub zaprojektować i wykonać samemu. Zestaw zawiera najczęściej wyświetlacz LCD afanumeryczny lub graficzny, wyświetlacze 7-segmentowy LED, diody sygnalizacyjne, jakiś buzzer, przyciski, czujniki i oczywiście mikrokontroler oraz wszystko to, co może być przydatne przy projektowaniu i testowaniu układów.
A może mała płytka testowa, może nawet za darmo?
Od jakiegoś czasu leżał u mnie w domu niewykorzystany tuner Cyfrowego Polsatu firmy Echostar model DSB-616. Postanowiłem go rozkręcić i sprawdzić co może mi się przydać, a co po prostu wyrzucę. Okazało się, że mała płytka z czterema wyświetlaczami LED zawiera również układ ATtiny2313 i z powodzeniem może służyć jako mini zestaw startowy lub część jakiegoś większego urządzenia.
Poszukałem trochę na internecie i okazało się, że na taki pomysł kilka osób wpadło już wcześniej, a podobną płytkę posiada dekoder DSB-717. Przykład wykorzystania jako termometr można znaleźć tutaj: Tani termometr cyfrowy czyli jak wykorzystać panel DSB-717.
Wymontowanie płytki z Echostara DSB-616 jest proste – 3 śruby górnej części obudowy znajdujące się z tyłu, trzy zatrzaski na dole i dwa na górze będące częścią przedniego panelu:
Płytka, nazwana przez producenta dekodera Atmel_DISPLAY jest przykręcona 2 wkrętami do obudowy, po ich odkręceniu można ją wysunąć z 5-pinowego gniazdka:
Schemat płytki Atmel_DISPLAY
Szukałem w internecie schematu tej płytki, ale bez powodzenia. Znajduje się na niej tylko kilka elementów więc postanowiłem go odtworzyć. Będzie on potrzebny podczas pisania programów.
Można go również pobrać w formacie PDF – Schemat płytki Atmel_DISPLAY. Jeśli zauważyłeś błąd, daj znać, zrobię poprawkę.
Dla późniejszej wygody, opisałem również gniazdo z goldpinami, tak by łatwiej było podłączać programator i inne elementy.
Co jeszcze może się przydać z dekodera?
Prócz płytki z ATtiny, Echostar nie posiada zbyt wiele przydatnych części. Ja wylutowałem jeszcze odbiornik podczerwieni – przyda się w przyszłości do odbierania sygnałów z pilota. Bardzo przydatny będzie kolorowy przewód – odlutuj go koniecznie z małej płytki z przyciskami i diodą – wtyk tego kabla pasuje do goldpinów mini płytki testowej, płytka z przyciskami też się przyda. Z dekodera wyjąłem jeszcze sprawny bezpiecznik, płytkę z gniazdami chinch, wylutowałem dwa rezystory o mocy 2W. Przydać też może się sama obudowa. Nie polecam odzyskiwania kondensatorów elektrolitycznych – pracowały w niekorzystnych warunkach i pewnie są powysychane, zresztą to najbardziej zawodne elementy tego tunera.
Mam płytkę, co dalej?
Opis niewielkiej przeróbki zwiększającej funkcjonalność płytki znajduje się tutaj: Usprawnienie mini płytki testowej AVR z dekodera Cyfrowego Polsatu. Instrukcję budowy banalnie prostego, ale użytecznego programatora zamieściłem tutaj: Najprostszy programator AVR za 3zł do mini płytki testowej. W tym wpisie udostępniłem prosty program, który sprawdza, czy płytka działa prawidłowo: Test mini płytki AVR z ATtiny2313 – pierwszy program.
Jeśli nie masz dekodera DSB-616 lub DSB-717, a uważasz, że płytka jest interesująca, popytaj znajomych, może gdzieś leży u nich zapomniany, lub sprawdź na allegro – często pojawiają się aukcje od 1zł z nikłym zainteresowaniem, więc można zdobyć całość za ~15zł lub mniej gdy można odebrać osobiście.
Przydatne linki:
- Usprawnienie mini płytki testowej AVR z dekodera Cyfrowego Polsatu – czyli jak płytkę Atmel_display uczynić jeszcze bardziej użyteczną.
- Najprostszy programator AVR za 3zł do mini płytki testowej – programator LPT do mikrokontrolerów AVR.
- Instalacja narzędzi dla AVR i IDE Eclipse w Linux Mint – wygodne, zintegrowane środowisko do pisania i kompilowania programów oraz programowania mikrokontrolerów.
- Test mini płytki AVR z ATtiny2313 – pierwszy program – kilka linijek kodu napisanego w C, dzięki którym dowiemy się, czy nasza płytka jest sprawna.
Bardzo przydatny artykuł 😉 Dzięki niemu udało mi się wykorzystać ten moduł z dekodera do własnych celów. Najbardziej przydatny był oczywiście schemat i opis gniazda z goldpinami dzięki któremu podłączyłem moduł do programatora i obecnie testuję na nim program do multipleksowanego wyświetlania liczb ;]
Och, grande gracias za ten tutorial.
Też gdzieś w 2013 roku zrobiłem sobie z tego maleństwa zegarek do kuchni. Ale przez błędy młodości i fatalną konstrukcję, w końcu po 8 latach padł jakiś element. Trochę mi zajęło przekopywanie googla nim znów tu trafiłem. I dzięki Twojemu schematowi – spalony rezystorek zlokalizowany, wymieniony, zegareczek nadal tyka.
Cheers!
Witam, i od razu bardzo dziekuje za opis modulu Atmel_display. Wlasnie wszedlem w jego posiadanie i jako wielki amator projektow bazujacych na Arduino chcialem spytac, czy mozna dowiedziec sie jakim protokolem posluguje sie ten modul? Zastanawiam sie jak wykorzystac ten modul do ogolnych zastosowan. Bede wdzieczny za informacje. Radek
I2C, ale nie znam specyfikacji, trzeba by podłączyć analizator i podsłuchać transmisję między tunerem a płytką.
Znalazłem opis kiedyś w necie, opis ten nie jest mój. Mam nadzieje ze komuś się tutaj przyda 🙂
Cała ramka wysłana do wyświetlacza zawiera zawsze 7 bajtów. Trzy pierwsze bajty są zawsze takie same, cztery kolejne to cyfry wyświetlane na wyświetlaczu. 4 bajt w ramce to pierwszy wyświetlacz od lewej, 7 pierwszy od prawej.
Trzy pierwsze bajty to zawsze 0x70,0x00,0x07. Bajty cyfr to:
0 0x3F
1 0x09
2 0x6E
3 0x6D
4 0x59
5 0x75
6 0x77
7 0x29
8 0x7F
9 0x7D
pusty segment 0x00
Chcąc wyświetlić na wyświetlaczu 1234 należy wysłać ramkę:
0x70, 0x00, 0x07, 0x09, 0x6E, 0x6D, 0x59.
Adres wyświetlacza 112, predkość bitrate ok 50, przy 100 wyświetlacz czasem się zawiesza lub pokazuje krzaki.
Od siebie dodam ze testowałem to na wyświetlaczu DSB717. Zarówno z mikrokontrolera wyświetlacza DSB616 jak i DSB717 można odczytać wsad z mikrokontrolera i zachować go na później. Oba wsady się różnią miedzy sobą.
Dzięki, przydatny materiał.
Przeglądałem dziś stary dysk i znalazłem dodatkowe rzeczy do tego modułu czyli dodatkowe znaki które można wyswietlic. Kiedyś testowałem chyba wszystkie 225 możliwości…
M 0xBB
E 0x76
n 0xC3
U 0x9F
r 0xC2
kreska 0xC0
C 0xC6
znak stopnia 0XF8
A 0xFB
F 0xF2
d 0xCF
L 0x96