Moduł TSI (Touch Sensing Input) to zintegrowane w mikrokontrolerach firmy Freescale (rodziny układów Coldfire+ oraz Kinetis) peryferium, które umożliwia współpracę układów z  pojemnościowymi klawiaturami dotykowymi. Oprócz zasobu sprzętowego wbudowanego w strukturę układów, producent opracował również biblioteką programistyczną TSS (Touch Sensing Software), która przeznaczona jest do obsługi modułu TSI. Moduł TSI wraz biblioteką TSS stanowi kompletne rozwiązanie umożliwiające projektantom budowanie interfejsów użytkownika wykorzystujących klawiatury pojemnościowe.

Jak działa TSI

Do wykrywania zbliżenia palca do przycisku pojemnościowego (elektrody) moduł TSI używa mechanizmu wykorzystującego dwa sygnały zegarowe, jeden wewnętrzny, drugi zewnętrzny. Służą one do ładowania i rozładowywania elektrody, która w ujęciu elektrycznym jest kondensatorem. Zbliżenie do elektrody palca zwiększa pojemność kondensatora, zatem wykrycie naciśnięcia przycisku można wykryć poprzez pomiar czasu ładowania i rozładowania pojemności (czas ładowania jest inny dla pojemności ze zbliżonym palcem i bez niego). Oba sygnały zegarowe mogą być konfigurowane z poziomu modułu TSI, przy czym sygnał zewnętrzny musi mieć mniejszą częstotliwość niż wewnętrzny (rysunek 1).

 

Rys. 1. Przebieg sygnałów zegarowych wykorzystywanych przez moduł TSI (sygnał wewnętrzny – kolor niebieski, sygnał zewnętrzny – kolor czarny)

Rys. 1. Przebieg sygnałów zegarowych wykorzystywanych przez moduł TSI (sygnał wewnętrzny – kolor niebieski, sygnał zewnętrzny – kolor czarny)

 

 

Wszystkie parametry dotyczące sygnałów zegarowych są zapisywane w rejestrach modułu TSI (aktualizacja w każdym cyklu skanowania), dzięki czemu aplikacja główna ma na bieżąco dostęp do informacji o tym, czy wykryte zostało zbliżenie do któregokolwiek z przycisków klawiatury. Bardziej szczegółowy opis mechanizmu działania modułu TSI został przedstawiony w artykule „Obsługa kontrolera klawiatur pojemnościowych w mikrokontrolerach Freescale Kinetis”.

Przewaga modułu TSI nad implementacjami programowymi

Poniżej przedstawiono szereg cech modułu TSI, które są jednocześnie zaletami, jakimi nie mogą się pochwalić programowe implementacje obsługi klawiatur pojemnościowych:

Dodatkowo funkcjonalność modułu TSI jest zwiększona przez bibliotekę TSS, która szczegółowo opisana została w nocie aplikacyjnej TSSAPIRM (Touch Sensing Software API Reference Manual) firmy Freescale.

Projekt wykorzystujący moduł TSI i biblioteki TSS

Powody, dla których warto używać bibliotekę TSS

Bibioteka TSS to modułowe oprogramowanie, które w zależności od potrzeb może zostać wkomponowane w projekt autora w całości, bądź tylko częściowo. Poprzez dołączenie tylko wybranych fragmentów biblioteki i nieuwzględnienie tych niepotrzebnych, można efektywnie zmniejszyć rozmiar kodu źródłowego aplikacji. Biblioteka TSS umożliwia wykonywanie następujących operacji na module TSI:

Stworzenie projektu wykorzystującego bibliotekę TSS

W dalszej części artykułu wybiórczo opisana została konfiguracja i dostępne opcje oferowane przez bibliotekę TSS. Szczegółowy przewodnik dotyczący tworzenia i konfiguracji projektów wykorzystujących bibliotekę TSS został zawarty w nocie firmy Freescale o nazwie TSSUG (Touch Sensing Software Users Guide).

Konfiguracja wyprowadzeń

Konfiguracja bibliotek TSS obejmuje przypisanie wyprowadzeniom mikrokontrolera trybu pracy odpowiadającego modułowi TSI. Na rysunku 2 przedstawiono proces konfiguracji za pomocą narzędzia System Setup Creator, natomiast na rysunku 3 pokazano konfigurację z wykorzystaniem programu Processor Expert.

 

Rys. 2. Xxx Konfiguracja za pomocą narzędzia System Setup Creator

Rys. 2. Xxx Konfiguracja za pomocą narzędzia System Setup Creator

 

 

Rys. 3. Xxx Konfiguracja z wykorzystaniem programu Processor Expert

Rys. 3. Xxx Konfiguracja z wykorzystaniem programu Processor Expert

 

 

Plik nagłówkowy TSS_SystemSetup.h powinien wyglądać tak, jak na listingu 1.

 

Listing 1.