Interfejs klawiatury bezstykowej TSI/TSS w mikrokontrolerach Kinetis firmy Freescale

Niezależnie od trybu pracy, parametrami podlegającymi modyfikacji są np. rozdzielczość pomiaru modułu TSI oraz wartości graniczne auto-kalibracji. Jednostką wartości rozdzielczości pomiaru są bity. Im większa wartość rozdzielczości, tym większa czułość pomiarowa. Z kolei im mniejsza wartość rozdzielczości, tym większa odporność systemu na zakłócenia. Parametry graniczne auto-kalibracji to minimalna i maksymalna wartość prądu ładowania pochodząca z sygnału zegarowego oraz minimalna i maksymalna wartość prescalera zewnętrznego sygnału zegarowego. Podobnie jak w przypadku rozdzielczości, większa wartość prądu ładowania poprawia czułość systemu, natomiast mniejsza wartość prądu ładowania zwiększa odporność na zakłócenia. Zakres prescalera ustala liczbę zbieranych próbek sygnału, co wpływa na czułość pomiaru. Przykładowy kod realizujący konfigurację omówionych parametrów przedstawiono w listingu 7.

 

Listing 7.

 

Dostrajanie TSI

Jednym z najtrudniejszych etapów rozwijania projektu wykorzystującego klawiaturę dotykową jest dostrojenie elektrod. Aby uprościć to zadanie wykorzystano narzędzie FreeMaster, które pokazuje „na żywo” wartości zmiennych z biblioteki TSS. Wartości zmiennych mogą zostać sprawdzone również w środowisku CodeWarrior podczas debugowania, jednak narzędzie to nie zawsze oferuje podgląd zmiennych „na żywo”.

Pierwszym parametrem, który należy ustawić, jest rozdzielczość pomiaru. Czynność tą można wykonać za pomocą dowolnego narzędzia współpracującego z biblioteką TSS lub bezpośrednio w kodzie źródłowym projektu (plik TSS_SystemSetup.h). Teraz należy uruchomić aplikację i obserwować wartości w tablicy tss_au16ElecBasline[] (wartości delta) i tss_ai8InstantDelta[] (wartości bazowe). Wartości powinny się zwiększać w momencie zbliżenia palca do obszarów pól czujnikowych. Jeśli w tablicy tss_ai8InstantDelta[] nie pojawiają się żadne wartości, bądź zmiany są bardzo małe, należy zwiększyć wartość prescalera sygnału zegarowego tak, aby wartości tablicy osiągnęły poziom między 20 i 70. Im większe wartości, tym większa czułość pomiaru. Na rysunku 6 przedstawiono pomiar sygnału na elektrodzie E3. Wartość czułości pomiaru jest zbyt niska (wartość delta wynosi 8, a wartość bazowa 169).

 

Rys. 6. Wykres wartości delta dla elektrody E3 w warunkach zbyt małej czułości pomiaru

Rys. 6. Wykres wartości delta dla elektrody E3 w warunkach zbyt małej czułości pomiaru

 

 

Wartości parametrów odpowiadające temu przypadkowi przedstawiono w listingu 8.

 

Lisitng 8.

 

Równie niepożądana jest sytuacja, gdy czułość jest zbyt duża, co może spowodować przesłuchy (wpływanie sygnałów z sąsiednich elektrod na siebie nawzajem). W tym wypadku należy zmniejszyć wartość prescalera sygnału zegarowego. Opisaną sytuację zilustrowano na rysunku 7. Wartość bazowa wynosi 6885, a wartość delta 127.

 

Rys. 7. Wykres wartości delta dla elektrody E3 w warunkach zbyt dużej czułości pomiaru

Rys. 7. Wykres wartości delta dla elektrody E3 w warunkach zbyt dużej czułości pomiaru

 

 

Wartości parametrów odpowiadające temu przypadkowi przedstawiono w listingu 9.

 

Lisitng 9.

 

Kolejny przykład przedstawiono na rysunku 8. Dla tego przypadku wartość bazowa wynosi 896, a wartość delta 40. Wartością, której modyfikacja jest wskazana w tej sytuacji w celu zwiększenia czułości jest liczba próbek pomiarowych.

 

Rys. 8. Wykres wartości delta dla elektrody E3

Rys. 8. Wykres wartości delta dla elektrody E3

 

 

Wartości parametrów odpowiadające temu przypadkowi przedstawiono w listingu 10.

 

Lisitng 10.

 

Na rysunku 9 przedstawiono sygnał, którego wartość delta wynosi 100, a wartość bazowa 1722. Sygnał taki nie będzie wywoływał przesłuchów i jednocześnie będzie odporny na zakłócenia.

 

O autorze