Hallo,
in einem kleinen Projekt im Auto wollte ich unter anderem auch
I2C-Temperatursensoren (LM75) im Motorraum verbauen. Diese sollen von
einem PIC16F628 über einen in Software realisierten I2C-Bus (Low-Speed)
zyklisch abgefragt werden und auf einem LCD-Display ausgegebne werden.
Dass die Sensoren sehr gut gegen Feuchtigkeit geschützt werden müssen
ist soweit kein Problem. Allerdings ergeben sich für mich einige Fragen
bezüglich der elektrischen Konzeption:
- Da I2C eigentlich ja nicht für mehrere Meter in rauher Umgebaung
(Störungen durch Zündung, Generator) konzipiert ist, stelle ich mir die
Frage, ob die Übertragung überhaupt funktionieren kann. Ich hatte an ein
CAT7-Kabel gedacht, bei dem ich an jeweils ein verdrilltes Adernpaar für
SDA/GND und SCL/GND verwende. Den Schirm dann auch auf GND.
- GND nur Controllerseitig mit der Fahrzeugmasse verbinden, damit keine
Ströme über das Kabel fließen und die Sensoren isoliert montieren?
- Oder zerbröselt mir das CAT7-Kabel nach kurzer Zeit durch die extremen
Temperaturbereiche?
- möglichst kleine PullUp-Widerstände verwenden?
Das ganze natürlich mit LowSpeed-Übertragung, ich würde nur gern die
Sensoren möglichst einfach halten und dort auf Repeater/Businterfaces
verzichten.
- Reicht es aus, die Versorgungsspannung über eine Drossel gut gesiebt
(~1000µF) auf einen 7805 zu geben, oder sollte ich noch zusätzliche
Überspannungsschutzmaßnahmen einbauen? Den Controller selbst möchte ich
in ein Metallgehäuse einbauen.
- Lohnt sich beim LM75 eine Offsetkalibration für 0°C mit Eiswasser,
oder ist die Methode auch nicht genauer als der LM75 von Werk aus?
Soweit mal meine Gedanken. Sollte das funktionieren, oder mache ich da
einen Denkfehler.
Peter
Ob I2C die harsche Umgebung aushält, kann im Endeffekt nur der Versuch
zeigen. Hierbei kommt es natürlich auch auf die Länge des Kabels zum
Sensor hin. Im allgemeinen wäre es besser als Übertragung ein
symmetrisches Verfahren wie RS485 oder CAN zu verwenden. Der Kabelschirm
sollte auf jeden Fall auf beiden Seiten auf Masse gelegt werden. Das
einseitige Erden des Schirmes gilt nur für analoge Signalübertragung.
Einen Überspannungsschutz würde ich auf jeden Fall vorsehen. Eine
Entsörung mit LC-Kombi auch. Hierzu lohnt sich ein Blick in das Buch:
"Trilogie der Induktivitäten" von Würth Elektronik. Dort sind
Entstörungsmaßnahmen sehr gut beschrieben. Bei CAT-7Kabel ist auch noch
zu überlegen, ob es die Schwingungen im Fahreug über längere Zeit
unbeschadet übersteht. Aber das kommt auch daruaf an, ob es fixiert ist,
ansonsten sollte man villeicht zu hochflexiblen Kabel greifen (Lapp
Unitronic FD CY o.ä.)
STS wrote:
> symmetrisches Verfahren wie RS485 oder CAN zu verwenden. Der Kabelschirm> sollte auf jeden Fall auf beiden Seiten auf Masse gelegt werden. Das
Das meinst du doch nicht ernst? Im Kfz? Da werden plötzlich ganz
ordentliche Ausgleichsströme über den Schirm fließen die dir mit etwas
Glück nur die Übertragung stören. Sowieso im Motorraum wo sich Ströme im
Bereich von >50A rumtreiben.
Zum Ursprungsproblem:
Ich würde, auch wenns schmerzt eher zu einer symetrischen Übertragung
(RS485) greifen. Dann werden aus dem einen Chip zwar drei aber die
Störsicherheit dürfte um Größenordnungen besser sein als mit I2C (der
ist ja schließlich als Inter-IC Bus auf einer Leiterplatte gedacht.
Matthias
Doch das meine ich ernst. Es ist ein Trugschluß, daß magnetisch
induzierte Ströme durch einseitige Schirmung abgehalten werden.
siehe dazu:
www.emvtechnik.ch/Text/Abschirmung/Potentialausgleich%20und%20Erdungskon
zept.pdf
oder hier:
www.stl-online.de/s04.htm
oder hier:
www.bbr-service.de/emv.pdf
Der Stromfluß über den Schirm muß durch einen ordnungsgemäßen
Potentialausgleich (in der Industrie durch parallel geführte
Ausgleichskabel) verhindert werden. Die beidseitige Schirmung ist
übliche Praxis bei der Verkablung von Informationssystemen in der
Industie (Profibus DP, CAN usw.)
Wenn die Karosse einen ordnungsgemäßen Potentialausgleich gewährt,
fließt auch kein Ausgleichsstrom über den Schirm. In kritischen Fällen
und EX-Umgebungen wird eine Seite über einen Kondensator geerdet.
PS: Mach mal einen Surge Test im EMV-Labor (Kabelzange) mit einseitiger
Schirmung, schließe dann die andere Seite an. Ein Unterschied wie Tag
und Nacht!
das kat7 kabel könnte man evtl. mit panzerrohr sowas in der art wie der
conrad unter best. 621758 - 62 schützen. sowas gibts glaub ich auch für
den automobilbereich, das hält dann temeraturen ~120° aus. dann halt
vielleicht nicht unbedingt am krümmer des motors verlegen ;-)
Danke erstmal für eure Antworten!
> Das meinst du doch nicht ernst? Im Kfz? Da werden plötzlich ganz> ordentliche Ausgleichsströme über den Schirm fließen die dir mit etwas> Glück nur die Übertragung stören. Sowieso im Motorraum wo sich Ströme im> Bereich von >50A rumtreiben.
Das war auch so in etwa mein Gedanken bei der Überlegung. Andererseits
scheint mir das Auto noch halbwegs ordentlich verschweißt ;-)
Die Lösung mit dem Kondensator an ein Ende gefällt mir.
> Im allgemeinen wäre es besser als Übertragung ein> symmetrisches Verfahren wie RS485 oder CAN zu verwenden.
Soweit klar, aber geht es hierbei um die physikalische oder logische
Übertragung. Klar, RS485 oder CAN ermöglichen auch die Integrität der
Daten zu überprüfen, aber das wäre erstmal sekundär (wenn der Wert allzu
sehr abweicht wird er verworfen). Also geht es in erster Linie um
symmetrische Übertragung und nicht das Protokoll selbst?
Ich gehe mal davon aus, dass es wohl nicht funktioniert, die I2C-Drähte
analog in ein symmetrisches Signal zu wandeln, da ja alle Teilnehmer die
Datenleitung auf Low ziehen können müssen, oder?
An jeden Sensor noch mal einen Controller ranzubasteln erscheint mir
jetzt auch nicht sehr elegant... Und ich seh das doch richtig, dass mir
ein "0815-TTL-RS458-...-Converter" nicht besonders viel bringt, eben
wegen der bidirektionalen Datenleitung?
Peter,
schon mal an analoge Übertragung mittels 4-20mA current loop interface
gedacht?
- Nur zwei Adern nötig
- Unempfindlich gegen Störungen da Stromschleife
- Speisung erfolgt ebenfalls über die Stromschleife
Von Burr-Brown gibt es da ein paar interessante ICs (XTR-Serie), in den
Beispielschaltungen vom XTR105 sind auch Schemata für Thermoelement bzw.
RTD (z.B. Pt100) zu finden. Nachteil: nicht ganz billig (zumindest
verglichen mit dem Preis eines LM75 und wenn Du die Arbeitsstunden, die
Du damit verbringst, den i2c Bus in dieser eigentlich total ungeeigneten
Anwendung zum Laufen zu kriegen nicht mit einrechnest), ausserdem
braucht Dein uP noch einen ADC und etwas Zugemüse.
Gruss,
Thorsten
Hm, in die Stromschleifengeschichte muss ich mich erst mal einlesen,
aber es klingt auch interessant.
Kurz zum Verständnis:
Der Konverter kommt also an den Temperatursensor und wird dort analog in
einen Strom zwischen 4 und 20mA gewandelt. Controllerseitig liefere ich
diese 20mA und wandle sie über den Spannungsabfall über einem Widerstand
in eine Spannung, die ich dann auf den AD gebe?
Weshalb ich die LM75 überhaupt im Auge hatte:
- Laufen erstmal auch ohne Kalibrierung sofort
- I2C-Bus habe ich schonmal erfolgreich im Assembler integriert
- und nicht zu letzt: sie wäre bezahlt und liegen hier rum ;-)
Hm, vielleicht muss ich aber doch Alternativen in Betracht ziehen, weil
eigentlich wollte ich den Sensoren nicht mehr Intelligenz als der
restlichen Bordelektronik verpassen ;-)
> Wie wäre es mit LWL? (Lichtwellenleiter)
Beim ersten Lesen dachte ich:
Klasse, über den LWL kann ich dann auch die Kanone auslösen, mit der ich
auf den Spatz schieß ;-)
Da aber keine Ironietags da sind vermute ich mal es ist ernst gemeint.
Naja, da fehlt mir das KnowHow, allein schon um so eine Leitung zu
verlegen. Letztendlich ist es doch nur ein kleines Bastelprojekt.
Hallo Peter,
jau, das mit der Stromschleife hast Du richtig erfasst. Braucht deine
Schaltung weniger als 4mA, kannst Du sie direkt von der Stromschleife
speisen, also nur zwei Adern für Signal und Speisung!
Controllerseitig kannst Du entweder die an einem Widerstand abfallende
Spannung messen und entsprechend aufbereiten, für faule Leute wie mich
hat BB aber noch den RCV420 im Programm, der hat das alles schon drin
und liefert ganz angenehm 0-5V für 4-20mA. Leider ist er nicht
kurzschlussfest, so dass man doch noch ein paar Bauteile braucht (z.B.
JFET plus Widerstand, hast Du genug Speisespannung zur Verfügung reicht
ein Widerstand).
Gruss,
Thorsten
Hallo Thorsten,
danke für die detaillierten Infos. Ich werde mich die nächsten Tage mal
durch die Datenblätter der einzelnen Chips durchschlagen. Wobei die
Preise ja leider nicht ganz ohne sind ;-(
Noch eine andere Frage:
Könnte man so eine Stomschnittstelle nicht auch einfach digital mit
einem Controller (wäre ja hier sogar preiswerter) realisieren? Also in
diesem Fall: I2C-Sensor wird von einem neben ihm plazierten PIC
abgefragt. Der Controller bereitet die Daten auf
(Zweierkomplement->ASCII) und gibt sie ganz normal über ein beliebiges
serielles Protokoll aus. Nur ist der Ausgang eben nicht an eine normale
Leitung sondern über einen Widerstand auf Masse verbunden und verändert
somit seinen Stromverbrauch.
Auf der entfernten Schaltung wird wieder über den Spannungsabfall der
Sensorplatine gemessen und über einen simplen OpAmp in ein 0/5V-Signal
gewandelt.
Sicher technologisch nicht das Ei des Kolumbus, aber mich würde spontan
interessieren, ob das auch funktionieren könnte.
Peter
Naja,wenn du die Sache so lösen magst,kannst du ja die Daten von einem
Pic oder AVR über eine gaanz kurze Verbindung einlesen lassen und dann
über die UART an eine MAX485 oder ähnliches weitergeben...
Wieso nicht einfach einfach? Analogen Temperatursensor mit RC Glied so
entstören das schnelle Impulse keine Änderung des Signals bewirken.
Notfalls auch in Software dann benötigt man nicht mal ein RC-Filter.
> Wieso nicht einfach einfach?
Weil man mal wieder schlauer sein will als die Autohersteller, die ja
einfach NTC-Widerstaende verwenden. Ausserdem koennte es sein das es
noch eine Angst vor dem Operationsverstaerker gibt. Wir leben ja nun im
Nur-Digital-ist-gut Zeitalter. :-)
Olaf
Peter schrieb:> Kurz zum Verständnis:> Der Konverter kommt also an den Temperatursensor und wird dort analog in> einen Strom zwischen 4 und 20mA gewandelt. Controllerseitig liefere ich> diese 20mA und wandle sie über den Spannungsabfall über einem Widerstand> in eine Spannung, die ich dann auf den AD gebe?
In diesem Zusammenhang darfst Du Dir die Analog Devices AD590 und AD592
anschauen. Zitat "The AD590 is particularly useful in remote sensing
applications. The device is insensitive to voltage drops over long lines
due to its high impedance current output. Any well insulated twisted
pair is sufficient for operation hundreds of feet from the receiving
circuitry."
Der AD590 bekommt 5v und läßt einen Strom durch, der in µA gemessen der
Temperatur in °K entspricht. Heißt also: Bei 25°C=298.2°K gibts 298.2µA.
Einfach, was? Da das Teil einen Strom einprägt, funktioniert das auch
mit langen Zuleitungen (siehe Zitat).
Das Teil gibts unter anderem bei Réichelt, ist also kauf- und bezahlbar.
Das ist gegenüber I2C die störsicherere Variante.
fchk
Hi!
Die Blaupunkt Radios verwenden auch I2C zum steuern der Wechsler.
Wie du schon richtig geschrieben hast, ist es gut, möglichst geringe
Pullupwiderstände zu verwenden. Die Eingänge (SDA auf beiden Seiten,
SCLK auf er Slave Seite) am besten nicht direkt anschließen sondern über
ein RC-Tiefpassfilter leiten. R*C (=tau) sollte ca. 1/10 der Bitdauer
sein.
Gruß
Stefan
>in einem kleinen Projekt im Auto wollte ich unter anderem auch>I2C-Temperatursensoren (LM75) im Motorraum verbauen
Warum nimmst du nicht einfach analoge Temp-Sensoren, bsp KTY.., statt
dem (störanfällgen) Bus, und hängst die ganz einfach an den uC dran?
(Mit Varistor)
Etwaige Störsgnale an den Temp-Sensoren kann man dann ganz einfach
rausfiltern.
Im Motorraum würde ich keinen Bus mit TTL-Signalen, dessen Protokoll
nicht mehrfach gesichert ist, rein legen.
Thomas O. schrieb:> Notfalls auch in Software dann benötigt man nicht mal ein RC-Filter.
RC-Filter braucht man immer wenn zeit-diskret abgetastet wird.
(Anti-Aliasing Filter).
Im Auto auch gegen Kurzschlüsse nach Batteriepotential wenn sich der
Kabelbaum nach ein paar Jahren durchgescheuert hat, bzw. auch als
ergänzender Schutz gegen ESD.
Gruß Anja