ATmega a touchscreen - jak na to

Narazil jsem na Dealextreme na náhradní touchscreen. Cena není vysoká a tak jsem si říkal, že bych ho zkusil použít pro vstup do nějaké ATmega. DX je obecně na technické informace velmi skoupé a tak nemám ponětí, jak se to dá zapojit a ovládat. O tom, že zatím na to používám bascom, pominu. Potřeboval bych nasměrovat nějkam, kde bych si o tom něco přečet. V ideálním případě nějaký datasheet. Případně nějaký jiný levný malý touchscreen na prvotní pokusy s dokumentací.

O touchstudiu pro Atmel vím, ale zatím bych to raději řešil při zemi Bascomem, pokud to ovšem bude možné.

Ahoj.
Taky jsem se tim zabyval, ale zatim na to nebyl cas ani nalada.
Uvedeny touch je nahrada do nejake GPS a neobsahuje screen, takze funguje jenom jako touch.
Datasheet k tomu nenajdes, protoze je to komponenta do nezname GPS. Pokud je ale obrazek verny, vidim 5 dratu, takze to asi bude fungovat stejne jako zde atmel.com/Images/doc8091.pdf
Vidim zde nekolik problemu.
Musis to nejprve koupit a pote k tomu shanet nezname konektory na pripojeni touch ke svemu zarizeni.
Vymyslet jak to bude drzet v krabicce.
Nevim, jak jsi na tom financne, ale myslim si ze 5$ neni moc na to aby to clovek objednal i kdyz o tom nic nevi, experimenty to maximalne znicis, ale pravdepodobnost je velmi mala, pokud uz nejaky cas delas s avr
Osobne bych pouzil toto
Toto zarizeni neobsahuje pouze touch, ale i screen.
Je znama komunikace pro touch i pro display.
Display lze rozumne pripojit k DPS signalove i mechanicky.
Je potreba vyresit kominukaci protoze je to 3V logika.
Jeste jsem to nevyzkousel.

:arrow_right: administrator: příspěvek byl upraven
Upraven zápis odkazu.

:arrow_right: administrator: přiloženy externí soubory
doc8091.pdf (435 KB)

Nějaké takovéto “nakopnutí” jsem si představoval. Předpokládám, že si stačí najít datasheety k tomu kompletnímu displeji přes řadiče, jenž jsou na něm obsaženy. Nejspíš si pořídím oba. Rozběhat ten úplnž s mými znalostmi nebude žádná sranda, nicméně se o to pokusím. Na ten kompletní displej jsem už narazil, ale byl o 10$ dražší než na e-bay a tak mě na prvotní pokusy až tak nezaujal.

No tusim ze to mam doma, niekde nanete slovensko ceskom fore je aj popis na ovladanie cez ad prevodnik a niekde inde cez na to urcenen Io co doporucujem viac netreba sa o nic starat len nakalibrovat komunikacia i2c a podobne, vystup pre interupt.

Jen ta dotyková fólie je zralá na čtyři AD převodníky. Program na určení polohy doteku by neměl být nějak extra složitý. A myslím si, že i v basomu by nebyl žádný problém ho napsat.

Začínám uvažovat o tom, že do toho zainvestuju víc a pořídím si rovnou na e-bay toto.

kdyz to pripojis na 4 ADC tak co tam budes merit ?
pandatron.cz/?1413&usb_touchscreen_s_avr

rozjely ste tu docela zajimavou diskuzi, trochu sem hledal a zjistil ze to funguje jinak nez sem myslel :open_mouth: , jestly sem to teda dobre pochopil tak je potreba menit I/O + ADC zvlast pro cteni X a Y ?..

Myslel jsem, že když jeden vývod jde doprostřed a zbylé vývody na rohy, tak:

  1. ADC +X
  2. ADC -X
  3. SDC +Y
  4. ADC -Y

Ale jak vidím, budou stačit dva a pak se to musí aktivně přepínat. Konečně do toho začínám trochu vidět.

Tak jsem po delší době narazil (ne)překvapivě na kontrolér pro touchscreen, co už rovnou posílá data pro mcu.

