Electric Field Imaging Device - PANEL DOTYKOWY - ELECTRIC FIELD IMAGING DEVICE - E-FIELD - MC34940 - MSP430F123
Mouser Electronics Poland   Przedstawicielstwo Handlowe Paweł Rutkowski   Amper.pl sp. z o.o.  

Energetyka, Automatyka przemysłowa, Elektrotechnika

Dodaj firmę Ogłoszenia Poleć znajomemu Dodaj artykuł Newsletter RSS
strona główna BAZA WIEDZY Electric Field Imaging Device
DIY
drukuj stronę
poleć znajomemu

Electric Field Imaging Device

Przedstawiony projekt panelu dotykowego może być użyty jako część systemu sterowania, znajdując zastosowanie praktycznie wszędzie, poprzez dziedziny przemysłowe, bezpieczeństwa, kontroli dostępu, … po edukacyjne i rozrywkowe.

 

Electric Field Imaging Device „E-Field”

Chęć skonstruowania własnego panelu dotykowego przyszła mi podczas praktycznej realizacji mojej pracy dyplomowej, gdzie wymagane było zastosowanie dużej żywotności bez-awaryjnego przełącznika do sterowania manipulatorem, w ilości większej niż 10 przycisków. Projekt ten polecam wszystkim tym których chcą w swoich własnych urządzeniach zastosować proste rozwiązania paneli dotykowych, jednocześnie zwiększyć funkcjonalność urządzenia oraz poprawić wizualny wygląd projektu.   

Słowa wstępu:

Popularność paneli dotykowych wzrasta z dnia na dzień, ich obecność jest widoczna w szerokiej gamie sprzętu AGD-RTV, przemyśle, rozrywce i wielu innych dziedzinach. Zalety jakie daje nam użycie panelu dotykowego to : dłuższa żywotność (brak styków), możliwość wkomponowania przycisków naszego menu w część obudowy, w krytycznych sytuacjach większą szczelność obudowy co może czynić urządzenie kompletnie zamkniętym, znacznie odpornym na wpływy atmosferyczne.

Prezentowane urządzenie oparte jest o dedykowane układy paneli dotykowych Electric Field Imaging Device „E-Field”  MC34940 firmy Freescale. Zgodnie z rekomendacją producenta, układy mogą również znaleźć zastosowanie w urządzeniach kontrolnych jako wykonawcze panele dotykowe, wykrywanie położenia, urządzenia kontrolne w przemyśle, peryferia komputerowe, pomiar wielkości typu: pomiar poziomu cieczy. Jeden układ potrafi obsłużyć do siedmiu bądź dziewięciu przycisków, które stanowią pady wytrawione na laminacie o niewielkiej powierzchni. Prezentowane urządzenie składa się w 2 układów MC34940 siedmio-przyciskowych, obsługiwanych przez procesor MSP430F123 firmy Teras Instruments, który zapewnia dodatkowo komunikację zewnętrzną między prezentowanym urządzeniem a procesorem wykonawczym w innym większym projekcie, dzięki dwu przewodowej  szynie I2C (SDA.SCL) wraz z wyjściem przerwania IRQ.

 

Opis układu MC34940:

Zastosowany w tym projekcie układ jest dedykowanym panelem dotykowym (siedmio-przyciskowym) firmy Freescale o oznaczeniu MC34940.

Rys.1 Idea działania układów paneli dotykowych

 

