Hallo Leute Wir haben in unserer Firma ein Gas Parameter Sensor entwickelt. Der Sensor kann die Dichte Temperatur Druck und Feuchte von verschiedenen Gasen messen. Der Einsatz ist z.B. in Hochspannungs-Schaltanlagen bei Unterwerken. Die Kommunikation basiert auf RS485/Modbus. Der Mikrocontroller ist ein PIC24F16KA101-E/MQ; QFN20. http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en539798 Nun zum Problem: Beim Testen der RS485 Schnittstelle im Ofen bei -40°C – 70°C steigt die Kommunikation bei verschiedenen Temperaturen aus. Ich habe 2 verschiedene RS485 Treiber getestet, die bei folgenden Temperaturen austeigen: - LTC1480IS8#PBF (spec -40-85°C) http://www.linear.com/product/LTC1480 nahe bei 0°C - SN65HVD1781 (spec -40-125°C) http://www.ti.com/product/sn65hvd1781 bei -40°C und 70°C Ich verwende ein CAT5 Kabel (5m, 100Ohm Impedanz) mit je 120 Ohm Abschlusswiderstände an beiden Enden. Im PC steckt eine MOXA PCI/2xRS485-Karte drin. http://www.moxa.com/product/cp-132.htm Ein Problem in der Software besteht eigentlich nicht, da ich nur den Sensor im Ofen hatte und den Treiber, mit ca. 30 cm CAT5 Kabel abgesetzt, draussen war. Da lief die Kommunikation gut. Der abgesetzte Treiber nach draussen war der LTC1480IS8#PBF. Etwas noch zur Fehlerbeschreibung: Der Master zeigt Timeout Error nach 1 sek. und der Sensor ist nicht mehr ansprechbar. Nach einem Reset des Sensors (Netgerät Aus/Ein) läuft die Kommunikation wieder. Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll??? Danke und Gruss Antonio
Benutze eine MAXX 485EESA als 485 baustein. Den benutzen wir auch bei unserer Baustellentechnik (Ampeln).
Antonio Carlucci schrieb: > Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll??? Speicher-Scope oder Logikanalysator?
@ Antonio Carlucci (antonio-c) >verschiedene RS485 Treiber getestet, die bei folgenden Temperaturen >austeigen: Warum meinst du, dass die RS485 Treiber aussteigen? Die Dinger sind robust und einfach gebaut, da kann nicht viel aussteigen. >Ich verwende ein CAT5 Kabel Nobel geht die Welt zu grunde. >Ein Problem in der Software besteht eigentlich nicht, Erster Irrtum! Das kannst du im Moment gar nicht auschließen! >Der Master zeigt Timeout Error nach 1 sek. und der Sensor ist nicht mehr >ansprechbar. Nach einem Reset des Sensors (Netgerät Aus/Ein) läuft die >Kommunikation wieder. Was glaubst du macht ein Software-Reset an einem Baustein wie den RS485 Treibern? Rein gar nichts. >Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll??? MESSEN statt raten. Mindestens die RS485 Leitung ans Oszi, ggf. andere Signale am Treiber. Ich vermute mal, da fehlt die richtige Pull-Up Beschaltung am Bus, siehe RS485. Oder es fehlen Pull-Ups am Baustein, Z.B. für den RO. MFG Falk
Antonio Carlucci schrieb: > Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll??? Schaltplan und Photos des Aufbaus hier posten.
Vielen Dank für die raschen Antworten. Im Anhang findet Ihr einige Unterlagen wie: - Beschaltung Pull-Up / Pull-Down beim Moxa-RS485 Konverters - Skizze Messaufbau mit Ofen - Schaltpläne (beim Schaltplan_RS485 ist die ganze Schutzschaltung auf dem Bus nicht bestückt)
Sieht erstmal OK aus. Aber es fehlt ein Pull-Up am Ausgang R vom Tranceiver. Ausserdem haben die PICs ne Macke beim UART, ich weiß nicht mehr genau wie das war, aber irgendwie kann sich der RX UART festfressen, wenn er einen Überlauf bekommt. Dann muss man ihn explizit deaktivieren und wieder aktivieren. Oder so ähnlich, ist lange her. Jedenfalls deutlich anderes Verhalten als bei den AVRs. MFG Falk
Hallo Falk Im Datenblatt des Treibers steht nichts von Pull Up am R Ausgang. Hast Du da eine App Note die Du mir senden könntest? Danke und Gruss Antonio
@Antonio Carlucci (antonio-c) >Im Datenblatt des Treibers steht nichts von Pull Up am R Ausgang. Sicher, aber dort steht auch, dass der Ausgang in Tristate geht, wenn der Empfänger inaktiv geschaltet wird. Und dann floated dein Netz, an dem das RX vom PIC hängt. Kein gute Idee. Es reicht auch, den internen Pull-Up im PIC einzuschalten, wenn er welche hat. MFG Falk
Danke Falk, ich kann im PIC in Reg CNPU1 und CNPD1 jeweils die Widerstände ein-/ und ausschalten. Probier's mal so... ps: gerade jetzt habe ich en MAX14841EASA+ auf mein Tisch erhalten, der kommt aber nachher dran... ;) mfg Antonio
noch ne Frage zu den Pull-Up-Down Widerstände am Bus: In der Spezifikation von Modbus.org sind die Widerstände gemäss file PullUpDown_ModbusOrg.GIF zu setzen. Gemäss Beschreibung im Thread RS485, file PullUpDown_Forum.GIF gerade umgekehrt. Wenn die Widerstände bei mir gemäss Thread RS485 gesetzt sind, funktioniert die Kommunikation nicht mehr. Ich nehme aber an, die Spezifikation von Modbus.org wird eher stimmen... oder???
@ Antonio Carlucci (antonio-c) >Gemäss Beschreibung im Thread RS485, file PullUpDown_Forum.GIF gerade >umgekehrt. Ach so, da ist nur die Polarität vertauscht. >Ich nehme aber an, die Spezifikation von Modbus.org wird eher stimmen... Jo. MfG Falk
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.





