Hallo zusammen, ich habe mir ein MAX3485 Modul für TTL<->RS485 Konvertierung besorgt. Leider habe ich kein Datenblatt bekommen (ist angefordert). Kann evtl. jemand sagen, wie der Enable-Pin beschaltet wird? Ich habe es mit VCC versucht, aber ich bekomme keine Daten aus meinem Stromzähler (SDM630) ausgelesen. Danke, Pete
Pete K. schrieb: > ich habe mir ein MAX3485 Modul für TTL<->RS485 Konvertierung besorgt. > Leider habe ich kein Datenblatt bekommen (ist angefordert). Das wäre eine Variante. Die andere wäre du misst die paar relevanten Pins mit einem Durchgangsprüfer kurz selbst. Pete K. schrieb: > Kann evtl. jemand sagen, wie der Enable-Pin beschaltet wird? Der besagte MAX3485 hat keinen EN-Pin. Er hat einen Receiver Output Enable nicht (!RE) und einen Driver Enable (DE). Vermutlich sind die 2 Pins (2&3) bei dir auf dem Board verbunden um zwischen Read und Write um zu schalten. Für zuhören also EN vermutlich auf GND. Miss mal ob 2&3 Durchgang haben. Pete K. schrieb: > aber ich bekomme keine Daten aus meinem Stromzähler (SDM630) ausgelesen Ja ist klar, du hattest ja auch mit deinem Tranceiver Baustein die Leitung belegt. Es kann aber noch mehr Gründe geben warum du nichts empfängst. Ich meine dass man bei manchen Stromzählern auch erst das senden über einen Code (einzugehen am Zähler) aktivieren muss.
Pete K. schrieb: > Leider habe ich kein Datenblatt bekommen (ist angefordert). Die Zeiten, wo Datenblätter auf Anfrage per Post verschickt werden, ist eigentlich vorbei. Das Datenblatt vom MAX3485 bekommst kannst du beim Hersteller herunterladen oder, wenn du dort nicht suchen magst, ist es sogar hier im Forum verlinkt (einfach draufklicken). Die paar Leitungen/Bauteile der Platine in einen Schaltplan umzusetzen, geht schneller, als auf die Bearbeitung deiner Anforderung zu warten. Der MAX3485 arbeitet übrigens mit 3.3V und hat mit TTL nicht viel am Hut - sterben tut er allerdings auch nicht, da er 5V tolerant ist. > Ich habe es mit VCC versucht ... VCC ist bei dir wie hoch?
Pete K. schrieb: > Kann evtl. jemand sagen, wie der Enable-Pin beschaltet wird? Ich habe es > mit VCC versucht, aber ich bekomme keine Daten aus meinem Stromzähler > (SDM630) ausgelesen. EN ist zum SENDEN. Da du Empfangen willst, muss er auf Low GND.
Pin2+3+EN sind verbunden, habe ich auf GND gelegt. 120 Ohm zwischen A und B, A mit 4k7 pullup, B mit 4k7 pulldown. VCC sind 3V3. Funktioniert leider nicht. A und B habe ich getauscht und auch RX/TX im Tasmota-Template.
Gerade mal den Zähler angeschaut. Er spricht Modbus RTU. Das funktioniert nach dem Master/Slave Prinzip. Sprich, ohne Anfrage des ESP wird der Zähler nichts von selbst senden! Das heißt auch, der EN Pin kann nicht auf einem statischen Pegel liegen sondern muss vom ESP aktiv umgeschalten werden. Hier steht noch bisschen was allgemeines dazu: https://wiki.volkszaehler.org/hardware/channels/meters/power/eastron_sdm630_modbus Und hier die Seite was in Richtung Tasmota geht: https://tasmota.github.io/docs/Smart-Meter-Interface/ Wo auch steht: This feature is not included in precompiled binaries! Die Frage ist also, hast du das Tasmota selbst kompiliert?
N. M. schrieb: > Und hier die Seite was in Richtung Tasmota geht: > https://tasmota.github.io/docs/Smart-Meter-Interface/ So wie ich das dort lese kann man Pins für RX und TX angeben. Von der Richtungsumschaltung lese ich allerdings nichts. Das heißt RX und TX müssen gleichzeitig aktiv sein. Das geht mit deinem Board aber ohne weiteres nicht. Evtl musst du einen Pin hochklappen damit du gleichzeitig senden und empfangen kannst. Das ist aber nur eine Vermutung. Müsste man genauer lesen...
Pete K. schrieb: > 120 Ohm zwischen A > und B, A mit 4k7 pullup, B mit 4k7 pulldown. Die Bias-Widerstände sind viel zu gross, um für einen normgerechten Ruhepegel zu sorgen. Bei 3.3V und beidseitiger 120-Ohm-Terminierung sind das gerade mal 20mV Differenz zwischen A und B, gefordert ist das 10fache. Jeweils 390 Ohm würde passen. N. M. schrieb: > Von der > Richtungsumschaltung lese ich allerdings nichts. Das heißt RX und TX > müssen gleichzeitig aktiv sein. > Das geht mit deinem Board aber ohne weiteres nicht. Was sollen solche irreführenden "Informationen"? Das geht generell nicht, RS485 ist ein Halbduplex-Bus, da darf nicht einfach ein Treiber eingeschaltet bleiben. Wenn die Firmware keine TX/RX-Umschaltung beherrscht, muss man die entweder selbst einbauen oder etwas mit automatischer Umschaltung dranhängen.
Hmmm schrieb: > Das geht generell nicht, RS485 ist ein Halbduplex-Bus, da darf nicht > einfach ein Treiber eingeschaltet bleiben Stimmt natürlich. Da hatte ich einen Kurzschluss im Kopf. Da gibt es übrigens eine Anleitung dazu: https://www.michael-heck.net/index.php/smarthome/haussteuerung/sdm-630-mit-tasmota-auslesen Wobei mir immer noch nicht ganz klar ist wie die Richtungsumschaltung funktioniert. Ist das irgendwie ein Monoflop o.ä. drauf wo automatisch umschaltet?
N. M. schrieb: > Wobei mir immer noch nicht ganz klar ist wie die Richtungsumschaltung > funktioniert. OK, scheinbar ist das wirklich ein Modul mit automatischer Richtungsumschaltung. TI hat da ein AppNote dazu: https://www.ti.com/lit/ug/tidubw6/tidubw6.pdf
N. M. schrieb: > . > TI hat da ein AppNote dazu: "This eliminates the need for manual control of the driver enable of the transceiver and the need for the receiver-enable controls, reducing the number of logic pins needed to implement the RS-485 interface" Verstehe ich nicht. Wenn man die Richtung des Treibers mit einem Ausgangspin am uC umschaltet, kann man auch einen anderen Pin am uC von Rx Eingang auf Tx Ausgang umschalten an den dann beide (R und D) Anschlüsse des Treibers kommmen, und kommt auch mit 2 Pins aus - ohne Zusatzhardware. Ja, ich weiss, nur wenige uC erlauben Tx und Rx des UART auf denselben pin zu konfigurieren, aber soft-UART geht immer.
MaWin schrieb: > Verstehe ich nicht. > Wenn man die Richtung des Treibers mit einem Ausgangspin am uC > umschaltet...kommt auch mit 2 Pins aus Wenn man zu wenig Pins hat eine echt gute Idee. Ich glaube in dem Konstrukt oben (ESP<-->Stromzähler) werden die Anzahl Pins vermutlich nicht dass Problem sein. Zumindest wenn das wirklich nur eine Bridge von Modbus nach Tasmota und dann vermutlich in einen MQTT Broker o.ä. ist. Da hat er dann 80% der Pins noch frei für andere Dinge. Da wäre es dann am saubersten einfach 3 Pins (RX,TX,Dir) zu verwenden. Nur blöd dass das die FW von Haus aus nicht mitmacht. Wenn man das Feature wirklich selbst übersetzen muss, könnte man natürlich auch einfach einen Pin für Dir fest einkompilieren. Eine andere Möglichkeit (wenn man kein Funk braucht) wäre evtl auch ein fertiger TTL zu Ethernet Adapter. Da gibt es meines Wissens nach auch welche die von Modbus RTU auf TCP Tunneln. Oder wenn der Server der das ganze Zeug empfängt vermutlich sowieso irgendwo rumsteht nicht so weit entfernt ist, würde natürlich auch ein RS485 zu USB Kabel tun. Bei den Datenraten geht das bestimmt auch 50-100m.
Danke für die Hinweis. Ich werde mit mal ein anderes RS485 Board besorgen mit 3V3 und Auto-Umschaltung.
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.