Forum: Mikrocontroller und Digitale Elektronik RJ45 RX/TX von 5 kW Hybrid Inverter direkt an ESP32 ?


von Das R. (Firma: Verliererland) (verlierer)


Lesenswert?

Bin faul.. Und da ich gerade erfolgreich mein Ant Bms ANT-BLE16ZMUB 
(7-16S, 320A, 2021-11-26) an einen Lolin32Lite gehängt habe, 
https://github.com/RoboDurden/AntBms-Arduino
würde ich wohl auch gerne meinen 48V 5kW Hybrid Inverter dran hängen.

Protokoll soll ja für all diese China-Dinger gleich sein: 
https://www.fve-mp.cz/data/blob/product-application_pdf-20190724092401-8519-pip-gk-mk-protocol.pdf

Wenn die Pinbelegung des RJ45 stimmt (1=TX, 2=RX, 8 = GND), dann messe 
ich 4 Volt an TX und 0 Volt an RX, was ich nicht ganz verstehe.
https://secondlifestorage.com/index.php?attachments/rs232_en-png.27492

Üblicherweise erfolgt die Übertragung doch, indem TX den hi-pegel vom 
RX-pin des Empfängers auf 0 zieht. Ergo hätte ich eher 4V an 2=RX 
erwartet und 0 Volt (= floating) and 1=TX.

Und wieder die übliche Frage, ob die 4V einen RX-Eingang von Serial3 des 
ESP32 grillen werden.
Wobei ich nach meiner Logik die 4V eh mit diode abblocken können sollte. 
Weil 1=TX seine bits eh mit mosfet auf GND überträgt.

Eigentlich ist oft die Rede von 12V bei diesesn Hybriden und von 
ordentlichem TTL Adapter. An den anderen pins des RS45 messe ich auch 
Spannung von teils 15V.

Mit der Blocking-Diode an 1=TX scheint mir die Sache aber wenigstens 
sicher.
Dann halt mal \x51\x4D\x4F\x44\x49\xC1\x0D rausschicken und sehen ob der 
Inverter antwortet.
https://github.com/tmkasun/solar-hybrid-inverter-monitor/blob/main/tools/check-inverter-python2.py

Wirklich wichtig ist mir die Sache aber nicht, drum könnte Ihr mir gerne 
davon abraten.

das Roland und :-)

: Bearbeitet durch User
von Das R. (Firma: Verliererland) (verlierer)


Angehängte Dateien:

Lesenswert?

Hat natürlich nicht funktioniert und der inverter antwortet nicht.
Ich brauch wohl doch ein rs232-ttl modul:
https://forum.arduino.cc/t/rs232-read-data-from-mpp-solar-inverter/600960/25?page=2

bzw. https://de.aliexpress.com/item/32946986183.html

Vielleicht hat jemand eine Idee wie man das auch mit einem 
level-shifter-modul machen kann, davon hab ich ein paar rumliegen.

von Stefan F. (Gast)


Lesenswert?

Bei TTL Pegeln hast du am Tx Ausgang einen Ruhepegel von 3,3 oder 5 
Volt.

RS232 Schnittstellen haben an Tx einen Ruhepegel von -12 Volt.

An Rx kannst du in beiden Fällen nichts sinnvolles messen, weil das ein 
Eingang ist.

Das R. schrieb:
> Üblicherweise erfolgt die Übertragung doch, indem TX den hi-pegel vom
> RX-pin des Empfängers auf 0 zieht.

Nein, das verwechselst du wohl mit dem I²C Bus.

Das R. schrieb:
> Mit der Blocking-Diode an 1=TX scheint mir die Sache aber wenigstens
> sicher.

Was für eine "Blocking-Diode"? Wenn du eine Schaltung diskutieren 
willst, dann zeige sich auch. Ich habe keine Lust, die verlinkten Seiten 
nach irgendeiner Schaltung zu durchsuchen, die du vielleicht verwendest, 
oder auch nicht.

Ohne die Beschreibung deines konkreten Gerätes kann ich dir gar nichts 
empfehlen, außer die Finger davon zu lassen. Man verbindet nicht einfach 
irgend etwas miteinander und hofft dass es funktioniert. Eher machst du 
die Geräte kaputt.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Das R. schrieb:
> und 0 Volt an RX, was ich nicht ganz verstehe

Das ist für den Empfänger doch völlig korrekt. Wenn es sich um 'TTL' 
UART handeln sollte, fehlt da ein Pullup, wenn es echte RS232 Pegel 
sind, wird der Pegel vom TX der Gegenstelle geliefert.

Die +/- 12V von RS232 sind übrigens nicht in Stein gemeisselt. MAX 232 
z.B. liefert nur +/- 10V und RS232 selber spielt auch mit noch weniger 
Pegel.
Der Klassiker SN75189 Empfänger hat etwa +/- 1,5V Schaltschwelle.

: Bearbeitet durch User
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.