Idea działania układu przedstawiona na rysunku 1. Polega na generowaniu sygnału sinusoidalnego o niskiej częstotliwości 120kHz (dobierana poprzez zmianę zewnętrznego rezystora Rosc) o niskiej zawartości pasożytniczych harmonicznych i amplitudzie peak-to-peak 5V. Sygnał następnie jest podawany na zewnętrzną elektrodę (pad na laminacie) oraz wewnętrzny detektor. W chwili przyłożenia palca do elektrody zostaje zaburzony sygnał zmienny o częstotliwości 120kHz, ciało ludzkie tworzy zewnętrzną pojemność do ziemi, co skutkuje pojawieniem się napięcia stałego na wejściu detektora diodowego. Idąc dalej poprzez filtr wygładzający dolno przepustowy  do kolejnego detektora napięcia stałego, który wyznacza czułość panelu, mierząc otrzymaną wartość napięcia stałego. Wartość tego napięcia jest większa czym wytworzy się  mniejszą pojemność przez dotknięcie elektrody. To właśnie ten parametr jest bardzo istotny przy doborze materiału na jaki się decydujemy aby przykryć pady. Zwiększenie pojemności powoduje zmniejszenie czułości, dlatego też nie bez powodu inżynierowie z firmy Freescale zdecydowali się na częstotliwość 120kHz wyznaczającą pojemność rzędu 10-70pF. Aby dobrze dobrać materiał na pokrycie padów koniecznym staje się wyznaczanie przybliżonej pojemności jakiej możemy się spodziewać podczas dotyku, co przedstawia rys2

 

Rys.2 Wyznaczanie przybliżonej pojemności

 

Gdzie:

C – pojemność obliczona

k(εr) - współczynnik mówiący o przenikalności materiału

A – powierzchnia wyrażona w  m2

d – dystans po między elektrodami

ε0 =1 - przenikalność elektryczna w próżni

 

Kilka dodatkowych właściwości materiałowych przedstawia zestawienie w tabeli 1:

 

Substancja

k(εr) 

teflon

2,1

polietylen

2,25

polistyren

2,4-2,7

dwusiarczek węgla

2,6

papier

3,5

krzemionka

3,7

beton

4,5

guma

7

diament

5,5-10

sól kuchenna

3-15

grafit

10-15

krzem

11,68

Tab.1 Właściwości innych materiałów

Jeżeli jednak uznamy, że czułość naszego panelu jest zbyt niska zabiegiem pożądanym jest: a)zmniejszenie częstotliwości pracy generatora do 82kHz przez zmianę wartości zewnętrznego rezystora Rosc z 39kOhm na 20kOhm, co da przybliżoną czułość dla pojemności 150pF.

b)zmiana pojemności filtru dolno przepustowego (LP_CAP) za detektorem, standardowo 10nF daje reakcje 2.5ms, 1nF – 500us. Zabieg ten okupiony jest jednak znawczymi szumami wchodzącymi na detektor napięcia, co może powodować awaryjną pracę układu.

Szczegóły obrazuje rysunek 3 niżej :

 

Rys.3 Napięcie na wejściu detektora w stosunku do pojemności i częstotliwości pracy układu

 

Układ MC34940 daje możliwość obsługi do siedmiu padów (przycisków) E1..E7 wytrawionych na jedno warstwowym laminacie, dostępna jest również wersja z większa ilością MC33794 (9 padów).

Wewnętrzną budowę układu przedstawia rysunek 4.

 

Rys.4 Wewnętrzna budowa układu

 

Wejścia padów (przycisków) E1..E7 posiada zabezpieczenie do 2kV.

Wejścia VCCCAP, VDDCAP zapewniają filtrację napięcia zmiennego i stałego wykorzystywanego wewnątrz układu do prawidłowej pracy. Dołączona zewnętrzna rezystancja  Rosc służy do wyboru częstotliwości z jaką będzie pracował wewnątrz generator nasze układ. W przedstawiony urządzeniu jest to wartość 39kOhm, dając częstotliwość sygnału  zmiennego 120kHz. Komunikacja z Mc34940, którą zapewnia procesor MSP430f123 realizowana jest dzięki 4 przewodowej szynie danych A, B, C, Level.

Podczas pracy sygnał z generatora jest multipleksowany na siedem wyjść do zewnętrznych padów E1..E7, oraz za każdym razem badany jest detektor napięcia stałego.

 

Opis działania:

Urządzenie dedykowanie ma pracować przy zasilaniu bateryjnym 4V-9V. Problemem okazało się uzyskanie z jednego źródła zasilania dwóch napięć stałych wartości 3.3V (wykorzystane przez procesor), 9V(wykorzystane przez układy paneli dotykowych) co wymagało zastosowania dwóch przekształtników napięcia.

Schemat urządzenia przedstawiony jest na rysunku 5.

