Arduino: I2C-Touchpad auslesen?

OP (Firma: Q3) #4535697
Lesenswert?

Das ist mein erstes I2C-Projekt und entsprechend dämlich stelle ich mich 
an. Ich habe also zunächst auf Basis der Wire-Lib ein ganz simples 
Testprogramm geschrieben, was die Adressen im Bereich von 0 bis 127 
durchgeht, jeweils 1 Byte anfordert und wenn was kommt, dieses anzeigt.

Dabei ist A5 am Arduino Nano der Takt (SCL) und A4 sind die Daten (SDA). 
Das habe ich mir zunächst (ohne angeschlossenes Touchpad) mit einem Oszi 
angesehen.

SCL wird offenbar jeweils nur für ein par Takte eingeschaltet, ich kann 
also regelmäßige "Taktpakete" aus 1:1 Rechteckimpulsen sehen. Bei SDA 
sehe ich ebenfalls die Bits, im Gegensatz zu den Taktpaketen verändern 
sie sich entsprechend den aufgerufenen Adressen.

Verbinde ich SCL vom Nano mit SCL vom Touchpad, wird sogar die 
Kurvenform besser (sauberere Rechtecke). Verbinde ich dagegen SDA vom 
Touchpad mit dem vom Nano, verschwinden die vorher sichtbaren 
Datenpakete und die Daten schlagen quasi auf den Takt durch (kann ich 
mit 2-Kanal-Oszi sehen).

Was kann das sein? Ein simpler Kurzschluss ist ausgeschlossen, ich habe 
die Lötstellen und die Steckbrett-Verkabelung mehrfach auf- und 
abgebaut.

Das Touchpad ist ausser mit SDA und SCL noch mit Masse und 3,3V vom 
Arduino verbunden. Als Pullup an SDA und SCL  habe ich 2 gerade 
herumliegende 24k-Widerstände nach Plus 3,3V geschaltet ...

Tips? Danke.
Persönliche Seite #4535774
Lesenswert?

Und das Touchpad verwendet sicher I2C? Das ist ungewöhnlich.

Wenn es aus einem alten Notebook stammt und Du wegen des Vorhandenseins 
von Leitungen namens "Clock" und "Data" auf I2C tippst - da liegst Du 
daneben, das wird die im PC-Bereich übliche PS/2-Schnittstelle sein. Die 
verwendet ebenfalls separate Takt- und Datenleitungen und braucht auch 
Pullups, aber das Protokoll ist deutlich simpler.
OP (Firma: Q3) #4536127
Lesenswert?

Dieter S. schrieb:
> Und mit welcher Spannung betreibst du den Nano?
> Bei 5 Volt muss ein Levelshifter dazwischen.

Hmm ... Der Nano wird primär am USB mit 5V betrieben.

Ich nehme aber doch an, dass der "intern" mit 3,3V läuft, oder? Ist dazu 
nicht der Spannungsregler drauf? Oder wo kommen die 3,3V her, die auf 
dem Board "angeboten" werden? Und wozu sind die sonst gut?
Gast #4536195
Lesenswert?

Frank E. schrieb:
> Dieter S. schrieb:
> Und mit welcher Spannung betreibst du den Nano?
> Bei 5 Volt muss ein Levelshifter dazwischen.
>
> Hmm ... Der Nano wird primär am USB mit 5V betrieben.
>
> Ich nehme aber doch an, dass der "intern" mit 3,3V läuft, oder? Ist dazu
> nicht der Spannungsregler drauf? Oder wo kommen die 3,3V her, die auf
> dem Board "angeboten" werden? Und wozu sind die sonst gut?

Ein klares NEIN. Der Nano wird in fast allen Fällen mit 5 Volt betrieben 
und dann hast du an den Pins im High-Zustand auch diese 5 Volt.
Gast #4536290
Lesenswert?

Ja, wie meine Vorgänger alle schon beschrieben haben, der Nano arbeitet 
i.d.R. mit 5 Volt. Da kommst du dann nicht um einen Levelshifter herum. 
Hatte ich ja auch schon geschrieben. Anders wirst du dein Touchpad 
schnell killen.
Gast #4536528
Lesenswert?

Walter S. schrieb:
> Dieter S. schrieb:
>> der Nano arbeitet
>> i.d.R. mit 5 Volt.
>
> das i.d.R. heißt aber: es könnte auch 3,3V sein
> ich verwende so einen weil ich mir so eben den Levelshifter sparen  kann

