5 sierpnia 2010

MSP430 i wyświetlacz

Przygód z płytką LaunchPad ciąg dalszy. Jako pierwszy program na nową poznaną platformę postanowiłem napisać obsługę wyświetlacza na jakże popularnym sterowniku od Hitachi HD44780.

Zestaw LaunchPad i wyświetlacz LCD 2x40 (CMC240-02)
Od strony technicznej, połączenie płytki do wyświetlacza nie przysporzyło wiele kłopotów. Do tego celu stworzyłem przewody połączeniowe, mające po jednej stronie gniazdo na dwa golpiny, a po drugiej stronie pojedyncze goldpiny zabezpieczone rurką termokurczliwą by zapobiec oderwaniu się przewodu pod wpływem ruchów.

Do komunikacji pomiędzy wyświetlaczem wystarczy sześć żył (cztery linie danych, sygnał zatwierdzenia i wybór rejestru). Ilość została zredukowana do minimum poprzez zastosowanie transmisji 4-bitowej, oraz zwarcie niewykorzystanej linii R/W do masy, co oznacza, że komunikacja odbywa się w jedną stronę - do wyświetlacza, co w zupełności wystarcza do podstawowej obsługi. Napięcie zasilające logikę i matrycę dostarczyłem z portu USB. Do ustawienia kontrastu zastosowałem potencjometr 10kΩ.

Od strony programowej również poszło całkiem gładko. Wyświetlacz 2x40 ma to do siebie, że nie trzeba się  martwić o przechodzenie pomiędzy liniami, adresowanie komórek jest ciągłe na całej długości wierszy. Specyficzne dla tego mikroprocesora fragmenty kodu, to konieczność wyłączenia watchdoga oraz programowa inicjalizacja wewnętrznego oscylatora.
Obsługa wyświetlacza została zrealizowana zgodnie z dokumentacją techniczną. Wysłanie każdego rozkazu odbywa się w dwóch etapach ze względu na wcześniej wspominany sposób transmisji danych. Za wysłanie pojedynczego znaku odpowiada procedura PutChar, która w pierwszej kolejności wysyła 4 najstarsze bity, a następnie cztery najmłodsze bity z bajta znaku. Po wysłaniu ciągu znaków w, program przechodzi do nieskończonej pętli, która pełni rolę sygnalizacyjną, informując o aktywności mikroprocesora.

Dla zainteresowanych, załączam kod źródłowy:

4 sierpnia 2010

Rzut okiem na MSP430

Texas Instruments podjął kolejny krok w kierunku promocji i zainteresowania elektroników/programistów/konstruktorów swą rodziną energooszczędnych mikroprocesorów MSP430.
Dokonali tego poprzez wypuszczenie na rynek nowej płytki ewaluacyjnej, którą ochrzczono nazwą LaunchPad.

LaunchPad z przylutowanymi gniazdami na goldpiny.

Zestaw sam w sobie jest bardzo bogaty, bowiem składa się prócz z samej płytki z MSP430G2211IN14 w podstawce, dodatkowo z:
  • dodatkowego mikroprocesora MSP430G2231IN14
  • pary goldpinów jednorzędowych wraz z gniazdami pod nie, 
  • zegarkowego rezonatora kwarcowego (32.768kHz),
  • kabla mini USB,
  • dwóch naklejek z logo LaunchPad.

8 stycznia 2010

Termometr i BSD - software

Oto kolejna część moich zmagań z uruchomieniem termometru na systemie NetBSD. Jak już wcześniej wspominałem w moim poprzednim wpisie, ta część nie należała do najłatwiejszych z powodu kilku problemów, które chciałem w tym miejscu przedstawić.

Pierwszy problem pojawił się przy próbie kompilacji aplikacji Digitemp. Otóż wina leżała w nieprawidłowej ścieżce do jednego z plików nagłówkowych, tą kwestię szybko udało mi się rozwiązać patchem:
--- Digitemp-3.6.0.Orig/src/digitemp.C 2008-08-28 06:42:48.000000000 +0200 +++ digitemp-3.6.0/src/digitemp.c 2009-12-22 23:05:46.000000000 +0100 @@ -79,10 +79,10 @@ #if DARWIN #include <machine/endian.h> #endif -#if FREEBSD +#if FREEBSD || NETBSD #include <sys/endian.h> #endif -#if !defined(DARWIN) && !defined(FREEBSD) +#if !defined(DARWIN) && !defined(FREEBSD) && !defined(NETBSD) #include <endian.h> #endif

7 stycznia 2010

Termometr i BSD

Już od dłuższego czasu przymierzałem się do spożytkowania w jakiś sposób mojego terminala Sumo ST166, który udało mi się zdobyć za całkiem dobrą sumę.
Mając na uwadze obecnie panujące temperatury na zewnątrz, których bądź co bądź do życia codziennego znajomość jest przydatna - zdecydowałem aby zbudować termometr na bazie tego właśnie terminala.

Moja przygoda z ST166 zaczęła sie już jakiś czas temu, kiedy zdecydowałem się na jego zakup, już z zamysłem zainstalowania na nim mojego ulubionego systemu z rodziny *BSD: NetBSD. Domyślnie terminal funkcjonował na Windows CE, jego zmiana nie przysporzyła wiele problemów, sprowadziło się to na zamianie nośnika z dedykowanej pamięci flash na adapter ATA <-> Compact Flash. Z początku obawiałem się jak rozwiążę połączenie pomiędzy adapterem a zminiaturyzowanym złączem ATA, lecz problem szybko się rozwiązał po tym jak znalazłem idealnie pasującą tasiemkę w starym laptopie marki EPSON. Karta CF, jaką zastosowałem ma pojemność 2GB, co w zupełności wystarcza na rozszerzoną opcję instalacji NetBSD, sama instalacja systemu przebiegła bardzo sprawnie i bezproblemowo.