Na wejściu znajduje się szybki bezpiecznik SMD 100mA. Przełącznik S1 służy do wyboru pracy urządzenia, pozycja górna to normalna praca panelu dotykowego, pozycja dolna to włączenie w obieg baterii układu ładowarki ogniw li-ion, Li-pol, MCP73831. Jest to układ dedykowanej ładowarki ogniw, który w zależności od wersji układu (-1, -2 , -3, -4)zapewnia możliwość ładowania 4.20, 4.35, 4.40, 4.50 V, dodatkowo przez zmianę zewnętrznego rezystora R8 możliwe jest ustalenie prądu ładowania ogniwa. Informację o trwaniu procesu ładowania  zapewnia nam świecąca dioda LED D4. Po włączeniu opcji ładowania należy dołączyć do urządzenia kabel mini USB(rysunek 6) z którego ładowarka pobierze prąd, przy napięciu 5VDC.

 

Rys.5 Schemat urządzenia

 

Rys. 6 Kabel mini USB

 

Użycie MCP73831 może okazać się przydatnym, kiedy zdecydujemy się na zamknięcie naszego urządzenia w obudowie do której dostęp w chwili wymiany baterii może być kłopotliwy.

Pracę panelu sygnalizuje dioda LED D3, za nią znajduje się szybka dioda schottky D2, która zapobiega zmianie polaryzacji baterii, oraz daje możliwość szybkiego przełączania dla przekształtnika napięcia. Z racji zasilania bateryjnego urządzenia, koniecznym stało się użycie przekształtników napięcia MAX882(U2), MAX618(U1). Pierwszy z nich jest w gruncie rzeczy stabilizatorem LDO, C9 C10 C11 to standardowe pojemności filtrujące. Drugi układ jest przekształtnikiem podwyższającym pracujący przy częstotliwości przełączania 250kHz, który zapewnia prąd 12mA dla dwóch układów MC34940, elementy zewnętrzne L, C zostały dobrane tak aby zagwarantować poprawność pracy. R1,R3,R4,R6 to zestawienie rezystorów tak aby w domowych warunkach dobrać łączną rezystancję  710kOhm, wymaganą do zapewnienia napięcia na wyjściu przekształtnika 9VDC.

Dedykowane układy paneli dotykowych MC34940 posiadają wejścia E1..E7 do podłączenia padów, oraz pin SHIELD który daje możliwość dołączenia masy w postaci oplotu przewodów E1..E7 w sytuacji gdy panel dotykowy musi być oddalony od części elektronicznej. Pojemności podłączone pod wejścia VCCCAP, CDDCAP stanowią część układów filtrujących napięcie zmienne i stałe do prawidłowej pracy układów, zaś pod pinem LPCAP znajdują się pojemności filtrujące napięcie stałe przed wejście do głównego detektora napięcia panelu dotykowego.

Sterowanie układem realizowane jest przez wybór wyjścia multipleksera (wybór E1..E7)

Podając odpowiednią kombinację bitową na liniach A, B, C możliwe jest ustawienie  multiplekser na żądany pad.

Po wyborze padu, informację o aktualnie przyłożonym palcu sygnalizuje wyjście 5V LEVEL, które podawane jest na tranzystor BC846 by uzyskać wejściowe napięcie dla procesora 3.3V logicznie widziane jako ‘1’ .

Procesor za każdym razem przełącza na odpowiednie wyjścia padów E1..E7 skanując jednocześnie pojawienie się napięcia LEVEL.

Głównym elementem wykonawczym w urządzeniu jest 16bitowy procesor MSP430f123, zamiennikiem może być również MSP430F1232. Jest to 28pinowy w wersji SMD, przyjazny procesor o napięciu zasilania z zakresu 1.8-3.6V, posiadającym 16-bitową architekturę RISC, 8KB pamięci Flash oraz 256B pamięci Ram. Taktowany rezonatorem kwarcowym 32k768 (zegarkowym).

Programowanie procesora odbywa się poprzez porty J-tag (VCC,GND,TEST,RESET,TDO,TDI,TMS,TCK) co daje możliwość również debugowania pracy przy użyciu przykładowego środowiska IAR. Do procesora dołączone są diody D5..D8,