Richtig, nur diese sind sehr selten und daher sollte der TO das 
unbedingt prüfen, was er bisher noch nicht getan bzw. bestätigt hat.
OP (Firma: Q3) #4536575
Lesenswert?

Dieter S. schrieb:
> Walter S. schrieb:

> Richtig, nur diese sind sehr selten und daher sollte der TO das
> unbedingt prüfen, was er bisher noch nicht getan bzw. bestätigt hat.

Es ist ein China-Nano mit CH341-USB-Chip und aufgelöteter 
USB-Mini-Buchse.

Woran erkenne ich, ob es evtl. eine 3,3V-Version ist?

Im Prinzip mit Messen, das ist klar, ist aber bei dem SMD-Chip garnicht 
so einfach ... ich werde mir mal die Logikpegel mit Oszi bzw. Multimeter 
vornehmen ... oder gibts noch andere Merkmale?
Gast #4536655
Lesenswert?

Frank E. schrieb:
> Es ist ein China-Nano mit CH341-USB-Chip und aufgelöteter
> USB-Mini-Buchse.
> Woran erkenne ich, ob es evtl. eine 3,3V-Version ist?
>
> Im Prinzip mit Messen, das ist klar, ist aber bei dem SMD-Chip garnicht
> so einfach ... ich werde mir mal die Logikpegel mit Oszi bzw. Multimeter
> vornehmen ... oder gibts noch andere Merkmale?

Das wurde doch schon gepostet.
Hat der Nano eine Taktfrequenz von 16 MHz, dann ist es ein 5 Volt Typ. 
Hat er 8 MHz, dann 3,3 Volt.
OP (Firma: Q3) #4537814
Lesenswert?

Das Problem ist gelöst, die Ursache war VIEL blöder als vermutet:

Auf der Platine sind die Anschlüsse falsch bedruckt!!! In dem Tütchen, 
in dem das Touchpad geliefert wird, ist zwar eine Art Beipackzettel, 
aber wer guckt da schon drauf?

(ich habe nicht den Connector benutzt, sondern die Lötpads)

Habe heute morgen nochmal Alles vom Bredboard gerissen und neu aufgebaut 
und dabei wegen der Anschlüsse mal nicht auf das Touchpad, sondern auf 
den daneben liegenden Zettel gesehen .... Arghhh!!!

Und siehe da, es geht! Trotz 3,3V-Technik (gespeist aus dem 
Nano-Anschluss 3,3V) und direktem Kontakt mit den I2C-Pins (A4 u. A5) 
des Nano ...

Das Bild ist ein wenig verwackelt ... sorry.
Angehängte Dateien:
Gast #4537843
Lesenswert?

Frank E. schrieb:
> Das Problem ist gelöst, die Ursache war VIEL blöder als vermutet:
>
> Auf der Platine sind die Anschlüsse falsch bedruckt!!! In dem Tütchen,
> in dem das Touchpad geliefert wird, ist zwar eine Art Beipackzettel,
> aber wer guckt da schon drauf?
>
> (ich habe nicht den Connector benutzt, sondern die Lötpads)
>
> Habe heute morgen nochmal Alles vom Bredboard gerissen und neu aufgebaut
> und dabei wegen der Anschlüsse mal nicht auf das Touchpad, sondern auf
> den daneben liegenden Zettel gesehen .... Arghhh!!!
> Und siehe da, es geht! Trotz 3,3V-Technik (gespeist aus dem
> Nano-Anschluss 3,3V) und direktem Kontakt mit den I2C-Pins (A4 u. A5)
> des Nano ...
>
> Das Bild ist ein wenig verwackelt ... sorry.

Damit läufst du Gefragt das Pad zu killen, da der Nano mit 5 Volt 
betrieben wird und an den I2C-Pins auch 5 Volt anliegen.

Aber wenn man schon nicht einen Beipackzettel liest, muss man ja auch 
den Beiträgen hier im Forum nicht glauben.

Warum stellst du hier überhaupt Fragen rein, wenn du niemandem glaubst?

Ich versteh das nicht.
OP (Firma: Q3) #4537878
Lesenswert?

Dieter S. schrieb:
> Damit läufst du Gefragt das Pad zu killen, da der Nano mit 5 Volt
> betrieben wird und an den I2C-Pins auch 5 Volt anliegen.
> Aber wenn man schon nicht einen Beipackzettel liest, muss man ja auch
> den Beiträgen hier im Forum nicht glauben.
> Warum stellst du hier überhaupt Fragen rein, wenn du niemandem glaubst?
> Ich versteh das nicht.

