Identifikation Modbus-Controller-IC auf Platine

OP #8084941
Lesenswert?

Ich arbeite gerade daran, meine Dimplex-Wohnraumlüftung in mein Smart Home zu integrieren. Diese Lüftungssteuerung bietet von Werk aus eine Modbus-Ansteuerung, allerdings mit einem Twist: Seitens der Steuerplatine sind zwar alle Ausgänge und die Software-Optionen vorhanden, um allerdings direkt die Modbus-Leitungen A-, B+ und GND verbinden zu können, benötigt es einen eigenen Modbus-Platinenaufsatz, der die Pins des Microcontrollers konvertiert.

Dieser Aufsatz kostet über 100 €, und wenn ich mir die Produktbilder dazu ansehe, merke ich: auf dieser Platine befindet sich genau ein Controller, ein Widerstand und ein Kondensator - das war es. Mir scheint die Platine also massiv überteuert, insbesondere, da ich in einer Mietwohnung wohne.

Hat jemand Tipps, wie ich die Komponenten auf der Platine, insbesondere den Modbus-Controller anhand des Produktfotos (eine bessere Auflösung finde ich leider nicht) identifizieren, oder zumindest abschätzen kann? Oder weiß vl. überhaupt jemand direkt anhand der von mir aus dem Foto getracten Pinbelegung, welcher in Frage kommen könnte?

Was ich bereits sagen kann: der Microcontroller, der die Modbus-Platine ansteuert, ist ein STMicroelectronics STM8S208RBT6. Die einzelnen Pin-Belegungen konnte ich auch bereits tracen (siehe Bild im Anhang). Was mir allerdings fehlt ist der konkrete Typ des Modbus-Controllers. Ich vermute, dass es ein richtiger Controller und nicht nur ein Level Shifter oder so etwas ist, da aus den RX- und TX-Pins des Microcontrollers keine direkten Modbus-Signale lesbar sind. Auf der anderen Seite benötige ich für meinen ESP32 ebenfalls einen Modbus-Adapter, auf dem ein MAX485-Controller für das Modbus-Signal sorgt.

#8084989
Lesenswert?

Bei den gängigen Halb-Duplex RS485-Treibern ist Pin 2 nRE und Pin 3 DE. Auf dem Bildern kann man ganz gut erkennen, dass die beiden zusammengeschlossen sind und auf das Via rechts unter dem IC200 geführt sind. Vermutlich geht diese Verbindung dann auf der Unterseite an den unteren Pin der 3-poligen Stiftleiste, der hier mit GND beschriftet wurde. Da beide Stiftleisten wohl auf die gleich Platine gesteckt werden, wäre die zweite GND-Verbindung redundant und somit erscheint es mit logisch, dass es DE/nRE sein müsste. Kann man aber nur am realen Objekt überprüfen.

Nick schrieb:

Und die Abschlusswiderstände sind nicht bestückt?

Ein 120R-Abschlusswiderstand ist oberhalb von IC200 zu sehen. Beschriftung scheint "1200" zu sein. Also 120R.

Angehängte Dateien:
#8085411
Lesenswert?

Nick schrieb:

Stand das im Bundesanzeiger, dass man dich vorher gefälligst zu fragen hat?

Einfache Frage, patzige dämliche Antwort? Wir verwenden in der Firma Modbus über RS485. Aber nur als 2-Wire. Die Frage war, wie verbreitet der 4-Wire-Bus heute bei Neuentwicklungen ist. Auch früher kam mir dessen Verwendung nicht unter. Wenn, dann war es die Umsetzung von RS232 auf RS422, um die Leitungskiänge zu vergrößern. Da war aber das Protokoll zweitrangig. Nenn mir doch bitte einfach mal eine (professionelle) Anwendung in modernen Geräten für diesen Bus! Datenblätter zu den Bausteinen kenne ich und wie der Bus ausseieht weiß ich auch.

#8085416
Lesenswert?

Rahul D. schrieb:

Einfache Frage, patzige dämliche Antwort?

QED

Der Hinweis auf 4-Draht ist entstanden durch:
Die eigentümliche, widersprüchliche Bezeichnung A+ / B- und die 4 Schraubklemmen die weder für 4-Draht (dann müssten es 5 sein) noch 2-Draht (dann müssten es 3 sein) sinnvoll sind. Das war als Hinweis für den TO gedacht, seine Vermutungen nochmal zu überdenken.

Je nach Implementierung hat 4-Draht Vorteile.
Ich hatte mal immer wieder sporadische Probleme bei der Kommunikation mit Streckenstationen (so Kästen an der Autobahn die Verkehrszählungen machen; TLS für das Straßenwesen). Nachdem ich tonnenweise Logdateien bekommen hab und die zerpflückt hab, hab ich rausgefunden, dass der "Gegner" sich nicht an das Timing gehalten hat, sondern irgendwann willkürlich den Bus umgeschaltet hat. Ein und das selbe Telegramm benötigte mehrere Anläufe um anzukommen. Die konnten das Timing nicht einhalten (BS Gegenseite war BusyBox, großer Hersteller). Das lief bei denen so über Jahrzehnte, bis die Telegramme mal größer als "üblich" und "ging immer so" wurden. Nein, meine Telegramme waren richtig. Verifiziert mit LA und Scope.
Nach dem kollegialen Hinweis auf die Ursache haben sie dann ihre Software korrigiert.

