Forum: Mikrocontroller und Digitale Elektronik PIC24FJ64GB002 als USB Host


von Dominik W. (dominik009)


Lesenswert?

Hallo zusammen,

für ein aktuelles Projekt möchte ich gerne ein USB-Gerät an meinen ESP32 
anschließen. Beim USB-Gerät handelt es sich um einen Adapter, um Daten 
aus einer Viessmann-Heizung zu lesen. Auf dem Adapter befindet sich ein 
CH340G.

Die Heizung wird über den Adapter seriell angesprochen (8E2 4800baud).

Um den USB-Adapter mit dem ESP32 zu koppeln, verwende ich ein USB-Host 
(PIC24FJ64GB002) auf einer Platine von Hobbytronics. 
https://www.hobbytronics.co.uk/usb-host/usb-host-board-v24

Das Programm vom Hersteller bietet leider nur 8N1, 8O1 und 8E1, aber 
kein 8E2 was ich benötige. 
https://www.hobbytronics.co.uk/usb-host-serial

Hat evtl. jemand eine Idee, wie ich das ganze lösen kann?
Das Programm habe ich leider nur als .HEX.

Der PIC24FJ64GB002 unterstützt 8E2, aber dafür müsste wohl das komplette 
Programm neu geschrieben werden.

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Vielleicht hilft das hier:
https://www.microchip.com/forums/m840578.aspx

Darin wird ein sample code angesprochen.

von Frank K. (fchk)


Lesenswert?

Warum umgehst Du den CH340 auf dem Viessmann-Adapter nicht einfach? Dann 
ist es einfach nur ein UART, und das solltest Du schaffen.

fchk

von Dieter W. (dds5)


Lesenswert?

Da muss die Konfiguration im UART Mode Register angepasst werden.

bit 2-1 PDSEL1:PDSEL0: Parity and Data Selection bits
11 = 9-bit data, no parity
10 = 8-bit data, odd parity
01 = 8-bit data, even parity
00 = 8-bit data, no parity

bit 0 STSEL: Stop Bit Selection bit
1 = Two Stop bits
0 = One Stop bit

Das im HEX-Code zu suchen kann aber durchaus anspruchsvoll sein und eine 
Weile dauern.

von Dominik W. (dominik009)


Angehängte Dateien:

Lesenswert?

Dieter W. schrieb:
> Da muss die Konfiguration im UART Mode Register angepasst werden.
>
> bit 2-1 PDSEL1:PDSEL0: Parity and Data Selection bits
> 11 = 9-bit data, no parity
> 10 = 8-bit data, odd parity
> 01 = 8-bit data, even parity
> 00 = 8-bit data, no parity
>
> bit 0 STSEL: Stop Bit Selection bit
> 1 = Two Stop bits
> 0 = One Stop bit
>
> Das im HEX-Code zu suchen kann aber durchaus anspruchsvoll sein und eine
> Weile dauern.

Das es über den Eintrag im Register möglich ist, habe ich im Datenblatt 
gelesen.

Leider liegt mir nur der HEX-Code (siehe Anhang) vor und ich habe keine 
Ahnung wie ich bit 0 (was aktuell 0 ist) finde ....

von STK500-Besitzer (Gast)


Lesenswert?

Dominik W. schrieb:
> Leider liegt mir nur der HEX-Code (siehe Anhang) vor und ich habe keine
> Ahnung wie ich bit 0 (was aktuell 0 ist) finde ....

PICs sind nicht so mein Ding, aber gibt es für keinen Decompiler?
Damit könnte man vielleicht den Zugriff auf das Register finden.

Hast du mal nach dem o.g. Beispiel geguckt?

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.