które początkowo służyły mi w celu detekcji przyciśniętego klawisza wskazując kombinację bitową, w ostatecznej wersji programu wszystkie sygnalizują przyciśnięcie padu.

Dodatkową sygnalizację przyciśnięcia padu może sygnalizować buzer LS1, który w obecnej wersji programu jest wyłączony. Procesor w chwili wykrycia padu na linii IRQ, podczas normalnej pracy występuje w stanie wysokim, zmienia stan linii na niski, po czym transmituje dane po magistrali I2C.

 

 

Opis software :

Główna idea programu zestawiona jest na listingu 1.

 

//------------------------------------------------------------------------------

//                               main

//------------------------------------------------------------------------------

void main(void)

{

 

  init();   //peryferia

  init_i2c(); //i2c

 

  while(1)                                //skanowanie

  { 

    switch(licz)

    {

      case 1:

        set1_E1();                              //wybierz segment

        if((P2IN&BIT1)!=0x00) {dana1 |= BIT0+BIT1;}

        …..       

      case 7:

        set1_E7();                              //wybierz segment

        if((P2IN&BIT1)!=0x00) {dana1 |= BIT0+BIT7;  } 

          …..       

       }

   

    switch(licz)

      {

      case 8:

        set2_E1();                              //wybierz segment

        if((P2IN&BIT0)!=0x00) {dana2 |= BIT0+BIT1;       } 

        …..       

      case 14:

        set2_E7();                              //wybierz segment

        if((P2IN&BIT0)!=0x00) {dana2 |= BIT0+BIT7; } 

        …..       

    }

     licz++;

 

     if(licz>14){                                        //zbieranie wyników

       licz=1;

       if((dana1&BIT0)==1) {P3OUT |=IRQ_touch;  wpisz_data_i2c(0x01,dana1);}   //wyslij daną

        P3OUT &= IRQ_touch;     //czysc przerwanie

       if((dana2&BIT0)==1) {P3OUT |=IRQ_touch;  wpisz_data_i2c(0x02,dana2);}   //wyslij daną

        P3OUT &= IRQ_touch;     //czysc przerwanie

       dana1=0x00;      //czyść bufory

       dana2=0x00;

     }

  }

}

 

Listing 1. Główna pętle programu

 

 

 

Procesor po starcie inicjalizuje swoje porty do pracy oraz układ Watchdoga. Następnym etapem jest włączenie i skonfigurowanie programowego układu I2C, procesor MSP430f123/1232 posiada jedynie sprzętowy blok SPI.

Jak już było powiedziane poprzednio zadaniem procesora jest włączenie odpowiedniego padu a następnie sprawdzenie czy został uaktywniony przez przyłożenie palca do padu co jest realizowane w głównej pętli programu. Zmienna licz jest to 8 bitowa zmienna wyznaczająca kombinację portów służącą następnie do wysterowania multipleksera. W każdej z pozycji caseX wybierany jest numer padu set1_EX1();, następnie sprawdzane jest czy został on wciśnięty, if((P2IN&BIT1)!=0x00). W urządzeniu dostępne są 2 układu dedykowanych paneli, skanowanie następuje wiec najpierw dla pierwszego, a następnie dla drugiego. Wyniki dla obu z tych układów zapisywane są do zmiennych odpowiednio dana1, dana2.

Przykładowa funkcja dla wciśniętego padu E1 panelu pierwszego to {dana1 |= BIT0+BIT1;}.

Bit0 jest sygnalizacją przerwania, Bit1 to wciśnięcie E1, strukturę zmiennych dana przedstawia tabela 1

 

 

 

Bit0

Bit1

Bit2

Bit3

Bit4

Bit5

Bit6

Bit7

danaX

IRQ

E1

E2

E3

E4

E5

E6

E7

Tab.3

 

Po zeskanowniu i zbadaniu  kombinacji sprawdzane jest czy  któryś pad został wciśnięty,

co sygnalizowane jest na bicie zerowym IRQ zmiennych dana1, dana2. 

if((dana1&BIT0)==1) {P3OUT |=IRQ_touch;  wpisz_data_i2c(0x01,dana1);}  

jeżeli tak, to generowany jest sygnał IRQ, oraz po szynie I2C wysyłana jest informacja o wystąpieniu zdarzenia, która zawiera kolejno:

 

Bajt1: 0xA0 (na stałe wpisany adres urządzenia, możliwość zmiany w programie)

Bajt2: 0x01 lub 0x02 (wciśnięty pad od układu MC34940  pierwszego 01/ drugiego 02)

Bajt3: bitowa informacja o wciśniętym padzie.

 

Bit:          8.........1 IRQ

--             00000000

E1           00000011               0x03

E2           00000101               0x05

E3           00001001               0x09

E4           00010001               0x11

E5           00100001               0x21

E6           01000001               0x41

E7           10000001               0x81

 

 

Przykładowy przebieg z analizatora stanów logicznych dotknięcia padu E4 w układzie 02 przedstawiony jest na rysunku 7.

 

Rys.7

 

 

Projektowanie własnych padów :

Jak ma to miejsce w większości aplikacji częstym problemem jest obudowa naszego urządzenia. Często jesteśmy ograniczeni określoną powierzchnią, w której musi zawierać się część elektroniczna, zasilanie oraz w naszym przypadku panel. Rozdział ten daje krótki wyznacznik jak zaprojektować wymiary własnych padów. Ogólnie rzecz biorąc padem, elektrodą odbiorczą może być dowolna rzecz, która ma właściwości indukcji elektrycznej.

Nasz pad może być równie dobrze cienką ścieżką grubości 10mil (10 milsów= 0.254mm).

Ogólnie rzecz biorąc, czym większa jest powierzchnia padu tym większą czułość oraz dystans jest w stanie zapewnić układ, ale jednocześnie na elektrodzie odbiorczej mogą indukować się szumy i zakłócenia, co doprowadzić może do zachwiania pracy panelu. Propozycją inżynierów z firmy Freescale jest stosowanie padów wielkości 2-3 krotnie większej niż palec, który zostaje przykładany. Kolejną kwestią równie ważną są ścieżki doprowadzające do padów. Co prawda producent podaje, że najkorzystniej jest aby nie przekraczać odległości między ścieżkami doprowadzającymi rzędu 50pF, z moich krótkich doświadczeń proponuję ścieżki 10-20mil oraz dystans 20mil między nimi.

follow us in feedly
Średnia ocena:
 
REKLAMA

Otrzymuj wiadomości z rynku elektrotechniki i informacje o nowościach produktowych bezpośrednio na swój adres e-mail.

Zapisz się
Administratorem danych osobowych jest Media Pakiet Sp. z o.o. z siedzibą w Białymstoku, adres: 15-617 Białystok ul. Nowosielska 50, @: biuro@elektroonline.pl. W Polityce Prywatności Administrator informuje o celu, okresie i podstawach prawnych przetwarzania danych osobowych, a także o prawach jakie przysługują osobom, których przetwarzane dane osobowe dotyczą, podmiotom którym Administrator może powierzyć do przetwarzania dane osobowe, oraz o zasadach zautomatyzowanego przetwarzania danych osobowych.
Komentarze (2)
Dodaj komentarz:  
Twój pseudonim: Zaloguj
Twój komentarz:
dodaj komentarz
Brak obrazka
Świetne !
No avatar
Marcin Wroński
Stary chyba zapomniałeś zdjęć dodać

REKLAMA
REKLAMA
REKLAMA
REKLAMA
Studenci i absolwenci Politechniki Śląskiej Studenci i absolwenci ... Grupa zrzeszająca studentów i absolwentów Politechniki Śląskiej
Inteligentny dom Inteligentny dom Celem grupy są tematy związane z systemami Inteligentnego Domu. Poruszane są tu tematy o produktach i ...
Serwis elektroniki użytkowej Serwis elektroniki użytkowej Zamieszczamy tu wątki dot. serwisu elektroniki użytkowej, pomysły rozwiązań i problemy na które ...
Matematyka Matematyka Grupa dla wszystkich miłośników "Matki wszystkich nauk" Dyskusje, cyferki, zdania - jednym ...
REKLAMA
Nasze serwisy:
elektrykapradnietyka.com
przegladelektryczny.pl
rynekelektroniki.pl
automatykairobotyka.pl
budowainfo.pl