:arrow_right: administrator: přiloženy externí soubory
MK712 Touch Screen Controller.pdf (207 KB)

Na tomto touchscreenu není nic složitého. Je to 4-vývodový odporový touchscreen, který má po jednom výstupu na každé straně (1 vlevo, 1 vpravo, 1 nahoře a 1 dole). Princip zjištění polohy je následující : Přivedeš +5V (log. 1) na levou stranu a 0V (log. 0) na pravou stranu, na jeden ze zbylých vývodů vypneš (pin dáš jako vstupní) a na posledním změříš napětí AD převodníkem. Tím dostaneš místo ve vodorovném směru. Následně přepneš pravou a levou stranu na vstup a na horní lištu přivedeš +5V (log. 1) a na dolní lištu přivedeš 0V (log. 0) a změříš AD převodníkem napětí ne levě nebo pravé straně (teď jsou jako vstupní). Tím získáš polohu dotyku ve svislém směru. Zkombinuješ informace a máš bod doteku. No, a pořád dokola. Je třeba ještě zajistit detekci volného panelu, ale to by asi neměl být problém. Pokud budou vstupy přes pull-up rezistory, pak by tam mělo být bez doteku +5V. Předpokládám, že při dotyku nebude na výstupu přesně +5V nikdy. To by ses musel dotknout přímo a liště a tam se asi nic vážného nebude dít, i kdybys tam těch plných +5V dostal a vyhodnotil to jako panel bez doteku… Jinak je to i s obrázky velice pěkně popsaný tady

Taky jsem si myslel, že to takhle půjde. Bohužel ten vlastní dotek má odpor různý - záleží, jak hodně se na něj zatlačí. Kdyby byl odpor doteku konstantní, tak s tím není problém. Nemám problém spočítat odpor ve směru X či Y, ale vždy navíc s odporem vlastního doteku, jenž netuším, jaký je. Takže výsledek je vždy Rx+Rtouch nebo Ry+Rtouch. Přijít na to, jak získat odpor jen v ose X či Y bez odporu doteku jsem nepřišel. Když mě tam navedeš, budu jen rád. I když možná bude jednodušší použít na to specializovanýho švaba, jehož jsem nedávno “objevil”.

To Ti může být úplně jedno, protože měříš napětí na děliči, tudíž odpor dotyku se Ti neprojeví. Případně můžeš změřit napětí, přehodit polaritu a změřit znova, spočítat střed a pak teprve přejít na měření druhé osy. Fígl je v tom, že Ty nezjišťuješ odpor doteku, ale v podstatě dotykem vytvoříš 2 děliče a měříš napětí na jednom z nich. Viz. obrázek.

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Touchpanel_osa_X.pdf (1.63 KB)

Ano, takto jsem si taky myslel, že to funguje. Jenže v místě dotyku není zkrat, ale nějaký odpor. Je to přesně popsáno v příloze od DragonSoula. Já jsem z toho sem do přílohy típnul to zásadní - schema, kde bude jasné, kde je dle mě problém. Při výpočtu mě tam přebývá odpor doteku - to je jen odpor svisle.
Ashampoo_Snap_2012.10.29_17h51m47s_001_.jpg

Ale já přece vím, který odpor jsi měl na mysli. Ale vezmi to logicky. Když měříš napětí v ose X (Rx+ a Rx-), tak máš v cestě nejenou Rtouch, který neznáš, ale i Ry+ nebo Ry- (podle toho na které straně měříš napětí), které taky neznáš, protože neznáš polohu dotyku. Jenže měříš NAPĚTÍ dané děličem Rx+ a Rx-. Ve snímací části máš tedy Rtouch, Ry+ (Ry-) a Rin (vstupní odpor AD převodníku). Rin udává datasheet typicky 100MOhm (min. 55 MOhm). Když zanedbám Rtouch a Ry+ (Ry-), pak mám odpor vstupu min. 55MOhmů. Při +5V by na vstupu do AD byl úbytek napětí 5/55=0,09uV=90nV (ano, maximálně 90 nanovoltů - při maximálním vstupním napětí a nejnižším datasheetovým vstupním odporu). Máš pocit, že Rtouch Tě musí trápit ? Kdyby Tě měl trápit Rtouch, musel by Tě trápit i Ry+ (Ry-), protože ty při měření v ose X taky neznáš.

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Omlouvám se, ale nějak mě to stále nedochází. Asi to bude tím, že jsem strojař a do elektriky se jen hrabu. :blush: Je pravda, že vstupní odpor AD převodníku jsem zanedbával. Pokud zanedbám Rtouch, tak výpočet polohy je snadný. Změřím napětí např. mezi Rx+ ai Ry- a pak mezi Rx- Ry-. Pokud vím, že mezi vývody x+ a x- je 5V, pak stačí sečíst obě výše uvedená napětí (Rx- a Ry-) +(Rx+Ry-) a odečtu od nich 5V a tím získám dvojnásobek napětí mezi dotykem a Y- (pokud zanedbám Rtouch). Takto jsem si myslel, že to půjde spočítat, než jsem narazil na problém s Rtouch. Nemůžu si pomoct, ale příjde mě, že nelze dopočítat úbytek napětí na Rx- (Rx+, Ry- či Ry+), jelikož se tam pořad plete ten Rtouch. Asi to budu potřebovat vysvětlit jak pro blbce. :bulb:
Touch - odpory.jpg

Pleteš hrušky s jabkama. Pro zjednodušení budeme uvažovat pouze měření osy X. Pro osu Y by sis jenom přehodil ty ixy a ypsilony. Ty neměříš napětí mezi Rx+ a Ry-, ale VŽDY jenom na děličí Rx+/Rx-. Tím prochází proud mezi +5V a 0. Měříš napětí, které odpovídá poměru Rx+ a Rx-. AD převodník připojený na střed tohoto děliče má tak veliký vstupní odpor, že když k němu přičteš ještě Ry a Rtouch, tak se jeho hodnota prakticky nezmění. Při 55-100 MOhmech těch pár ohmů už nehraje prakticky žádnou roli a ve Tvém zapojení můžeš klidně Ry- (+Rtouch) nahradit drátem (laicky řečeno vyzkratovat) a zanedbat. Na vstupu do AD převodníku dostaneš napětí, které NIKDY nepřekročí 5V. Proud protékající do AD převodníku je tak malý, že nijak neovlivní proud tekoucí děličem Rx+/Rx- a tím pádem neovlivní ani napětí na děliči Rx+/Rx-. Naměřená hodnota napětí na vstupu AD převodníku bude odpovídat poměru odporů Rx+ a Rx-. To znaměná, že když naměříš 1V (tj. 20% napájecího napětí), bude poměr odporů Rx+/Rx-=80%/20% a tomu odpovídá poloha dotyku - 20% délky touchscreenu od Rx- směrem k Rx+.

Snad jsem to vysvětlil dostatečně jasně.

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Už jsem to konečně pochopil. Doufám, že správně. Odpor AD převodníku je tak velký, že odpor Ry a Rtouch nemá prakticky vliv. Takže pokud tento způsob funguje, tak bych měl při napájení 5V naměřit na Rx+ a Rx- vždy celkem 5V s tolerancí v řádu milivoltů. Touchscreen sice fyzicky mám, ale přišel rozbitý a tak čekám, až mě přijde znovu a doufám, že už v celku. Tak to bychom měli. Díky za trpělivost. Tento způsob sice vylučuje zjištění Rtouch, ale o to mě v tomto případě nejde. Chci použít dotykový displej jen jako tlačítka, jenž se dle situace budou měnit. Kreslit, abych využil rozlišení tlaku dotyku, nehodlám.

Tak držím palce.

Díky, budu to potřebovat. Bude to ještě běh na dlouhout trať. Už to tak rok se v tom hrabu a zatím jsem nenavrhnul finální verzi, natož abych tu supervýkonou svítilnu začal dávat fyzicky dohromady.