I2C-Bus/Spannungen/Wiederstände

Karsten J.

Erfahrener Benutzer
#1
Moin

Ich habe hier ein Verständnisproblem, hoffe ihr könnt mir weiterhelfen. Ich habe gesehen, dass es von Sparkfun LLC Converter gibt. Leider verstehe ich nicht ganz, wo, bzw. wie und warum man diese anschließen sollte.
Aktuell habe ich mein MWC - Board so angeschlossen:
13763
 

Anhänge

Metro23

Erfahrener Benutzer
#2
Hallo,

ich habe es so wie auf dem Bild angeschlossen, wobei ich alle VCC-Leitungen an D12 habe. In dem Manual des BMA085 wurden 4.7k Ohm Widerstände auf dem I2C-Bus vorgeschlagen, daber habe ich auch diese Pullups eingelötet. Die Sensoren arbeiten mit 3.3V, daher habe ich das Spannungswandlerset und den Pegelwandler eingebaut. Beide Sensoren (HMC5883L und BMP085) sind parallel auf der LV-Seite des Pegelwandlers angelötet. Scheint alles so zu funktionieren.
13791
 

Anhänge

Karsten J.

Erfahrener Benutzer
#5
Welche Spannung liegt denn normalerweise an dem Bus an ?
Ist das 5V (z.b: SDA - GND) ?
Weil bei meinem Board sind es nur ca. 2.7V

Gruß Karsten
 

Metro23

Erfahrener Benutzer
#6
Waldmensch hat gesagt.:
Je mehr Pullups man einlötet um so weniger Pullupwiderestand hat man im Gesamten. (Widerstandsparallelschaltung)
Soll bedeuten das ich die 2 externen 4.7k Pullups bei Einbau des Pegelwandlers (10k) wieder rausschmeissen kann ?
 

Karsten J.

Erfahrener Benutzer
#7
Hi

Ich habe gerade nochmal nachgemessen wegen den Pullup Wiederständen.
Zwischen 3.3V und SDA / SCL liegen auf dem Jussiboard bereits 4.7k Wiederstände.
Muss ich jetzt zusätzlich noch 2.2k (bzw. 4.7k) Wiederstände zwischen 5V und SDA / SCL löten ?
 

Waldmensch

Erfahrener Benutzer
#8
Wichtig ist das im gesamten I2C Bus nur 2! Pullups (SDA/SCL) sind. Jedes weitere Widerstandspaar SENKT den Gesamtwiderstand!

http://www.elektronik-kompendium.de/sites/slt/0110192.htm

Nehmt doch einfach ein Multimeter und meßt, bei stromlosen Board, den Widerstand zwischen VCC und SDA/SCL. Das ist dann der Pullupwiderstand
 

kalle123

Jugend forscht ....
#9
Waldmensch hat gesagt.:
Wichtig ist das im gesamten I2C Bus nur 2! Pullups (SDA/SCL) sind. Jedes weitere Widerstandspaar SENKT den Gesamtwiderstand!
Im Sparkfun sind 10 k pullups SDA/SCL sowohl auf der HV als auch auf der LV Seite.

Siehe Bild oben.

Diskutieren wir jetzt hier, welchen Wert diese pullups haben sollen?

Sind 10 k zu hoch, 2.2 k zu niedrig, 4.7 k ideal :???: oder vielleicht anders rum ....
 

JUERGEN_

Generation 60++
#10
Karsten J. hat gesagt.:
Ich habe gerade nochmal nachgemessen wegen den Pullup Wiederständen.
Zwischen 3.3V und SDA / SCL liegen auf dem Jussiboard bereits 4.7k Wiederstände.
Muss ich jetzt zusätzlich noch 2.2k (bzw. 4.7k) Wiederstände zwischen 5V und SDA / SCL löten ?
.... ;)
zusätzlich 2K2 nicht.
hängt davon ab wieviel Sensoren du verbaut hast.
jeder zusätzliche Teilnehmer ist auch eine kapazitive Last, und verschlechtert das Signal.

wieviel Einzelwiderstände nun drauf sind ist eigentlich Wurscht, solange >= 2K2 gemessen wird.

dabei haben sich, seit der Softwareversion > V1.9 , Pullup Werte unter 4K7 bewährt.

:rot:
 

Waldmensch

Erfahrener Benutzer
#11
Alle 3 Paare zusammen verwendet ergeben 1,3033k. (Online Widerstandsrechner: http://www.sengpielaudio.com/Rechner-parawid.htm ) Was passiert wenn man die internen Pullups dann noch einschaltet k.A. Wird dann aber sicher noch weniger.

Die 2,2k des BMA020 reiche bei mir für das ganze System.
Was man im Netz findet:
R zu niedrig = Fehler
R zu hoch = Bus träge.

Wobei alles bis 10k glaube ich ok ist und Trägheit so bei 100k einsetzt
 

JUERGEN_

Generation 60++
#12
Waldmensch hat gesagt.:
Was passiert wenn man die internen Pullups dann noch einschaltet k.A.
Wird dann aber sicher noch weniger.
das spielt eigentlich keine Rolle mehr da >30K, siehe dein Rechner. ;)
es belastet nur die CPU mit zusätzlicher Umschalterei. :/:

andererseits, was hast du für einen ELV-BMA020 :???:
meiner hat 10K Pullup. :S: ... und das ist ab Version > 1.9 zu hochohmig.

:rot:
 

Waldmensch

Erfahrener Benutzer
#13
Ich messe mit Multimeter auf meinem Paris zwischen VCC und SDA bzw SCL 3,18k

BMA020 mit gesetzten Pullup
ITG Huckepack mit entfernten Pullups (s.Wiki)
Paris - keine Pullups gesetzt
Ardu - keine internen Pullups
400kHz

Somit sind die einzigen Pullups im System die des BMA020. Ich habe von 1.8 bis 2.0pre3 keinerlei I2C error mit diesem Setup in der GUI. Bei 3 WiiCoptern identisches Setup

Wenn ich allerdings an dieses Setup noch einen SRF02 anschließe hagelt es Errors. Das liegt (vermute ich) daran, das der SRF02 feste Pullups (Datenblatt) verbaut hat. Ein Test mit SRF02 und entfernter Pullup Brücke auf dem BMA020 steht noch aus.
 

kalle123

Jugend forscht ....
#16
Waldmensch hat gesagt.:
Kurz gesagt, wenn unabhängig von der Anzeige im GUI (also auch in der Luft wo evtl Störungen durch Regler und Spannungsschwankungen dazukommen) keine I2C Errors passieren ist alles im grünen Bereich
Das vereinfacht das Procedere!! :)
 

Waldmensch

Erfahrener Benutzer
#17
kalle123 hat gesagt.:
Waldmensch hat gesagt.:
Kurz gesagt, wenn unabhängig von der Anzeige im GUI (also auch in der Luft wo evtl Störungen durch Regler und Spannungsschwankungen dazukommen) keine I2C Errors passieren ist alles im grünen Bereich
Das vereinfacht das Procedere!! :)
Jo, is aber so. Im Labor ist immer alles optimal :D
 

Karsten J.

Erfahrener Benutzer
#18
Im Labor sah es gut aus... aber der MAG regelt keinen "Stratz" obwohl er in der GUI richtig angezeigt wird :???:
 
FPV1

Banggood

Oben Unten