Habe mal eine allgemeine Frage: Muss das Taktsignal auf SCL beim I2C-Bus zwangsweise rechteckförmig sein? Habe nämlich Probleme beim Auslesen eines Sensors und der Highpegel meines Taktes sieht eher aus wie die Ladekurve eines Kondensators. DVDD für den Sensor ist bei mir auf 2,0V.Auf den beiden I2C-Leitungen ist jeweils noch ein 10K Widerstand zu DVDD. Gruß,Phil
> Muss das Taktsignal auf SCL beim I2C-Bus zwangsweise rechteckförmig sein? Besser wäre das... > DVDD für den Sensor ist bei mir auf 2,0V. Welche DVDD von welchem Sensor? > ein 10K Widerstand zu DVDD I²C mit so hochohmigen Pullups an 2V? Was hängt am anderen Ende des I²C Busses? Ein uC? Welcher?
>Muss das Taktsignal auf SCL beim I2C-Bus zwangsweise rechteckförmig >sein? Im Idealfall natürlich schon, aber die ICs kennen ja eh nur 1 oder 0. >...der Highpegel meines Taktes sieht eher aus wie die Ladekurve eines >Kondensators. Das ist bei I²C normal. Man sollte es halt nicht übertreiben (zu hochohmige Pull-Ups)
>Welche DVDD von welchem Sensor? DVDD -> digitale Versorgungsspannung von einem Magnetsensor. Darf zwischen 1,7V und 2,3V liegen. Im Datenblatt steht bei der Pinbelegung,dass zwei 10K Widerstände nach DVDD sollen. >Was hängt am anderen Ende des I²C Busses? Ein uC? Welcher? Ja dort befindet sich ein ATMEL-µC (ATmega16).Da dieser aber 5V macht,befindet sich zwischen ihm und dem Sensor ein I2C-Levelshifter zur Pegelanpassung.
Dann würde ich noch 4.7k Pullups auf 5V an der ATMEL-µC Seite reinhängen (für SCL+SDA)
>Dann würde ich noch 4.7k Pullups auf 5V an der ATMEL-µC Seite reinhängen.
Oh,ich vergaß zu erwähnen,dass zwischen µC und Level-Shifter zwei 10K
Widerstände sind.Komischerweise habe ich aber gerade an beiden nach
Abklemmen der Versorgungsspannungen nur rund 9,38K gemessen?!?
>Oh,ich vergaß zu erwähnen,dass zwischen µC und Level-Shifter zwei 10K >Widerstände sind Ich verstehe nicht was das soll, aber ohne Pullups auf 5V gehts wohl kaum!
>Ich verstehe nicht was das soll, aber ohne Pullups auf 5V gehts wohl
kaum!
Na der Levelshifter dient zur sauberen Pegelanpassung des
I2C-Busses.Wenn mein Controller mit 5V läuft,der Sensor aber mit weniger
betrieben werden muss,müssen ja die Pegel irgendwie angepasst werden.
In den ersten Spannungseingang des Shifters kommen die 5V des µC und in
den zweiten werden die 2V (die ja der DVDD-Pin des Sensors benötigt)
über einen Spannungswandler gespeist.
Levelshifter siehe Datenblatt
@Phil Sind die beiden 10k Rs jetzt jeweils in Serie zu den Signalleitungen oder 10k Pullups? Hast du jetzt pullups auf der µC-Seite dran oder nicht?
> nur rund 9,38K gemessen?!? Ja, dann wirst du die Widerstände ausbauen müssen, um genau 10k messen zu können. :-o > dass zwischen µC und Level-Shifter zwei 10K Widerstände sind. Definiere zwischen ... Wie lange sind die Leitungen zwischen den beteiligten Komponenten?
Wenn Du es gemäss Datenblatt (Seite 5) gemacht hast ist alles gut, mir war nicht klar ob bei dir dei uC seitigen Widerstände Pullups auf 5V sind. Falls es trotzdem nicht läuft, dann versuche es aber mal mit niderohmigeren Pullups auf beiden Seiten (z.B. 3.3k) dann werden auch die Flanken des SCL steiler!
>Hast du jetzt pullups auf der µC-Seite dran oder nicht? >Definiere zwischen ... Ja klar.Die gehen von den 5V des µC auf die beiden I2C-Leitungen des Levelshifters. >Wie lange sind die Leitungen zwischen den beteiligten Komponenten? Da sich der Sensor nicht mit auf der Platine befindet,wo der µC drauf ist,sind die SCL-,SDA- sowie die Vcc- und GND Leitung von der µC Platine zur Sensorplatine etwa 35cm lang.
@Peter: >Falls es trotzdem nicht läuft, dann versuche es aber mal mit >niderohmigeren Pullups auf beiden Seiten (z.B. 3.3k) dann werden auch >die Flanken des SCL steiler! Danke,das werde ich mal probieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.