Ich hab mir mal ein Handrad für die Fräsmaschine gebaut, das über ModBus 2-Draht angesteuert wurde. LinuxCNC (auf RT-Linux) hat es auch da nicht geschafft, den Bus richtig umzuschalten. Da wurden aus 1 ms schnell 50 ms.

Konsequenz: Selbst wenn sich der Master nicht ans ModBus-Timing hält, bei 4-Draht würde es noch funktionieren. Ist natürlich immer noch Pfusch und an der Definition vorbei!

#8085419
Lesenswert?

Nick schrieb:

Ist natürlich immer noch Pfusch und an der Definition vorbei!

Dem stimme ich zu.

Nick schrieb:

Der Hinweis auf 4-Draht ist entstanden durch: Die eigentümliche, widersprüchliche Bezeichnung A+ / B- und die 4 Schraubklemmen die weder für 4-Draht (dann müssten es 5 sein) noch 2-Draht (dann müssten es 3 sein) sinnvoll sind. Das war als Hinweis für den TO gedacht, seine Vermutungen nochmal zu überdenken.

Ich würde eher einen miesen Platinenaufruck vermuten, der dazu führte, dass der senkrechte Teil des B+ verloren gegangen ist. Vier Schraubklemmen findet man auch bei RS485-Adaptern, die das Board noch versorgen. Die sind dann häufig auch vom Rest der Schaltung isoliert.

#8085431
Lesenswert?

Nick schrieb:

Die eigentümliche, widersprüchliche Bezeichnung A+ / B- und die 4 Schraubklemmen die weder für 4-Draht (dann müssten es 5 sein) noch 2-Draht (dann müssten es 3 sein) sinnvoll sind.

Das eine der vier Schraubklemmen Gnd ist, wurde bereits oben geschrieben. Dann hast Du das Aderpaar A-/B+ (A ist der invertierte, nicht wie oben geschrieben B) und eine Klemme für die Versorgungsspannung des isolierten Treibers. Die wird hier nicht verwendet, da die Bauteile für die galvanische Trennung nicht bestückt sind. Man hätte eine dreipolige Klemme bestücken können, aber das Gleichteil war wohl billiger.

OP #8085651
Lesenswert?

Vielen Dank für die vielen hilfreichen Antworten. Die Vermutung, dass es sich hier um einen x-beliebigen RS485-Chip handeln dürfte, könnte korrekt sein. Was ich in meiner originalen Frage noch verschwiegen habe, war ein Bild im Handbuch des Geräts, das die Schnittstelle eindeutig mit RS485 bezeichnet. Die Platine wird mit beiden Stiftleisten auf die Hauptplatine gesteckt (siehe zweites Bild). Und ja, eine der vier Klemmen ist B- mit 120 Ohm (der, bei dem man den Widerstand gut erkennt). Die Versorgungsspannung wird somit nicht auf die Klemmleiste herausgeführt, sondern kommt von VDD vom Mikrocontroller.

Ich habe meine Schemazeichnung mal aktualisiert. RX, TX und GND waren schon klar, die Ausgänge habe ich mit den richtigen Pins der Klemmleiste verbunden. Am meisten Sinn ergeben würde es, wenn der SWIM-Pin sowohl mit nRE als auch DE verbunden wäre: Ist SWIM high, werden Daten empfangen, ist SWIM low, werden Daten gesendet. Warum? Die einzige Alternative wäre NRST, und das ist einer der Standardpins des Controllers, der als Reset-Eingang verwendet wird. Unwahrscheinlich also, dass dieser eine Doppelbelegung und steuernde Funktion hätte. Der Kondensator wäre dann vermutlich ein 1,5 µF-Baustein, wenn ich das Layout Example des SN75176 als Beispiel nehme, und verbindet VCC mit GND.

Angehängte Dateien:
#8085755
Lesenswert?

diese Platine kann mit einem 2ten RS485 Treiber und einen Isolator ala ADuM1301 / ADuM1411 oder ISO7741 bestückt werden.

100€ ist ein stolzer Preis.

Vielleicht kommst du auch mit dieser Platine klar. Der Inverter kümmert sich hier vermutlich um die Richtungsumschaltung bei Halbduplex ggf. umgehen.

https://www.ebay.de/itm/165836464829?

oder blank https://www.ebay.de/itm/353345509304?

: Bearbeitet durch User
#8085767
Lesenswert?

Phil schrieb:

Und ja, eine der vier Klemmen ist B- mit 120 Ohm (der, bei dem man den Widerstand gut erkennt).

