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
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
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
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
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.