Forum: Mikrocontroller und Digitale Elektronik I2C bei verschiedenen Vcc


von Ths S. (motorburner)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte mir ein kleines Lambdatool basteln, dafür soll ein 
vorhandener Arduino Nano V3 herhalten.

Die Informationen kommen per I2C oder 0-5V Analog von einem 
CJ125-Controller (Spartan 2 OEM) und sollen nach Verarbeitung durch den 
Arduino auf einem 16x2 LC-Display angezeigt werden. I2C ist bevorzugt - 
nur wenn ich das nicht zum Laufen bekomme, sollen die Werte analog 
kommen.

Die Versorgungsspannung liegt bei nominell 12V, schwankt aber von 
12-14V. Nun ist es so, dass sowohl das Spartan-Board eine 5V-Versorgung 
hat, als auch der Arduino. Die 5V (lt. Doku max. 25mA) des Spartan 
dienen der Analogreferenz des Arduino, würden aber nicht für die 
komplette Versorgung von Arduino und des Displays reichen.

Daraus folgt, dass ich 2 5V-Schienen habe: die vom Spartan und die vom 
Arduino/Display. Auf welche der beiden Schienen ziehe ich jetzt 
sinnvollerweise die Pull-Up Widerstände der beiden I2C-Leitungen?

Vielen Dank für eure Hilfe!

PS: Ich weiß, dass hier ab und an ein straffer Umgangston herrscht. Ich 
würde mich dennoch freuen, wenn keine zynischen Antworten von euch 
kommen. Ich bin wirklich auf Hilfe angewiesen und möchte nicht trollen 
oder Salamitaktik anwenden.

PPS: Falls Fragen bzgl. R1 aufkommen - den habe ich eingefügt, um den 
LM1117  auf dem Nano-Board ein wenig zu entlasten.

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

Ths S. schrieb:
> Auf welche der beiden Schienen ziehe ich jetzt
> sinnvollerweise die Pull-Up Widerstände der beiden I2C-Leitungen?

Für sowas gibt es Level-Shifter.
Aber: I²C ist ein Open-Kollector-Bus.
Die beiden Massen zusamenschalten und dann halt nur einen der beiden 
5V-Stränge verwenden.

von Frank K. (fchk)


Lesenswert?

Ich würde die 5V vom Arduino nehmen. Wenn Dein Spartan mal nicht 
vorhanden ist, würde ein anderer I2C Slave (EEPROM, irgendein Sensor, 
LCD oder wasweißich) dann trotzdem noch funktionieren.

fchk

von Harald K. (kirnbichler)


Lesenswert?

Rahul D. schrieb:
> Für sowas gibt es Level-Shifter.

Bei zwei gleichen Spannungen? Nee. Da braucht man sowas nicht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Ths S. schrieb:
> Die Versorgungsspannung liegt bei nominell 12V, schwankt aber von
> 12-14V.

Vermutlich handelt es sich dabei um eine Kfz-Stromversorgung. Hier kann 
es zu deutlich höheren Spannungsspitzen, Spannungseinbrüchen und sogar 
zur Umkehr kommen. Es gibt unzählige Publikationen, in denen die 
entsprechenden anzunehmenden Spannungsverläufe und Prüfimpulse 
dargestellt sind.

Es empfiehlt sich daher sehr deutlich, eine geeignete Stromversogung zu 
realisieren, die dann gleich die gemeinsamen 5 V für Arduino- und 
Spartan-Boards erzeugt. Oder ggf. auch gleich die "richtigen" Spannungen 
(3,3 V, usw.) erzeugen.

> Daraus folgt, dass ich 2 5V-Schienen habe: die vom Spartan und die vom
> Arduino/Display. Auf welche der beiden Schienen ziehe ich jetzt
> sinnvollerweise die Pull-Up Widerstände der beiden I2C-Leitungen?

