Plik .PACK zawiera między innymi konfigurację wyprowadzeń mikrokontrolera. Po jego wczytaniu jest ona dostępna w pliku configuration.xml, w zakładce Pins pespektywy Configurations bezpłatnego środowiska e2studio. Zdefiniowano tu wstępnie przypisania wyprowadzeń modułów ADC0, D I2C AC12. SCI, I2C i UFBS do wyprowadzeń mikrokontrolera. Na przykład, w standardzie Arduino interfejs I2C jest wyprowadzony na piny 9 i 10 złącza J6. Do tego złącza są doł?czone sygna?y z?port?w P205 i?P206, skonfigurowane jako linie SDA i?SCL portu szeregowego Iączone sygnały z portów P205 i P206, skonfigurowane jako linie SDA i SCL portu szeregowego I2C. Pokazane to na rysunku 10. Jeżeli użytkownik chce korzystać z interfejsów komunikacyjnych, dla których przygotowano konfiguracje Pins, to musi zdefiniować drivery do układów peryferyjnych. Na rysunku 11 pokazano przykład dodawania drivera dla interfejsu I2C.
Działanie modułu z atrakcyjnymi układami peryferyjnymi można przetestować natychmiast po zakupie, ponieważ producent dystrybuuje moduł z wgranym programem testowym. Jest to dość zaawansowana aplikacja, odczytująca dane ze wszystkich sensorów i przesyłająca je poprzez łącze Bluetooth do aplikacji uruchamianej na smartfonie lub tablecie pracującego po kontrolą systemu Android, lub iOS. Równolegle dane są wyświetlane na wyświetlaczu graficznym dołączonym do modułu przez złącza w standardzie Arduino. Wyświetlacz jest jednym z elementów zestawu ARIS i może być oferowany w komplecie w modułem Aris Edge S3A3 (rysunek 12).
Aplikacja działa po kontrolą RTOS i realizuje trzy wątki – pokazano je na rysunku 13:
- Sensor Thread. Ten wątek odczytuje dane ze wszystkich sensorów.
- BLE Thread. Ten wątek realizuje połączenie z aplikacją smartfonu poprzez Bluetooth i przesyła dane.
- Console Thread. Ten wątek periodycznie odczytuje dostępne dane z sensorów i wysyła je przez USB (emulacja UART) do konsoli, w której można je analizować.
Aby uruchomić aplikację współpracującą z programem testowym na telefonie, ze sklepu Google Play (dla smartfonu z systemem Android) należy pobrać i zainstalować aplikację ARIS Tools Reloc mobile. Po zasileniu modułu Aris Edge S3A3 z wgranym programem demonstracyjnym uruchamiamy aplikację na smartfonie. Aplikacja prosi o włączenie interfejsu Bluetooth w telefonie (jeżeli nie był włączony) i rozpoczyna skanowanie włączonych modułów, będących w zasięgu Bluetooth. Dane wykrytego modułu zostaną wyświetlone na ekranie. Pokazano to na rysunku 14.
Po kliknięciu na identyfikator modułu zostaje wyświetlone okno pokazane na rysunku 15 zawierające:
- pomiary temperatury, wilgotności i ciśnienie z czujnika BME280,
- dane z czujnika BNO055 (akcelerometr, żyroskop oraz magnetometr),
- natężeniem oświetlenia z czujnika AMS TSL25711FN,
- stan diod LED : niebieskiej i pomarańczowej z płytki modułu oraz niebieskiej z modułu BLE.
Klikając na ikony diod LED można je zdalnie, cyklicznie zaświecać i gasić. Aplikacja ma też drugi ekran, na którym są wyświetlane dane odczytywane z czujników w postaci wykresu, jak na rysunku 16. Można na nim obserwować tendencje zmian mierzonych parametrów.
Jak już wspomniałem, równolegle z wyświetlaniem na ekranie smartfonu, dane odczytywane z czujników są wyświetlane na dołączonym do modułu wyświetlaczu LCD z wbudowanym panelem dotykowym, jak na fotografii 17. Na fotografii 18 pokazano ekran LCD z ekranem wyświetlania danych pogodowych i ekran smartfonu z uruchomioną aplikacją ARIS Edge Demo.
W module wyświetlacza użyto kolorowej matrycy TFT o rozdzielczości 176×220 pikseli, sterowanej przez specjalizowany sterownik Ilitek ILI9225. Wybrane właściwości ILI 9225 wymieniono niżej:
- Sterowanie matrycą kolorowego wyświetlacza o rozdzielczości 175×220 pikseli.
- Wbudowana pamięć obrazu RAM.
- Interfejsy komunikacyjne: Intel 8080 z magistralą o szerokości 8, 9, 16 lub 18 bitów; Motorola 68000 z magistralą o szerokości 8, 9, 16 lub 18 bitów; szeregowy SPI.
- Funkcja adresowania obszaru okna (definiowany obszar prostokąta) w pamięci obrazu RAM.
- Możliwość programowej zmiany orientacji wyświetlanej informacji na ekranie.
- Zasilanie napięciem z zakresu 2,5…3,3 V.
- Wbudowany układ pompy ładunkowej do uzyskiwania podwyższonego napięcia zasilającego drivery sterujące pikselami matrycy.
Sterowanie wyświetlaniem odbywa się przez zapisywanie rejestrów sterujących, oraz zapisywanie pamięci obrazu RAM. Sterownik zapewnia wszystkie niezbędne układy potrzebne do prawidłowego sterownia matrycą:
- Programowo sterowany układ generowania poziomu napięcia zasilającego drivery.
- Układ generowania przebiegów czasowych. Źródłem sygnału zegarowego jest wbudowany oscylator RC z możliwością ustalania częstotliwości pracy przez dołączany rezystor zewnętrzny.
- Liczniki adresujące pamięć obrazu RAM.
- Układy interfejsów komunikacyjnych.
Moduły wyświetlacza z wbudowanymi sterownikami mogą komunikować się z mikrokontrolerami przez magistrale równoległe lub szeregowe. W systemach, w których jest niezbędna szybka wymiana dużych ilości danych (np. animacje graficzne) warto rozważyć stosowanie interfejsu równoległego. Jest to jednak kłopotliwe, ponieważ wymaga użycia wielu linii portów i realizacji dużej linii połączeń. W wielu wypadkach do komunikacji z wyświetlaczem wystarczy szybki interfejs szeregowy. W wyświetlaczu do modułu Aris Edge S3A3 wybrano interfejs SPI złożony z linii:
- LCD_MOSI – linia danych wysyłanych z mikrokontrolera do sterownika wyświetlacza.
- LCD_SCLK – linia zegara taktującego przesyłaniem danych.
- LCD_CS – linia wyboru aktywnego układu na magistrali SPI.
- LCD_DC – linia sterująca przeznaczeniem zapisywanych danych. Dla DC=„L” dane są zapisywane w rejestrach sterujących, a dla DC=„H” dane są zapisywane w pamięci obrazu.
Na rysunku 19 pokazano przykład przebiegów elektrycznych na magistrali podczas zapisu rejestru sterującego daną. Jak widać, wymaga to transferu dwóch bajtów: indeksu rejestru (komendy) i następnie danej wpisywanej do rejestru zaadresowanego przez pierwszy bajt. Przebiegi sterujące dla wszystkich możliwych transferów danych można znaleźć w dokumentacji sterownika. Interfejs jest uzupełniony o linię zerowania LCD_RESET# i linię LCD_BL sterującą jasnością podświetlania panelu TFT. Linia LCD_BL jest sterowania przebiegiem PWM, jak na rysunku 20. Wyprowadzenia sygnałów magistrali sterującej SPI i sygnałów dodatkowych pokazano na rysunku 21.
Wbudowany w wyświetlacz rezystancyjny, 4-przewodowy panel dotykowy obsługuje specjalizowany sterownik SX8676. Analogowe sygnały z wyprowadzeń panelu X+, X–, Y+ i Y– są mierzone przez wbudowane przetworniki analogowo-cyfrowe. Zmierzone wartości podlegają cyfrowej obróbce i po tym procesie można je odczytywać z układu przez interfejs I2C. Na rysunku 22 pokazano fragment schematu z układem sterownika panelu, a na rysunku 23 sposób dołączenia linii interfejsu I2C i sygnałów dodatkowych do wyprowadzeń modułu wyświetlacza.
Tomasz Jabłoński, EP