Hallo,
falls jemand sehr professionelle USB Beispiele fuer den LPC2148
basierend auf den Keil Compiler runterladen moechte, dann sind die hier
zu finden: http://www.keil.com/mcb2140
Warum ich das hier poste? Weil es heute ein Update gab und weil sich
der Text im Copyright geaendert hat. Die Beispiele duerfen jetzt auch
kommerziell benuetzt werden solange ein LPC der Zielprozessor ist.
Gruss, Robert
Hallo Robert!
Ich habe vor einigen Monaten ein ARM-Seminar besucht. Vorgestellt
wurden die LPC-Familien. Damals gab es den LPC2148 noch nicht, aber er
wurden vom Vortragenden erwähnt.
Er sagte auch, dass es sich zwar um ein USB2.0 Gerät handle, dieses
aber leider nur mit Full-Speed arbeiten würde. Dies hätte den Grund,
dass der Controller sowieso die ca.400MBaud nicht vollständig ausnützen
kann. Damals war mir das klar, aber ich dachte über dieses Thema nach
und kam zu dem Schluss, dass dies ja völlig egal wäre.
Es ist doch egal, wenn der µC nicht die volle Bandbreite ausnützen
kann. Haupsache er überträgt schneller als 1Mbyte pro Sekunde.
Ich selbst finde den LPC2148 echt toll, da auch sehr unangenehme Fehler
der Vorgänger behoben wurden. Aber ich wollte Fragen ob auch ein
ARM-Prozessor mit USB2.0-Hi-Speed in Planung ist.
Wenn es so einen gäbe wie den LPC2148 mit USB2.0-Hi-Speed und über
eingebauten Bootloader über USB programmierbar, dies wäre echt
großartig.
Es ist zwar jetzt schon der LPC2138 und der LPC2148 für mich der
ultimative Controller, aber so einen Hi-Speed Controller auch flashable
über USB, wäre für mich am ultimativsten.
Danke für deine Antwort
Schönnen Gruß, Martin
Jetzt, da Keil/ARM und Philips-"Apps" grade dabei sind: Vielleicht
noch ein weiteres Beispiel fuer usbser.sys/usbserial fuer einen
"virtueller COM-Port". Ist wahrscheinlich nicht viel Arbeit, jetzt da
man sich eingearbeitet hat. Zumindest mich wuerde eine vom Hersteller
abgesegnete "vorgekaute" Loesung interessieren.
Soweit gesehen, sind die aktuellen Beispiele fuer den Keil-Compiler.
Der LPC-yahoo-Group kann man entnehmen, dass fuer gcc-Compiler
Anpassung notwendig sind (packen von structs). Waere sicher nicht
schlecht, wenn Philips/Keil diese im Beispiel integrieren (im Prinzip
#if def keilc else if def gcc ...). Keil unterstuetzt deren Version des
arm-elf-gcc-Compilers ja ohnehin bereits in deren IDE, warum also nicht
auch die USB-Beispiele dahingehend erweitern.
Martin Thomas
@ Martin Thomas
Es wird im naechsten Quartal mehr info zu einem ARM7 mit Flash und USB
2.0 HS geben. Kann noch nicht so viel sagen, da noch einiges in der
Schwebe ist. Wird aber ein groesserer Chip sein als der LPC214x
Robert
@Robert Teufel
Hmm, ok, ich meinte eigentlich schon neue/erweiterte Beispiele fuer die
jetzt verfuegbare LPC214x-Serie.
Dass man fuer usbserial-Unterstuetzung einen "groesseren" Chip
benoetigt, wenn viele anspruchsvollere Geraeteklassen bereits
implementiert werden koennen, erscheint mir ungewoehnlich.
Oft benoetigt man (zumindest ich) gar keine high-speed USB sondern
einfach eine Schnittstelle zum PC (v.a. Notebooks ohne RS232), um ein
Geraet zu konfigurieren oder Daten auszulesen. Quasi ein
UART/RS232-Ersatz ohne zusaetzliche Hardware wie externe
USB-seriell-Adapter oder FTDI bzw. SiLabs-ICs. Das Ganze ohne dass man
die USB-Interna detailliert kennen oder eigene Geraete-Treiber auf PC-
und Microcontroller-Seite erstellen muss. Beide Aufgaben sind mit einem
"virtuellen COM-Port"-Treiber (bei Win2k/XP und wohl auch Linux
bereits im Betriebsystem bzw. Kernel) und vorgefertigtem USB-Code fuer
den Mikrocontroller realtiv einfach zu realisieren.
Atmel liefert Beispiele fuer usbserial mit SAM7 in deren USB-Examples
fuer diverse Compiler - auch fuer den "kleinen" AT91SAM7S64.
(Zumindest eines dieser Beispiel war relativ simpel an gcc anpassbar
und fuer eigene Anwendungen nutzbar). Ich kann beim -oberflaechlichen-
Vergleich der USB-"Makrozellen"-Beschreibung von LPC214x und
AT91SAM7Sx nicht nachvollziehen, dass ein LPC214x fuer diese Aufgabe zu
"klein" sein soll.
Wie auch immer, war nur ein Vorschlag.
Martin Thomas
Martin,
war ein Missverstaendnis. Hab unseren Ansatz zum Virtual COM part
drangehaengt, hat ein Kollege hier basierend auf Philips internen
Treibern erstellt.
Wie immer, keine Garantien aber getestet haben wirs
Gruss, Robert
Robert,
Danke fuer die prompte Reaktion. Code schaut sehr brauchbar aus.
Anpassung an gcc sollte auch kein Hexenwerk sein. Werde Code und
Anpassung ausprobieren, sobald ein LPC214x-Board auf "der Werkbank"
liegt. (Im Moment etwas "eingespannt" mit zwei anderen Projekten -
eines davon (noch) auf LPC2138-Basis).
Gruss, Martin
Weitere PLL;
Damit ein Ausgang 48 MHz und der Ausgang fuer die CPU 60 MHz
gleichzeitig liefern kann. Daher empfiehlt es sich einen externen
Quartz mit 12 MHz zu verwenden.
Robert
Hallo,
ich benötige dringend hilfe mit der Ansteuerung einer Schrittmotorkarte
mit LPC214x.SYS Treiber von Phillips.
Die Karte hat einen USB Eingang und hier liegt auch schon mein Problem.
Im ganzen Netz habe ich keinen gefunden der mir hier weiterhelfen kann
und durch Zufall bin ich heute hier gelandet.
An die Karte werden einfache Plot Befehle gesendet z.B. PD,PU etc das
ganze habe ich mit einem USB Monitor verfolgt und ausgelesen von der
org. Ansteuerungssoftware.
Ich möchte mir eine eigene Ansteuerung unter Visual Basic 6.0 schreiben.
Leider bekomme ich es absolut nicht hin den Befehl PD (ich weiss noch
nicht mal in welchem Format der gesendet wird, aber im USB
Monitorprogramm stand ja der Textsting PD; PU usw.).
Ich suche ein Beispiel welches mir den Befehl PD über USB Ausgang an den
Phillips Treiber LPC214x.SYS sendet. Und das ganze leider in
Visualbasic. C+ kann ich leider nicht.
Vielleicht kann mir hier jemand weiterhelfen - ich wäre wirklich sehr
sehr dankbar über jede Hilfe.
Gruß Mario
Merlin-1979@gmx.de
Das ist eine fertig programmierte und funktionsfähige
Schnittstellenkarte von einem Hersteller?
Dieser Hersteller liefert eine SYS-Datei, die auch richtig installiert
ist?
(Siehe Systemsteuerung >> Gerätemanager >> ...)
Normalerweise kann man mit einem Gerätetreiber mit den WinAPI Befehlen
CreateFile(), DeviceIoCtrl() und CloseHandle() kommuniziernen.
Im CreateFile muss man den Gerätename übergeben, der von der SYS Datei
dem Betriebssystem zur Verfügung gestellt wird.
Im DeviceIoCtrl muss man Datenbuffer, gefüllt mit irgend welchen Bytes
übergeben, die von der SYS Datei ausgewertet werden und in USB Befehle
gewandelt werden.
Das ohne Doku vom Hersteller der SYS Datei ist unmöglich hin zu
bekommen. Selbst wenn Du den Quellcode der SYS Datei hättest, die
Befehle da drin sind ganz andere als wie in einer z.B. DLL, denn eine
Sys-Datei muss/kann nur Kernelbefehle verwenden.
(Logischerweise führen Fehler in der SYS Datei sofort zu einem
Blue-Screen!)
Einfacher geht es, wenn der Hersteller auch eine DLL mit liefert, die
dann schon die vorgebackenen Befehle bereit stellt, dann musst Du nur
noch die DLL in VB einbinden.
Doku braucht es dennoch.
USB ist in jedem Fall eine Wissenschaft für sich. Wenn Du mal USB
programmieren möchtest (Mikrocontroller), dann ist das ein muss:
Das Dokument "USB_20.pdf" von der USB Organisation, besonders Kapitel 9.