Genau. Realisiere lieber eine einzelne ordentliche Spannungsversorgung 
statt solch einer Flickschusterei. Dann lässt sich nämlich auch noch 
recht leicht eine kleine "USV" mittels Supercap auf einer höheren 
Spannungsebene realisieren, z.B. 12 V. Das sind natürlich nicht die 12 V 
direkt aus dem Bordnetz, sondern eine ggf. per Buck-Boost-Konverter von 
"12 V" auf 12 V umgesetzte "Zwischenkreisspannung".

von Falk B. (falk)


Lesenswert?

Ths S. schrieb:

> Die Versorgungsspannung liegt bei nominell 12V, schwankt aber von
> 12-14V.

Bordspannung.

> Daraus folgt, dass ich 2 5V-Schienen habe: die vom Spartan und die vom
> Arduino/Display. Auf welche der beiden Schienen ziehe ich jetzt
> sinnvollerweise die Pull-Up Widerstände der beiden I2C-Leitungen?

Ist egal, wenn alles fest verdrahtet ist. Wenn das Spartan 2 OEM Modul 
steckbar ist, dann die 5V fom Arduino.

> PPS: Falls Fragen bzgl. R1 aufkommen - den habe ich eingefügt, um den
> LM1117  auf dem Nano-Board ein wenig zu entlasten.

Ist weder nötig noch so sinnvoll.

1) Der Arduino Nano + LCD zieht ca. 40mA. Macht P=U*I = (14V-5V)*40mA = 
360mW. Das ist kein Problem.
2) Wenn man ihn wirklich entlasten will, nimmt man eine passene Z-Diode, 
denn die hat einen konstanten, praktisch stromunabhängigen 
Spannungsabfall.  Dem LM1117 sollte man min. 7V Eingangsspannung +1V 
Reserve gönnen, Umin = 12V, macht dUmin = 4V. Also eine 3,9V Z-Diode mit 
1,3W oder so. Lohnt sich aber kaum.

von Falk B. (falk)


Lesenswert?

Andreas S. schrieb:
> Ths S. schrieb:
>> Die Versorgungsspannung liegt bei nominell 12V, schwankt aber von
>> 12-14V.
>
> Vermutlich handelt es sich dabei um eine Kfz-Stromversorgung. Hier kann
> es zu deutlich höheren Spannungsspitzen, Spannungseinbrüchen und sogar
> zur Umkehr kommen. Es gibt unzählige Publikationen, in denen die
> entsprechenden anzunehmenden Spannungsverläufe und Prüfimpulse
> dargestellt sind.

Stimmt.

> Es empfiehlt sich daher sehr deutlich, eine geeignete Stromversogung zu
> realisieren, die dann gleich die gemeinsamen 5 V für Arduino- und
> Spartan-Boards erzeugt. Oder ggf. auch gleich die "richtigen" Spannungen
> (3,3 V, usw.) erzeugen.

Nö, denn die gibt es schon. Man muss es nicht immer übertreiben. Er hat 
schon ne 15V TVS Diode am Eingang. Noch ne Verpolschutzdiode und für den 
Anfang reicht es.

> Genau. Realisiere lieber eine einzelne ordentliche Spannungsversorgung
> statt solch einer Flickschusterei.

So ein Unsinn!

 Dann lässt sich nämlich auch noch
> recht leicht eine kleine "USV" mittels Supercap auf einer höheren
> Spannungsebene realisieren, z.B. 12 V. Das sind natürlich nicht die 12 V
> direkt aus dem Bordnetz, sondern eine ggf. per Buck-Boost-Konverter von
> "12 V" auf 12 V umgesetzte "Zwischenkreisspannung".

Es lebe das Overenineering!

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Diese Verbindung von 5V_OUT vom Spartan2_OEM nach AREF vom Arduino 
gefaellt mir garnicht.
Von welchen 5V jetzt die I2C-Pullups gespeist werden, wuerde ich viel 
entspannter sehen, nur vorher mal sichergehen, dass der 
Spartan2_OEM-I2C-Bus auch wirklich fuer 5V gedacht ist...

Gruss
WK

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
Noch kein Account? Hier anmelden.