ADuCino360: termometr cyfrowy na mikrokontrolerze ADuCM360 (Cortex-M3 z Analog Devices)

Układ ADuCM360 to kolejny „analogowy” mikrokontroler z oferty Analog Devices, wyposażony w rdzeń Cortex-M3 oraz liczne peryferia. Ze szczególną starannością zaprojektowano bloki analogowe, czego należało oczekiwać po producencie. Nie zapomniano też o typowych interfejsach, bez których trudno dziś wyobrazić sobie nowoczesny mikrokontroler. W prezentowanym projekcie przedstawiono realizację termometru cyfrowego z zastosowaniem płytki ewaluacyjnej ADuCino (z mikrokontrolerem ADuCM360) i modułu KAmodTFT2.

Na płytce ewaluacyjnej ADuCino 360 (schemat przedstawiono na rysunku 1) zamontowany jest m.in. czujnik temperatury ADT7420. Jest to układ o ultraniskim dryfcie temperaturowym, równym 0,0073?C i dużej, 16-bitowej rozdzielczości, mierzący temperaturę w zakresie od –40 do +150°C.

 

Rys. 1. Schemat ideowy płytki ewaluacyjnej ADuCino360 dla mikrokontrolera ADuCM360

 

Układ komunikuje się z mikrokontrolerem za pośrednictwem interfejsu I2C. Odpowiednie połączenia wykonano na płytce. Uwzględniono przy tym rezystory podciągające 2,2 k ? . Układ ADT7420 ma dwa wejścia adresowe A0 i A1. Na płytce ewaluacyjnej są one dołączone do masy, tym samym adres bazowy czujnika jest ustalony na sztywno i jest równy 0x48. Szczegóły wyjaśniono w dokumentacji układu ADT7420. Należy pamiętać o tym, że adresowanie układów na szynie I2C jest uzupełniane bitem ustalającym kierunek transmisji. Taki bit (READ=1/WRITE=0) zajmuje najmłodszą pozycję, a bazowy adres jest przesunięty o jeden bit w lewo. Ostatecznie cały adres układu zmienia się w zależności od kierunku transmisji, co musi być uwzględnione w programie. Zasadę adresowania układów w interfejsie I2C wyjaśniono na rysunku 2, a w dalszej części artykułu przedstawiono kod źródłowy związany z obsługą transmisji.

 

Rys. 2. Zasada adresowania układów w interfejsie I2C

Rys. 2. Zasada adresowania układów w interfejsie I2C

 

Urządzeniem wyjściowym, na którym wizualizowane są wyniki pomiaru temperatury jest moduł wyświetlacza LCD – KAmodTFT2. Zamontowano na nim popularny wyświetlacz od telefonu Nokia6100 ze sterownikiem PCF8833 (uwaga: spotykane są również wersje wyświetlaczy ze sterownikiem Epsona, obie wersje nie są ze sobą kompatybilne). Matryca 132×132 punkty, mimo stosunkowo niewielkich rozmiarów ekranu (25×25 mm) umożliwia wyświetlanie grafiki z dużą liczbą szczegółów. Wyświetlacz jest skonfigurowany do pracy z 12-bitowym kolorem. Moduł komunikuje się z procesorem via interfejs SPI, przy czym w projekcie ograniczono się jedynie do komunikacji w kierunku od procesora do wyświetlacza. Jest on zerowany sygnałem Reset generowanym przez port P0.0 mikrokontrolera. Schemat połączenia modułu KAmodTFT2 przedstawiono na rysunku 3.

 

Rys. 3. Schemat połączenia modułu wyświetlacza KAmodTFT2 do płytki ewaluacyjnej mikrokontrolera ADuCM360

Rys. 3. Schemat połączenia modułu wyświetlacza KAmodTFT2 do płytki ewaluacyjnej mikrokontrolera ADuCM360

 

Inicjalizacja systemu

Po włączeniu zasilania (lub po zerowaniu) mikrokontroler ADuCM360 nie jest gotowy do pracy. Wszystkiej jego bloki funkcjonalne muszą być odpowiednio do potrzeb skonfigurowane. Te peryferia, które nie są wykorzystywane w aplikacji mogą, a nawet powinny być wyłączone. Konfiguracji wymaga również układ taktowania procesora. Fragment programu odpowiedzialny za prawidłową inicjalizację systemu przedstawiono na listingu 1. W aplikacji nie przewidziano wykorzystywania watchdoga, jest on więc wyłączony. Interfejs I2C zajmuje linie P2.0 (SCL) i P2.1 (SDA), zaś interfejs SPI jest programowo emulowany na liniach P1.7 (CS), P1.6 (MOSI), P1.5 (SCLK). Port P0.0 jest skonfigurowany jako wyjście cyfrowe. W programie konieczne jest ustalenie źródła przebiegu taktującego i jego częstotliwości (przyjęto 16 MHz). Konfigurowane są pozostałe peryferia wykorzystywane w aplikacji. Należy też pamiętać o włączeniu przerwań. W opisywanym programie nie było jednak takiej potrzeby, przerwania są więc wyłączone. Pozostawiono natomiast zakomentowane odpowiednie instrukcje konfigurujące.

 

List. 1. Inicjalizacja systemu

Do pobrania

O autorze