Forum: Mikrocontroller und Digitale Elektronik I2C über 10 meter


von mausi (Gast)


Lesenswert?

hallo

ich habe volgendes problem:
ich habe einen Sensor über I2C an meinem Controller. leider muss der 
Sensor 10 Meter entfernt platziert sein.

Ich weiß, dass I2C nicht für so etwas gedacht ist, aber der Sensor ist 
nun mal so.

Momentan benutze ich ein mit Folie abgeschirmtes Netzwerk Kabel und es 
funktioniert zu 90 prozent.

ich brach aber 100!
es gibt immer dropouts, wo kurz keine Daten fließen...

Was kann ich machen?
Gibt es einen einfachen weg das Signal zu verstärken? mit einfach meine 
ich, das ich keine neue Platine dafür ätzen muss.


gibt es fertige Bauteile für sowas. (sowas wie ein Repeater?)

von wayne (Gast)


Lesenswert?

Einfach mit der Frequenz runter

von Joachim S. (jstrand)


Lesenswert?

Kannst du ggf. die Übertragungsrate reduzieren?

von Michael S. (Firma: electro-tester) (michael0307)


Lesenswert?

Schau Dir mal den P82B96 von NXP an.

siehe: -> http://www.nxp.com/documents/data_sheet/P82B96.pdf


Grüße...

von Stefan K. (oxid)


Lesenswert?

Oder der P82B715 ist auch für solche Sachen gedacht.

http://www.nxp.com/documents/data_sheet/P82B715.pdf

Greez Steff

von mausi (Gast)


Lesenswert?

danke für die schnellen antworten!

ein doofe frage: wie geh ich mit der Frequenz runter?
Meint ihr die Frequenz in der ich die Werte abfrage oder die träger 
Frequenz des Signals?

wahrscheinlich letztere.

die kommt ja so aus meinem Sensor raus. Ich könnte den 25 Mhz Quarz der 
dort verbaut ist austauschen.
ansonsten kann ich da nichts machen.

von mausi (Gast)


Lesenswert?

oder gibt der Controller die Frequenz vor?

von kaboom (Gast)


Lesenswert?

hvds! High Voltage Diferential Signal. Gibt es als bavstein von maxim. 
Dann geht es

von Lattice User (Gast)


Lesenswert?

Du kannst versuchen die Pullupwiderstände am I2C Bus zu verkleinern.
Bis runter zu 1k ist in der Spec erlaubt.

von spess53 (Gast)


Lesenswert?

Hi

Von NXP gibt es noch eine passende AppNote:

www.nxp.com/documents/application_note/AN10658.pdf

MfG Spess

von holger (Gast)


Lesenswert?

>die kommt ja so aus meinem Sensor raus. Ich könnte den 25 Mhz Quarz der
>dort verbaut ist austauschen.
>ansonsten kann ich da nichts machen.

Um dann den gesamten uC langsamer zu takten?
Nur weil der I2C Bus nicht auf einer Länge
funktioniert für die er nie vorgesehen war?

>oder gibt der Controller die Frequenz vor?

Wer denn sonst?

>Ich weiß, dass I2C nicht für so etwas gedacht ist, aber der Sensor ist
>nun mal so.

Dann ändere das.

von Klaus D. (kolisson)


Lesenswert?

Hi,

ich hatte bei sowas schonmal Erfolg indem ich die Pullups aufgeteilt
habe.
z.B. 2 Pullups a 2k2 direkt am uC und zwei weitere a 2k2 direkt am 
Slave.

Kannst mal probieren.

Klaus

p.s.
der genannte Takt ist der i2C Takt den man im uC durch Programmierung
einstellt.

von ANdy (Gast)


Lesenswert?

Hallo

Ich habe vor 2 Jahren mein Boot mit I2C Verkabelt und musste feststellen 
das es nicht sauber lief die IC2 Kommunikation.
Ich würde dir empfehlen das ganze Modulartig über CAN Bus zu steuern.

Deinen Sensor mit µC und CAN Controller genau so andere Sensoren und 
dann auch noch die Steuereinheit(Display usw).Ist zwar ein größerer 
aufwand aber du hast keine Problem mehr mit Reichweite (gut ist auch 
begrenzt aber 2,5Km wären möglich bei niedriger Baudrate)Kommunikation 
ist sicher und sauber Beispiele gibt es genug.

Habe diese Variante in meinen Boot NMEA 2000 Konform weil ich meinen 
Motor mit NMEA 2000 mit angeschlossen habe zwecks Motordaten die ich zur 
anzeige bringe. Bis jetzt sehr zuverlässig.

Als Bus einfach Patchkabel (Habe als T-Stück 3 Modularbuchsen auf einer 
Leiterplatte).

Gruß

ANdy

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.