mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Taktsignal


Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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)

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann würde ich noch 4.7k Pullups auf 5V an der ATMEL-µC Seite reinhängen 
(für SCL+SDA)

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?!?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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!

Autor: Phil (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.