Interfejs klawiatury bezstykowej TSI/TSS w mikrokontrolerach Kinetis firmy Freescale

Przypadek ten dotyczy zainicjowania dwunastu wyprowadzeń do pracy jako kanały modułu TSI. Numer przypisany elektrodzie jest istotny w przypadku włączenia opcji decoder control option, co przedstawiono w listingu 2.

 

Listing 2.

 

Elektrody zostały pogrupowane. W pierwszej grupie znajduje się dziesięć elektrod (od E0 do E9), natomiast w drugiej dwie (E10 i E11).

Źródło wyzwalania

Odczyt stanów przycisków klawiatury jest procesem asynchronicznym (wykonywanym każdorazowo tylko wtedy, gdy wywołana zostanie funkcja TSS_Task). Ustawienie źródła wyzwalania jest nową funkcjonalnością umożliwiającą konfigurację procesu skanowania elektrod w trzech tryba pracy:

  • Always: proces skanowania nigdy się nie kończy. Po zakończeniu danego cyklu skanowania wykonywany jest od razu następny
  • Software: proces skanowania wykonywany jest tylko wtedy, gdy wynika to z kodu źródłowego
  • Auto: po zakończeniu danego cyklu skanowania następuje przerwa o czasie ustalonym przez użytkownika, po upływie której proces skanowania jest powtarzany

Poniżej na listingu 3 przedstawiono przykład konfiguracji źródła wyzwalania w trybie Auto. Należy pamiętać, że na parametry pracy źródła wyzwalania mają wpływ ma źródło sygnału zegarowego, podzielnik zegara i prescaler zegara.

 

Listing 3.

 

Okres skanowania jest ustalany za pomocą 8-bitowego rejestru. Dozwolone wartości należą do przedziału 1-255.

Praca w trybie o obniżonym poborze prądu

Moduł TSI może być aktywny podczas pracy mikrokontrolera w trybie uśpienia o niskim poborze prądu. Jeśli wykryte zostanie dotknięcie któregoś z dołączonych do układu pól czujnikowych, moduł TSI jest w stanie wybudzić mikrokontroler. W takich okolicznościach możliwa jest konfiguracja trzech parametrów pracy modułu TSI:

  • Wybranie elektrod, które będą skanowane
  • Ustawienie okresu skanowania o niskim poborze prądu (dłuższy okres pomiędzy kolejnymi procesami skanowania zmniejsza zużycie prądu)
  • Konfiguracja czułości w procesie skanowania

Funkcjonalność modułu TSI jest zależna od ustawionego trybu oszczędzania energii. Część trybów umożliwia skanowanie wszystkich elektrod, część natomiast jest w stanie zapewnić skanowanie tylko wybranych elektrod. Przykład kodu konfigurującego działanie modułu TSI w trybie pracy mikrokontrolera o obniżonym poborze prądu przedstawiono w listingu 4.

 

Listing 4.

 

Zmienne konfigurujące moduł TSI

Moduł TSI posiada szeroki zakres konfiguracji w celu jak najlepszego dostosowania jego działania do danej aplikacji. W bibliotece TSS znajdują się zmienne umożliwiające wykonanie odpowiednich ustawień. Na rysunku 4 przedstawiono konfigurację modułu TSI za pomocą narzędzia System Setup Creator, natomiast na rysunku 5 zilustrowano konfigurację z wykorzystaniem programu Processor Expert.

 

Rys. 4. Konfiguracja modułu TSI za pomocą narzędzia System Setup Creator

Rys. 4. Konfiguracja modułu TSI za pomocą narzędzia System Setup Creator

 

 

Rys. 5. konfigurację modułu TSI z wykorzystaniem programu Processor Expert

Rys. 5. konfigurację modułu TSI z wykorzystaniem programu Processor Expert

 

 

W trybie normalnej pracy mikrokontrolera zdefiniować można parametry takie jak: źródło sygnału zegarowego, podzielnik zegara i prescaler zegara. Przykład kodu przedstawiono w listingu 5.

 

Listing 5.

 

W trybie pracy o obniżonym poborze prądu jednym z parametrów, które można skonfigurować, jest źródło sygnału zegarowego (listing 6).

 

Listing 6.

#define TSS_TSI_GENCS_LPCLKS 0 /* Low Power Mode Clock Source (0 = LPOCLK, 1 = VLPOSCCLK ) */

 

O autorze