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?)
Schau Dir mal den P82B96 von NXP an. siehe: -> http://www.nxp.com/documents/data_sheet/P82B96.pdf Grüße...
Oder der P82B715 ist auch für solche Sachen gedacht. http://www.nxp.com/documents/data_sheet/P82B715.pdf Greez Steff
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.
hvds! High Voltage Diferential Signal. Gibt es als bavstein von maxim. Dann geht es
Du kannst versuchen die Pullupwiderstände am I2C Bus zu verkleinern. Bis runter zu 1k ist in der Spec erlaubt.
Hi Von NXP gibt es noch eine passende AppNote: www.nxp.com/documents/application_note/AN10658.pdf MfG Spess
>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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.