- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Programmierumgebung / IDE
- ESP-01 als Serial-Bridge einsetzen
ESP-01 als Serial-Bridge einsetzen
- mikrotron
- Autor
- Offline
- New Member
- Beiträge: 18
- Dank erhalten: 3
ich versuche es hier auf Stand zu halten. Also ich habe es gestern tatsächlich geschafft den HW-Group VSP-Treiber mit dem esp-link ans laufen zu bekommen. Auch hier habe ich sinnlos Stunden verbraten bis ich gemerkt habe, das es unter Win10-x64 nicht funktioniert. Hab dann nen alten Laptop rausgezogen mit Win7 drauf und schon ging das ganze!
Wichtig auch hier, das man den richtigen Treiber zieht, nämlich den "Single", da der "Multi" nur für die HW-eigenen Geräte nutzbar ist.
Natürlich habe ich mir auch noch andere Virtual-COM-Port Treiber angeschaut, wie z.B. com0com mit com2tcp. Den kann ich aber z.B. überhaupt nicht empfehlen, denn der hat unsignierte Treiber und um die ans laufen zu bekommen muss man praktisch alle Sicherheitssperren in seinem Windows aushebeln. Ein Unterfangen ohne Aussicht auf Erfolg.
Zu guter Letzt habe ich dann noch das Problem lösen müssen, das die esp-link Firmware bis v2.x nur Baudraten bis runter zu 9.600 anbietet und auch die nur mit fester "8N1" Einstellung. Ich aber brauchte ja 2400-8E1. Das ging, gottseitdank, mit der Firmware ab v3.x, welche aber "alpha" ist, also ist auch hier Vorsicht angesagt.
Weiteres Manko (evtl., bei mir im speziellen jetzt nicht) könnte sein, das man die Baudrate nur in der Web-GUI vom esp-link einstellen kann und nicht via Treiber oder besser direkt von der COM-Port Software (Terminal, oder was auch immer man einsetzt).
So habe ich tatsächlich eine Kommunikation mit einer Webasto 1533 Uhr hinbekommen. Hierzu habe ich die TX/RX-Leitungen des ESP-01 über einen MC36600 LIN-Transceiver mit dem W-Bus verbunden. Den ESP (esp-link Firmware) in mein WLAN eingebunden (STA-Mode) und im "uController-Console" Einstellmeü der esp-link Software die Baudrate auf 2400-8E1 eingestellt. Am PC mit dem HW-VSP Treiber einen virtuellen COM-Port erstellt, welcher mit der IP des ESP-01 auf Port 23 verbunden wird. Und letztlich HTerm (mein Lieblings Terminalprogramm) mit dem COM und den Settings 2400-8E1 verbunden.
Drücke ich dann auf der Webasto Uhr die Start-Taste sehe ich tatsächlich die korrekten Bytefolgen auf dem Terminal, so, als wäre ich direkt über den COM-Port am LIN-Transceiver angeschlossen! Auch mit anderen Tools die eine Serielle nutzen (z.B. Webasto Thermo Test oder Webasto-Simulator) sollte dann dann prinzipiell gehen.
Jetzt fehlt mir nur noch eine Kleinigkeit zum vollkommenen Glück: Wie sende ich ein BREAK? Das BREAK ist ein spezielles Wakeup-Signal auf dem W-Bus, welches durch eine 25ms lange LOW-Phase der TX-Leitung erzeugt wird. Aus UART-Sicht ist das ein Bitfehler, da aufgrund des Bit-Stuffing keine solch lange 0-bit Phase existieren darf. Die Uhr sendet solche BREAKs auch und diese werden dann, korrekterweise, im HTerm als Fehlerbytes angezeigt.
Im Arduino war die BREAK-Erzeugung einfach. Da habe ich nur den Pin der TX-Leitung als Ausgang definiert, 25ms auf LOW gezogen, weitere 25ms gewartet und dann wieder auf UART umprogrammiert.
Aber wie mache ich das über eine "normale" Serialleitung? Habe schonmal versucht einfach eine Folge von 0x00 Bytes zu senden. Dabei sind jedoch nur die acht 0-Bits des Datenteils vom Serial-Frame LOW, nicht aber Start-Bit/Stop-Bit/Parity-Bit. Aufgrund der Baudrate von 2400 bleibt ein Bit für 0,415 ms auf der Leitung. Bei 8 Bits die ich maximal senden kann, entspräche das nur 3,4 ms, also noch weit weg von den benötigten 25ms. Hierzu müsste ich mind. 8 00-Bytes senden, welche aber aufgrund des Protokolls mit den Start/Stop/Parity-Bits "verunreinigt" sind.
Ich persönlich kenne keine Möglichkeit eine serielle Schnittstelle per Software so anzusteuern, das TX für eine definierte Zeit LOW wird.
Puh, jetzt schreib ich schon wieder ganze Aufsätze... aber gut. Ja, ich sollte meine Erfahrungen in ein Tutorial packen.
P.S.: Ich finde Dein Forum sehr gelungen, ganz im Gegensatz zum esp8266.com Forum, welches ich grausam unübersichtlich finde!
Schade nur, das die Community hier im Forum doch noch sehr klein ist. Ausser von Dir kommt ja keine Antwort... oder sind die anderen noch alle im Urlaub
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- supporter
- Offline
- Premium Member
- Beiträge: 135
- Dank erhalten: 12
-> Ja, ganze Aufsätze sind doch toll! Wer zu diesem Thema Hilfe benötigt findet sie hier!mikrotron schrieb:
Puh, jetzt schreib ich schon wieder ganze Aufsätze... aber gut. Ja, ich sollte meine Erfahrungen in ein Tutorial packen.
P.S.: Ich finde Dein Forum sehr gelungen, ganz im Gegensatz zum esp8266.com Forum, welches ich grausam unübersichtlich finde!
Schade nur, das die Community hier im Forum doch noch sehr klein ist. Ausser von Dir kommt ja keine Antwort... oder sind die anderen noch alle im Urlaub
-> Vielen Dank für die Blumen
Tatsächlich ist das Forum noch sehr jung (ein halbes Jahr online) und muss sich erst finden. Eine Community entsteht erst durch gemeinsame Themen.
Ich selber habe auch nur begrenzt Zeit um hier was zu helfen und hoffe auf Leute wie Dich welche nicht nur Hilfe suchen sondern auch anderen mit Ihrem Wissen und Erfahrungen zur Seite stehen.
Dennoch finde ich es wichtig auch ein Forum, eine Ideensammlung, zu den Espressif-Kisten auf Deutsch zu haben. Mal gucken was die Jahre zu bringen.
Was Dein Signal -0 Problem anbetrifft: per anderem GPIO einen Transistor low side den TX runterziehen lassen würde ich sagen. Zur Strombegrenzung einen 470 Ohm Widerstand vorschalten. Ein BCx- NPN reicht da völlig aus. Kosten: 10 Cent. Steueraufwand: wenige Minuten.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- mikrotron
- Autor
- Offline
- New Member
- Beiträge: 18
- Dank erhalten: 3
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- mikrotron
- Autor
- Offline
- New Member
- Beiträge: 18
- Dank erhalten: 3
Jetzt muss ich noch das Problem lösen ein BREAK-Signal zu erzeugen. Das könnte man u.a. durch einstellen einer sehr niedrigen Baudrate (300 Baud) und senden eines 00-Bytes.
Nun habe ich in den Sourcecodes von esp-link gesehen, das es eine NVT-Unterstützung gibt (serial/serbridge.c) aber bin noch nicht wirklich dahinter wie man das sendet.
Wenn ich annehme das die in esp-link das NVT laut RFC 2217 gemacht haben, müsste man mit dieser Sequenz die Baudrate einstellen können:
IAC SB COM-PORT-OPTION SET-BAUD <value(4)> IAC SE
Die Hexcodes dieser Commandos lauten:
IAC = 0xFF
SB = 0xFA
COM-PORT-OPTION = 0x2C
SET-BAUD = 0x01
SE = 0xF0
Somit müsste das diese Sequenz ergeben:
FF FA 2C 01 00 00 01 2C FF F0
Leider tut sich da nix.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- mikrotron
- Autor
- Offline
- New Member
- Beiträge: 18
- Dank erhalten: 3
FF FB 2C
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- mikrotron
- Autor
- Offline
- New Member
- Beiträge: 18
- Dank erhalten: 3
Komisch fand ich, das die LEDs manchmal nur "glimmten" in verschiedenen Farben und bei Berührung der Kabel ihre Helligkeit veränderten. Nachdem ich einige Spannungsregler ausprobierte habe ich mir das Breadboard und die Kabel angesehen und eine schreckliche Entdeckung gemacht. Die Kabel hatten teilweise einen Innenwiderstand von 60 bis 150 Ohm! Zudem sieht man im Oszi wahnsinniges kratzen und rauschen bei den Kontakten. Tja, billiger China-Schrott gekauft
Dann habe ich das ganze nochmal neu auf einem "Marken"-Breadboard mit "Marken"-Kabeln (beides von Conrad Elektronik, sauteuer im Vergleich zu ShenZhen) aufgebaut und siehe da, alles läuft stabil!
Zumindest Hardwareseitig habe ich seitem keine Probleme oder Störungen mehr.
Die Dupont-Kabel von Conrad sehen auch ganz anders aus. Schrumpfschläuche über den Pins, ordentliche Kontakte, praktisch kein Innenwiderstand (wenige Milliohm) und beim hin- und herbewegen im Breadboard kein kratzen und rauschen im Oszi. Offenbar macht sich die Qualität hier echt bezahlt. Werde nun wohl meinen Chinakram entsorgen...
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Programmierumgebung / IDE
- ESP-01 als Serial-Bridge einsetzen