W module SK-S7G2 użyto 16-bitowej magistrali równoległej zajmującej 27 linii portów mikrokontrolera. Moduł wyświetlacza jest połączony z płytką za pomocą taśmy elastycznej i specjalnego złącza. Jeżeli linie sterujące są potrzebne do innych celów, to taśmę można odłączyć.
Na ekranie LCD zamontowano dotykowy panel rezystancyjny ze sterownikiem SX8656 produkowanym przez firmę Semtech. Zmiany rezystancji są mierzone metodą techniczną przez przetworniki A/C o rozdzielczości 12 bitów. Sterownik komunikuje się z mikrokontrolerem za pomocą interfejsu I2C.
Oprogramowanie wyświetlacza graficznego jest pracochłonne. Aby zaoszczędzić czas potrzebny na napisanie na przykład procedur rysowania elementów, wykorzystuje się gotowe biblioteki prekompilowane lub z kodami źródłowymi albo aplikacje generujące procedury na podstawie graficznego projektu ekranu (ekranów) wyświetlacza.
- Środowiska projektowego Synergy e2studio.
- Biblioteki Synergy Software Platform SSP.
- Aplikacji GUIX Studio.
Wymienione programy są dostępne po zarejestrowaniu się na stronie interentowej firmy Renesas.
Projekt e2studio
Pracę zaczynamy od utworzenia i wstępnego skonfigurowania nowego projektu w środowisku e2studio. W tym momencie zakładamy, że e2studio zostało wcześniej skonfigurowane do wspierania projektów utworzonych za pomocą Synergy i że zainstalowano kompilator GCC ARM Embeded z plikiem licencji. Ponadto ze strony Renesasa trzeba pobrać i zainstalować pakiet Synergy Software Package SSP. Te czynności zostały opisane w artykule na temat e2studio.
Nowy projekt musi być spersonalizowany: trzeba mu nadać nazwę – niech to będzie GUIApp. Następnie należy wybrać kompilator (GCC ARM Embeded) oraz podać ścieżkę dostępu do jego pliku licencji (jeśli nie zrobiono tego wcześniej). W kolejnym kroku z listy wspieranych modułów ewaluacyjnych wybieramy S7G2 SK oraz debugger J-Link ARM. W konfiguracji wybieramy opcję S7G2-SK BSP (rysunek 5) Konfigurator utworzy szablon projektu pokazany na rysunku 6.
Projekt interfejsu będzie się opierał na module portu GUIX Synergy umieszczonego w warstwie framework biblioteki SSP. Moduł portu i jego współpraca z warstwami niższymi HAL i warstwą fizyczną został schematycznie pokazany na rysunku 9. Port umożliwia współpracę aplikacji Express Logic GUIX z warstwami Framework i niższymi.
Użycie systemu RTOS powoduje, że przesyłanie danych z/do sterownika wyświetlacza wymaga implementacji specjalnych funkcji komunikacyjnych. W tym wypadku będą to drivery i funkcje API interfejsu SPI. Strukturę interfejsu SPI Framework pokazano na rysunku 14. Jako pierwszy dodajemy driver komunikacji sterownika wyświetlacza z mikrokontrolerem (warstwa HAL). Jak poprzednio, w oknie Main Thread Modules dodajemy moduł New -> Driver -> Connectivity -> SCI Common (rysunek 15), a następnie New -> Driver -> SPI Driver on r_rspi. Dodanie tego ostatniego oraz jego konfigurację pokazano na rysunku 16. W kolejnych dwóch krokach dodajemy framework i driver D/AVE 2D warstwy framework (rysunki 17 i 18).
Jak wspomniano, obsługę interfejsu graficznego zapewnia w bibliotece SSP port GUIX. GUIX zawiera procedury zapewniające wsparcie projektowania interfejsów graficznych za pomocą zewnętrznego narzędzia GUIX Studio – programu dla komputera PC pozwalającego na szybkie projektowanie ekranów interfejsu graficznego z dodawaniem widżetów i przypisywanie im akcji w połączeniu z obsługą ekranu dotykowego. Dodanie funkcji framework GUIX oraz ich konfigurację pokazano na rysunkach 19 i 20.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
W kolejnych krokach trzeba dodać funkcje do obsługi interfejsu dotykowego, do którego obsługi będzie używane przerwanie zewnętrzne. Interfejs dotykowy jest oparty na układzie scalonym SX8656. Zmiana stanu czujnika dotykowego generuje sygnał przerwania IRQ94, a mikrokontroler przez interfejs I2C musi odczytać nowy stan czujnika. Żeby obsłużyć przerwanie zewnętrzne i aby to przerwanie mogło synchronizować działanie wątków RTOS, trzeba dodać funkcje drivera i funkcje framework do obsługi zewnętrznego przerwania IRQ, jak na rysunkach 21 i 22.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Następnie dodajemy funkcje warstwy HAL do obsługi interfejsu I2C. We właściwościach drivera podajemy adres slave 0x48 układu kontrolera panelu dotykowego SX8656. Przy zmianie wszystkich pól name (nazwa) trzeba bardzo dokładnie wpisać nazwy modułów, bo potem do tych nazw będziemy się odnosili w funkcjach warstwy wyższej. Po dodaniu i konfiguracji funkcji obsługi przerwania zewnętrznego i interfejsu I2C trzeba dodać funkcje framework do obsługi panelu dotykowego. We właściwościach podajemy parametry, które będą potrzebne warstwie BSP: rozdzielczość pionową i poziomą w pikselach oraz pin mikrokontrolera przyłączony do zerowania sterownika panelu.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Na tym kończymy dodawanie i konfigurowanie funkcji drivera i frameworka biblioteki SSP niezbędnych do działania naszej aplikacji i przechodzimy do konfigurowania interfejsów komunikacyjnych i wyprowadzeń mikrokontrolera niezbędnych do poprawnego działania warstwy BSP. Na kolejnych rysunkach są pokazane kroki niezbędne do pracy systemu RTOS (rysunki 25, 26 i 27).
Tomasz Jabłoński, EP