Da kann man einfach durch Auswahl der Schraubklemme die Bus-Terminierung des Moduls "ein- oder ausschalten".

Der Kondensator wäre dann vermutlich ein 1,5 µF-Baustein, wenn ich das Layout Example des SN75176 als Beispiel nehme, und verbindet VCC mit GND.

Das ist ein sog. Bunkerkondensator, der bei digitalen Schaltungen an jedem Digitalbaustein Standard und eher 100nF groß ist. (bei SMD-Keramikkondensatoren steht dann 104 für 100nF drauf; 105 wären 1µF).

OP #8085787
Lesenswert?

Ob S. schrieb:

Ja, das ist ja (nicht ganz zufällig) auch genau das, was Kai F. bereits vorgestern hier beschrieb:

Das habe ich natürlich gelesen, aber Kai glaubt, dass der GND-Pin des 3-Pin-Headers DE/nRE steuert. Ich habe aber noch einmal verifiziert, dass tatsächlich bei beiden Headern ein Pin GND ist, deswegen auch meine Erklärung, die ich mir bestätigen lassen wollte: Ich glaube, dass SWIM (das auch nur eine mögliche, aber frei definierbare Funktion des STM8S208RBT6 ist) diese beiden Pins des Transceivers steuert, habe aber auch Schaltungen gefunden, in denen TX sie steuert (mit der Logik, solange nicht gesendet wird, kann empfangen werden). Ich werde das aber noch mit einem Logic Analyzer nachkontrollieren.

Thomas schrieb:

diese Platine kann mit einem 2ten RS485 Treiber und einen Isolator ala ADuM1301 / ADuM1411 oder ISO7741 bestückt werden. 100€ ist ein stolzer Preis.

Eindeutig, aber Haustechnik ist mMn insgesamt überteuert, nachdem so eine Wohnraumlüftung im Wesentlichen nur zwei Lüfter mit ein bisschen Sensorik in einer Kiste ist. Für mich klingt das ein wenig so als hätte Dimplex hier eine Testplatine für die Entwicklung hergenommen, um ein paar Komponenten befreit und anschließend als Steuerungsplatine verkauft?

Thomas schrieb:

Vielleicht kommst du auch mit dieser Platine klar. Der Inverter kümmert sich hier vermutlich um die Richtungsumschaltung bei Halbduplex ggf. umgehen. https://www.ebay.de/itm/165836464829? oder blank https://www.ebay.de/itm/353345509304?

Danke für die Links. Gerade das Board aus dem zweiten scheint mir der Funktion der Platine sehr nahe zu kommen, weil dort direkt die DI/DE/RE/RO-Pins herausgeführt werden. So eines wie beim ersten habe ich für meinen ESP32 bereits, allerdings ist dort zusätzlich noch ein 74HC04D Hex-Inverter verbaut, bei dem ich mir nicht sicher war, ob er die Funktionalität und Ansteuerung nicht schon wieder verändert im Vergleich zum "nackten" Transceiver.

Ich hatte allerdings nochmal eine andere Idee: Nachdem der Zweck der Übung ist, meine Lüftungssteuerung Smart-Home-fähig zu machen und ich den ESP32 eigentlich sowieso direkt in der Lüftung einbauen möchte, habe ich mich gefragt, ob ich mir nicht die Konvertierung zu RS-485 ganz sparen und die UART-Pins direkt verbinden könnte. Wäre das eurer Meinung nach möglich, oder würde ich dafür einen RS-485-Transceiver dazwischen "emulieren" müssen?

#8085793
Lesenswert?

Phil schrieb:

(...) Ich habe aber noch einmal verifiziert, dass tatsächlich bei beiden Headern ein Pin GND ist,

Das sollte man erwarten. Zumindest wenn das eine professionelle Schaltung ist, die durch eine EMV-Prüfung muss und im Produkt auch ein CE-Zeichen tragen soll.

Ich hatte allerdings nochmal eine andere Idee: Nachdem der Zweck der Übung ist, meine Lüftungssteuerung Smart-Home-fähig zu machen und ich den ESP32 eigentlich sowieso direkt in der Lüftung einbauen möchte, habe ich mich gefragt, ob ich mir nicht die Konvertierung zu RS-485 ganz sparen und die UART-Pins direkt verbinden könnte.

Wenn Du RS232 oder WLAN brauchst, dann wäre es natürlich überflüssig, eine Wandlung auf RS485 vorzunehmen.

Im ersten Schritt kannst Du auf den dreipoligen Stecker (Gnd, RxD, TxD) ein "FTDI-Kabel" aufstecken und damit nach USB wandeln. Da kann man sich mit TeraTerm anschauen was das Ding sendet und auch mal testweise ein paar Kommandos absetzen. Im nächsten Schritt kannst Du dann den ESP32 anschließen.

Die Sendetaste braucht der Transceiver, da RS-485 bidirektional ist. WLAN und RS-232 brauchen das nicht. Du kannst das Umschaltsignal also ignorieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren