Hallo,

Ik ben momenteel bezig met een GLCD + touchscreen (4 draads)te programmeren in C (MCC18 compiler).
Dit samen met een pic18f4550 en een touchscreen driver: de AD7843. Dit is niet meer dan een 'simpele A/D converter', maar het lukt mij helaas niet het geheel werkende te krijgen..

Het configureren van de AD7843 gebeurt door eerst 8 bits in te klokken, met daarna nog 16 klokpulsen om de digitale waarde naarbuiten te klokken + nog enkele extra pulsen.
24 klokpulsen in het totaal dus om een conversie in 1 richting te doen

Mijn probleem nu: de AD geconverteerde waarde die naar buiten zou moeten komen verandert niet...
Het vreemde is: ik weet wel zeker dat de chip goed aangestuurd wordt, aangezien er een optie is om de chip een digitale code naar buiten te laten sturen.
Deze code komt perfect naar buiten na de juiste waardes ingeklokt te hebben...
Ook de busy-puls gaat hoog en laag op het juiste moment als ik deze bekijk ten opzichte van de klok.

- Je zou dus denken: ok, als dat werkt, zou een X-conversie ook moeten lukken...
Vreemd genoeg komt er een weliswaar vaste digitale waarde uit de DOUT uit. Nochtans als ik aan het touchscreen zelf meet, zie ik de waarde veranderen als ik met mijn vinger over het scherm beweeg.
Hier ook weer een vreemd iets: als ik een X conversie doe, reageert het touchscreen als ik met mijn vinger in de Y-richting beweeg :s (en ik weet wel zeker dat X en Y op de correcte manier aangesloten zijn....)

- Als ik waardes inlaadt om een Y-conversie te doen, en ik meet aan het touchscreen, is er geen enkele interne switch aan :s; alles staat op grond...

Dan is er ook nog de /Penirq, dewelke niet laag te krijgen is met het touchscreen (niet met PD1 en 0 = 10 en ook niet met 00)...(ongeveer 0.6V spanningsverschil als het touchscreen ingedrukt is).
Ik heb het touchscreen nog uitgemeten om zeker te zijn dat dit nog werkt, en deze is niet kapot...

- O ja, misschien nog even vermelden dat ik niet met 'echte spi' werk, maar met een zelf gegenereerde klok van ongeveer 30 Khz door een poort afwisselend hoog en laag te laten gaan. Kan het misschien zijn dat bv het hoge deel van de klok niet exact even lang is als het lage deel van de klok?...

Anyway, ik zit met de handen in het haar; ik heb de afgelopen dagen al uuuuuren doorgebracht om het ding aan de praat te krijgen, maar niets werkt...

Alvast bedankt voor het lezen, en hopelijk heeft iemand van jullie een idee of een oplossing...
mvg, Borai Beelen

VREF aangesloten ?

die clock moet volgens mij blijven draaien ! de convertor gebruikt de DCLK om zijn conversie te doen. doe eens 2 conversie vlak na elkaar. de tweede uitlezing zal waarschijnlijk de data van de vorige conversie geven

Vref is idd aangesloten op de voeding,
alsook de IN3 en IN4 zijn aangesloten, maar dan op massa...

Op de PIC doe ik een conversie elke milisecond ongeveer (in een loopke om te testen)...
De data die eruit komt blijft helaas constant :(

Ik dacht btw dat de DCLCK enkel 24 klokpulsen moest blijven gaan aangezien die alleen nodig is voor het inklokken van de data, de conversie en het uitklokken van de data...
De /Penirq zou normaal gezien moeten blijven werken ook al wordt er geen klok aangelegd...

Toch bedankt...

[edit:] Ok, er komt uiteindelijk al een signaal uit de serial-out pin van de AD7843. Spijtig genoeg werkt het alleen als ik 'rubish' in de AD input...
Even verklaren: als ik als input-code 0b11000000 of 0b01100000 neem, werkt kan ik een conversie doen van de Y- richting, maar dit is helaas totaal in tegenstelling met de datasheet wat betreft de A2A1A0 bits ... :s
Iemand misschien een idee?

[Bericht gewijzigd door borai op (27%)]