Meine ursprüngliche Frage gezog sich nicht auf die 5V-Verträglichkeit, 
sondern auf das merkwürdige Verhalten, was so garnicht mit I2C 
zusammenpassen wollte. Das hat sich ja nun aufgrund der falschen 
Anschlußbelegung geklärt.

Die möglichen Probleme wegen der 5V kamen erst später in die Diskussion, 
als eine mögliche Ursache für das Nicht-Funktionieren der 
Datenübertragung.

Vom Hersteller selber wird ein Arduino-Code nebst Anschluß-Skizze (in 
ASCII-Grafik mit Benennung der Pins) und OHNE Level-Shifter 
mitgeliefert. Anscheinend sind die Pads "5V compilant" oder wie das 
heisst ... (was gar nicht so selten vorkommt). Da wird nix gekillt ...

Trotzdem Danke für all die Tips.
OP (Firma: Q3) #4537897
Lesenswert?

Dieter S. schrieb:
> Frank E. schrieb:
>>
>> ...Anscheinend sind die Pads "5V compilant" oder wie das
>> heisst ... (was gar nicht so selten vorkommt). Da wird nix gekillt ...
>
> Da du keine Datenblätter liest, wirst du es erst erfahren, wenn
> Rauchzeichen aufsteigen.
> Mach weiter so. Viel Erfolg. :-)

Lesen (und Verstehen) scheinen nicht deine Stärke zu sein. Wenn der 
Hersteller quasi den Bauplan mitliefert, darf ich den doch wohl ernst 
nehmen, oder?
#4537900
Lesenswert?

Hallo,

Frank E. schrieb:
> Vom Hersteller selber wird ein Arduino-Code nebst Anschluß-Skizze (in
> ASCII-Grafik mit Benennung der Pins) und OHNE Level-Shifter
> mitgeliefert. Anscheinend sind die Pads "5V compilant" oder wie das
> heisst ... (was gar nicht so selten vorkommt). Da wird nix gekillt ...

wohl die Mehrheit meiner (China-)Arduino-Teile behauptet sowas.
Ob eine SD-Card z.B. mit Reihenwiederständen und damit ausnutzen der 
Schutzdionen (vermutlich außerhalb der Specs) damit auf Dauer klarkommt, 
ignoeriere ich bei meinen Bastelein auch, solange:
a) der Kram die üblichen China-Preise gekostet hat
b) solange noch ein zweites in Reserve liegt

Dann überlebe ich den Verlust bei Ausfall und kann dann eben was 
vernünftiges draus machen kann.

Komischerweise haben es bisher alle Module auch über Wochen 
Versuchsbetrieb überlebt...

Solange es also Sachen sind, wo mich auch ein plötzlicher Ausfall nicht 
stört, bleibt es bei mir vorerst dabei.

Gruß aus Berlin
Michael
Gast #4537951
Lesenswert?

Michael U. schrieb:
> wohl die Mehrheit meiner (China-)Arduino-Teile behauptet sowas.
> Ob eine SD-Card z.B. mit Reihenwiederständen und damit ausnutzen der
> Schutzdionen (vermutlich außerhalb der Specs) damit auf Dauer klarkommt,
> ignoeriere ich bei meinen Bastelein auch, solange:

Dann bist du in jedem Fall auf der sicheren Seite.
Widerstände setze ich da auch ein und so reicht es wohl meistens.
Aber ohne diese finde ich es schon kritisch.
Persönliche Seite #4538005
Lesenswert?

Dieter S. schrieb:
> Damit läufst du Gefragt das Pad zu killen, da der Nano mit 5 Volt
> betrieben wird und an den I2C-Pins auch 5 Volt anliegen.

Das tun sie nur, wenn die I2C-Pullups gegen 5V geschaltet sind. 
Ansonsten sind I2C-Pins Open-Collector- bzw. Open-Drain-Anschlüsse.

I2C mit 3V-Pullups an einem 5V-µC ist allerdings etwas grenzwertig, weil 
der Highpegel etwas zu niedrig sein dürfte, um sicher und sauber erkannt 
zu werden.

Ratsam ist daher der Einsatz eines I2C-Pegelwandlers wie z.B. PCA9517.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren