www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Virtueller COM Port ARM


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn Du bereits Erfahrung mit einem LPC2138 hast, dann ist der 
Umstieg auf den LPC2148 natuerlich recht einfach, das ist naemlich ein 
2138 mit USB.
Hier gibts ne Menge Info zum Programm LPCUSB
http://wiki.sikken.nl/index.php?title=LPCUSB

Hoffe das hilft weiter, Robert

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich tendiere im Moment mehr zu einem AT91SAM7. Hat jemand den 
USB-Stack/Demosoftware von Atmel schon mal getestet? Ist die ebenso 
ausgereift wie der lpcusb usb-stack?

VG
Markus

Autor: Luky S. (luky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab damit gearbeitet und hatte keine Probleme damit. Der Code ist 
nur durch die ganzen Debugbefehlte "etwas" aufgebläht. Die Debugausgaben 
über UART kann man aber per #define abschalten

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, unter Windows funktioniert der AT91SAM7S64 schon mal. Er meldet sich 
brav als AT91USBSerial. Weiß jemand, wie ich den auch unter Linux 
eingebunden kriege?

Viele Grüße
Markus

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, hab es hinbekommen. War ein kleines Problem mit dem cdc_acm 
Kernelmodul. Wie kann ich eigentlich die Baudrate einstellen? Welche 
Baudrate kann ich maximal einstellen?

Viele Grüße
Markus

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.