LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

Obsługa kontrolera klawiatur pojemnościowych w mikrokontrolerach Freescale Kinetis

Dotykowe interfejsy użytkownika stają się elementem coraz popularniej stosowanym w urządzeniach elektronicznych. Znajdują zastosowanie w produktach różnego rodzaju, począwszy od aplikacji przemysłowych takich jak panele sterujące, a skończywszy na przenośnych urządzeniach powszechnego użytku. Obecnie istnieje wiele technologii pozwalających projektantom na implementację interfejsów dotykowych, jednak najpowszechniejszą z nich jest metoda pojemnościowa.

 

 

Inne artykuły o kontrolerach klawiatur dotykowych z oferty Freescale:

prezentacja układu MPR121,

przegląd rozwiązań bezstykowych firmy Freescale,

opis oprogramowania Xtrinsic Touch Sensing,

przegląd interfejsów bezstykowych firmy Freescale,

przegląd zasad projektowania klawiatur bezstykowych,

opis rozwiązań bezstykowych w TowerSystem.

Dotychczas najpopularniejszym sposobem implementacji interfejsu użytkownika opartego na metodzie pojemnościowej było wykorzystanie mikrokontrolera z zewnętrznym układem sterownika klawiatur pojemnościowych, bądź mikrokontrolera wykorzystującego biblioteki programistyczne z kodem źródłowym algorytmów odczytu stanów przycisków klawiatur pojemnościowych. Firma Freescale poszła o krok dalej, integrując kontroler klawiatur pojemnościowych o nazwie TSI (Touch Sense Input) w swoich 32-bitowych mikrokontrolerach z rodziny Kinetis.

Zasada działania TSI

Podstawowym elementem obwodu z przyciskiem pojemnościowym jest tak zwana elektroda. Jest to składająca się z materiału przewodzącego prąd powierzchnia, na której znajduje się materiał nieprzewodzący np. plastik lub szkło. Taka konstrukcja tworzy przycisk, który jest dotykany przez użytkownika urządzenia. Powierzchnia przycisku jest kondensatorem, którego pojemność zmienia się w momencie zbliżenia lub oddalenia palca dłoni, co wywołuje odpowiednio efekt zwiększenia i zmniejszenia wartości pojemności kondensatora (rysunek 1). Dołączony do elektrody mechanizm pomiaru pojemności jest w stanie odróżnić stan wciśniętego przycisku od stanu niewciśniętego przycisku.

 

Rys. 1. Model pojemnościowy przycisku dotykowego

Rys. 1. Model pojemnościowy przycisku dotykowego

 

Popularną metodą odczytu stanu przycisku pojemnościowego jest tak zwana metoda RC. Wykorzystuje ona zewnętrzny rezystor (typowo o rezystancji około 1 M?), który umieszczony jest między ścieżką płytki PCB prowadzącą z elektrody do mikrokontrolera lub sterownika klawiatur pojemnościowych, a napięciem zasilania (a więc jest to rezystor typu pull-up). Proces odczytu stanu przycisku polega na pomiarze czasu naładowania kondensatora. W przypadku nienaciśniętego przycisku pojemność jest mniejsza, zatem czas potrzebny do naładowania kondensatora jest krótki. W momencie naciśnięcia przycisku pojemność wzrasta, co skutkuje dłuższym czasem niezbędnym do jego naładowania. Metoda ta, choć prosta i nie wymagająca zaawansowanych zasobów i skomplikowanych obliczeń, ma jednak słaby punkt, którym jest podatność zewnętrznego rezystora na wpływ zakłóceń. Z tego względu w mikrokontrolerach Kinetis zastosowano inną metodę odczytu stanu przycisków. W celu ładowania i rozładowywania elektrody będącej kondensatorem wykorzystywane są dwa źródła prądowe (po jednym oddzielenie dla ładowania i rozładowywania). Schemat takiego mechanizmu pokazano na rysunku 2.

 

Rys. 2. Struktura wewnętrzna obwodu ładowania i rozładowywania kondensatora elektrody

Rys. 2. Struktura wewnętrzna obwodu ładowania i rozładowywania kondensatora elektrody

 

Cykliczne ładowanie i rozładowywanie kondensatora daje w efekcie sygnał napięciowy o kształcie trójkąta. Czas ładowania (zbocze rosnące sygnału) jest proporcjonalny do wydajności prądowej źródła prądowego i pojemności kondensatora. Wzór przedstawiający tą zależność wygląda następująco:

 

Czas ładowania kondensatora mierzony jest z wykorzystaniem wewnętrznego oscylatora, niezależnego dla każdej z elektrod. Cały moduł TSI również taktowany jest z wewnętrznego zegara. Takie rozwiązanie zwiększa dokładność pomiaru, gdyż wszystkie mechanizmy zegarowe są zintegrowane w tym samym układzie, dzięki czemu elementy te pracują w takich samych warunkach podlegających tym samym zmianom temperaturowym i napięciowym. Na rysunku 3 pokazano przebieg sygnału taktującego moduł TSI (linia niebieska) i przebieg sygnału ładującego i rozładowującego pojedynczą elektrodę. Warto zwrócić uwagę na zmianę okresu sygnału ładowania i rozładowania kondensatora w momencie wciśnięcia przycisku.

 

Rys. 3. Przebieg sygnału taktującego moduł TSI (linia niebieska) i przebieg sygnału ładującego i rozładowującego pojedynczą elektrodę

Rys. 3. Przebieg sygnału taktującego moduł TSI (linia niebieska) i przebieg sygnału ładującego i rozładowującego pojedynczą elektrodę

 

Polski portal branżowy dedykowany zagadnieniom elektroniki. Przeznaczony jest dla inżynierów i konstruktorów, projektantów hardware i programistów oraz dla studentów uczelni technicznych i miłośników elektroniki. Zaglądają tu właściciele startupów, dyrektorzy działów R&D, zarządzający średniego szczebla i prezesi dużych przedsiębiorstw. Oprócz artykułów technicznych, czytelnik znajdzie tu porady i pełne kursy przedmiotowe, informacje o trendach w elektronice, a także oferty pracy. Przeczyta wywiady, przejrzy aktualności z branży w kraju i na świecie oraz zadeklaruje swój udział w wydarzeniach, szkoleniach i konferencjach. Mikrokontroler.pl pełni również rolę patrona medialnego imprez targowych, konkursów, hackathonów i seminariów. Zapraszamy do współpracy!