Virtueller COM Port ARM

Gast #1047979
Lesenswert?

Hallo!

Ich bin zur Zeit dabei mich in ARM Controller einzuarbeiten. Bisher 
arbeite ich mit einem LPC2138. Für eine Anwendung bräuchte ich eine 
USB-Kommunikation mit mindestens 1 MBit. Um den Software Aufwand gering 
zu halten hätte ich gerne einen virtuellen COM Port.

Nach meiner Recherche gibt es hierzu für die AT91SAM7S* Reihe Software 
von Atmel und für den LPC2148 einen USB-Stack bei sourceforge. Hat 
jemand Erfahrung mit den Softwarepaketen? Welches ist besser geeignet? 
Welchen Controller würdet ihr empfehlen? Ich brauche außerdem vorallem 
eine schnelle SPI für einen 2,4 GHz Transceiver und ich würde gerne 
unter Linux programmieren. Kann man den Atmel Bootloader auch unter 
Linux verwenden? Bei dem seriellen Bootloader im LPC2000 ist das ja kein 
Problem. Wie gut eignet sich openocd + JTAG-Adapter zum 
programmieren/debuggen unter Linux?

Viele Grüße
Markus
(Firma: DC3AX) #1077625
Lesenswert?

Hi Markus!

Die Baudrateneinstellung ist nur dann interessant, wenn es wirlich um 
einen USB-Seriell-Konverter geht. Die USB-Kommunikation läuft immer mit 
USB-Geschwindgkeit. Da Du auf USB-Seite zwar COM-Port spielst, aber dann 
auch gleich selbst mit den Daten arbeitest, ist diese Einstellung müßig. 
Du kannst ja mal im ATMEL Code ( ich habe bisher nur den für die 
USB-AVRs (32U4/90USB1287) genutzt) schauen, wo die CDC-Set-Line-Coding 
und CDC-Set-Control-Line-State und so weiter in Deinem Code landen. Sie 
tauschen lediglich den Line State ( RTS/CTS, DSR/DTR, RI) aus und in den 
anderen Kommandos dieser Klasse wird dann auch der UART Speed gesezt.

Da meine Sachen auch immer gleich selbst COM-Port sind, fliegt dieser 
Teil meist gleich raus, die USB-Requests werden dann mit einem 
Dummy-Request beantwortet. Lediglich die RTS/CTS/DTR/DSR Sachen sind 
praktisch, wenn man eine (eigene) PC-Software hat. Man kann dann nämlich 
das Handshake benutzen, um der Software zu sagen, wann man Daten 
verarbeiten kann, oder ob man noch mit Booten beschäftigt ist. Wenn es 
etwas gibt, dass Windows nicht leiden kann, dann das Senden von Daten 
auf einen 'halb-offenen' COM-Port. Das macht man ein paar mal und dann 
sieht man eine Bluescreen.

So, viel Spaß, der ATMEL Code zusammen mit der CDC-Spec von der USB.org 
Seite und man lernt erheblich mehr in kurzer Zeit, als auf mancher 
USB-Schulung.

Gruß, Ulrich

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