Forum: Mikrocontroller und Digitale Elektronik RS485 Modbus Kommunikation steigt bei gewissen Temperaturen aus


von Antonio C. (antonio-c)


Lesenswert?

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

von christian (Gast)


Lesenswert?

Benutze eine MAXX 485EESA als 485 baustein. Den benutzen wir auch bei 
unserer Baustellentechnik (Ampeln).

von Stefan W. (wswbln)


Lesenswert?

Antonio Carlucci schrieb:
> Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll???

Speicher-Scope oder Logikanalysator?

von Falk B. (falk)


Lesenswert?

@  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

von Downer (Gast)


Lesenswert?

Antonio Carlucci schrieb:
> Kann mir da Einer einige Tipps geben wie ich weiter vorgehen soll???

Schaltplan und Photos des Aufbaus hier posten.

von Antonio C. (antonio-c)



Lesenswert?

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)

von Falk B. (falk)


Lesenswert?

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

von Antonio C. (antonio-c)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@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

von Antonio C. (antonio-c)


Lesenswert?

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

von Antonio C. (antonio-c)


Angehängte Dateien:

Lesenswert?

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???

von Falk B. (falk)


Lesenswert?

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