Ich möchte in den nächsten Monaten ein Projekt vorantreiben, bei dem ein PIC24 zum Einsatz kommt. Das Gerät soll gleichzeitig eine USB-Maus (bzw. Multitouch-Pad) und einen USB-MIDI Controller darstellen. Da mir das auf Anhieb zu groß erschien, habe ich mir einen PIC32MX220 zugelegt, um auf dem breadboard etwas zu experimentieren. Mein Stand ist, dass ich es geschafft habe, das "Creating an Application" Tutorial aus der Harmony Library auf mein brett zu konvertieren. Im Klartext: eine LED blinkt mithilfe der Bausteine "driver/tmr", "system/clk", "system/devcon", "system/int", "system/port" und ich kann rudimentäre Aspekte der Applikation ändern. Das Ganze braucht mit 24kB schon gut zwei Drittel des Flash-Speichers des PIC32. Später im Hilfedokument (ab Seite 3734) wird die USB Library auf ca 300 Seiten beschrieben. Da haben mich die Jungs von Microchip etwas verloren. Ich weiß nicht, wo ich anfangen soll. Gibt es irgendeine Art Tutorial oder Ähnliches, das mich von 0 ab step-by-step dahin führt, wo ich eine USB-Maus habe, mit der ich bestimmte Figuren am Bildschirm abfahren kann? Wichtig wäre es, das Prinzip USB-Devices so weit verstanden zu haben, dass ich dann mit den Hilfedokumenten mehr anfangen kann, als das jetzt der Fall ist. Im Idealfall kann ich das Midi-Device dann ganz ohne weiteres Tutorial implementieren. Zunächst geht's mir aber um die Maus. Ich möchte die Maus im PIC32 haben, um herauszufinden, wie ich den PIC24 beschalten muss (Taktquellen, Pullups, Transistoren und Spannungsregler,...), um mein Projekt zu realisieren. Im nächsten Schritt kommt der PIC24 (SMD) mit allem Hühnerfutter auf eine Platine und ich muss vermutlich alles nochmal neu implementieren, da die Harmony Libraries nicht mehr mit den alten PICs kompatibel sind (kennt niemand einen PIC32 mit 50 CTMU-Kanälen?). Im Idealfall habe ich bis dahin aber so viel kapiert, dass ich das dann auch kann!
Hast du bisher nur Harmony oder auch die MLA angeschaut ?
die MLA habe ich angesehen. Da gab's ein Beispiel für eine USB-Maus, das ebenfalls auf einem evaluation board basiert hat. Ich bin damit leider ohne tutorial auch nicht klar gekommen und habe deshalb zu harmony gewechselt und mich auf's breadboard konzentriert
MLA ist gar nicht so schwierig, wie es aussieht. Neues Projekt anlegen und mouse.c kopieren. Alle ifdefs, die du nicht brauchst rauswerfen. Dann so lange Dateien kopieren und ifdefs rauswerfen, bis der Compiler nicht mehr meckert. Dann solange Dateien ins Projekt aufnehmen, bis der Linker nicht mehr meckert. Was dabei übrig bleibt. wird recht übersichtlich.
die MLA ist verwendbar, aber wird nicht mehr gepflegt. Neuer Versionen des XC32-Compilers (ab Version 1.32 oder so glaube ich) meckern sogar über ein #include <plib.h> Viele neuere PICs werden von den Beispielen nicht mehr unterstützt. Ich habe die USB-CDC aus der MLA auf PIC32MX470 und PIC24FJ128GC006 verwendet und habe das für beide anpassen müssen. Für den PIC32MX470 muss man sogar recht tief in der Lib herumfummeln, siehe Microchip Forum. Auch für den PIC32MX250 läuft es nicht sofort. Ich habe zumindest die CDC nicht zum Laufen bekommen (hab aber auch nicht lange herumprobiert). Persönlich finde ich die USB Beispiele in der MLA wenig verständlich, vor allem wegen der exzessiven Verwendung von Makros. Für mich ist die USB CDC auch nach mehrmaliger Verwendung eine absolute Black-Box-geblieben - leider. Wie sind denn so die Erfahrungen mit Harmony bisher? Im Microchip Forum liest man ja nicht wirklich viel positives.
A. S. schrieb: > Ich möchte in den nächsten Monaten ein Projekt vorantreiben, bei dem ein > PIC24 zum Einsatz kommt. Das Gerät soll gleichzeitig eine USB-Maus (bzw. > Multitouch-Pad) und einen USB-MIDI Controller darstellen. Dann musst Du ein Composite-Device (Verbundgerät) implementieren. A. S. schrieb: > Da mir das auf Anhieb zu groß erschien, habe ich mir einen PIC32MX220 > zugelegt, um auf dem breadboard etwas zu experimentieren. Der USB Teil ist tatsächlich etwas zu groß für den Anfang. Wie Dir das Breadboard dabei hilft, bleibt allerdings Dein Geheimnis. A. S. schrieb: > Mein Stand ist, dass ich es geschafft habe, das "Creating an > Application" Tutorial aus der Harmony Library auf mein brett zu > konvertieren. Ich kenne diese Harmony Library nicht, aber für mich sieht es so aus, als ob Microchip hier versucht ein paar komplexe Zusammenhänge für den Entwickler zu vereinfachen. Man klickt also ein bischen was zusammen und schon funktioniert alles. Das sowas nur auf einem beschränkten Niveau funktionieren kann, sollte eigentlich klar sein. Sobald etwas über die Standard-Anwendung hinaus geht (wie z.B. USB-Composite) wird man vermutlich selber Hand anlegen müssen. Und spätestens dann muss man auch wissen was man tut. A. S. schrieb: > Später im Hilfedokument (ab Seite 3734) wird die USB Library auf ca 300 > Seiten beschrieben. Und vermutlich kennt man nach der Lektüre dann die einzelnen Funktionen, aber weiss trotzdem nicht, wie man vorgehen soll. Und hier merkt man dann schon wieder, das die eigentliche Frage ganz anders lautet: 'Wie funktioniert das mit dem USB?'. A. S. schrieb: > Wichtig wäre es, das Prinzip USB-Devices so weit verstanden zu haben Genau. Nimm Dir zwei drei Monate Zeit und lies den Klassiker: http://www.amazon.de/USB-Handbuch-Entwickler-mitp-Professional/dp/3826616901/ref=sr_1_1?s=books&ie=UTF8&qid=1420009664&sr=1-1&keywords=jan+axelson Midi-Geräte sind da aber nicht dabei. Allerdings hast Du danach das Konzept kapiert und die Midi-Geschichte sollt dann auch nicht mehr sehr schwierig sein. A. S. schrieb: > Im Idealfall habe ich bis dahin aber so viel kapiert, dass ich das dann > auch kann! So isses.
Microchip Harmony enthält mehrere Beispiele für USB Devices welche im folgenden Verzeichniss zu finden sind: microchip/harmony/v1_00/apps/usb/device/vendor Darunter auch mehrere CDC und HID Beispiele. "Wie sind denn so die Erfahrungen mit Harmony bisher? Im Microchip Forum liest man ja nicht wirklich viel positives." Ich bin in kurzer Zeit relativ weit gekommen.
A. S. schrieb: > Ich möchte in den nächsten Monaten ein Projekt vorantreiben, bei dem ein > PIC24 zum Einsatz kommt. <snip> > eine LED blinkt ...<snip> <snip> > Das Ganze braucht mit 24kB schon gut zwei Drittel des Flash-Speichers > des PIC32. Bin zwar mit PIC nicht vertraut, aber ist nicht hier bereits etwas arg schiefgelaufen?
Norbert schrieb: > Bin zwar mit PIC nicht vertraut, aber ist nicht hier bereits etwas arg > schiefgelaufen? ja du musst dir die library anschauen. Das Ding ist relativ umfangreich. Ich kann mir schon vorstellen, dass man da einige Lasten mitschleift. Dafür gibt's eine Art Rapid Prototyping Umgebung, in der man - wenigstens theoretisch - sepp schrieb: > in kurzer Zeit relativ weit gekommen sein kann. Da ich mit dem gratiscompiler arbeite habe ich auch nur O1 zur Verfügung (in O0 passt der ganze Kram schon gar nicht mehr in den Chip ^^) Potter schrieb: > Genau. Nimm Dir zwei drei Monate Zeit und lies den Klassiker: > http://www.amazon.de/USB-Handbuch-Entwickler-mitp-Professional/dp/3826616901/ref=sr_1_1?s=books&ie=UTF8&qid=1420009664&sr=1-1&keywords=jan+axelson Ich habe das Gefühl, du hast meine Problemstellung sehr gut Verstanden :D Ist das Buch aber wirklich in meinem Tempo? Habe keine Bibliothek in der Nähe und müsste daher kaufen. Ich habe jahrelange Erfahrung in PC Programmierung (Visual C++) und habe auch schon 4-5 Jahre mit Embedded zu tun (C). Ich weiß was ein Register ist, weiß was ein Datenblatt ist, ich habe einige größere Hobbyprojekte mit 8Bit-PICs fertig, aber ich habe auf Mikrocontroller-Seite noch nie mit USB gearbeitet, oder mit fertigen Libraries. Die Bewertungen haben ja eher ne große Varianz ;) WehOhWeh schrieb: > die MLA ist verwendbar, aber wird nicht mehr gepflegt. Deswegen, habe ich mich auf Harmony konzentriert. Der Plan ist, wenn ich mal weit genug durchgestiegen bin, dass bis dahin die Harmony auch den PIC24 untestützt. Bin gestern auch auf einige Fallen gestoßen, z.B.: Wo der TQFP-PIC24 meines Vertrauens noch die 48MHz aus dem internen Oszillator erzeugen kann, weil er self-tuned ist. Braucht der Breadboard-PIC32MX einen externen Resonator, den ich erst noch bestellen muss. Schade auch das die Doku vom PIC32 viel mehr Lücken aufweist als die vom PIC24. Potter schrieb: > Wie Dir das > Breadboard dabei hilft, bleibt allerdings Dein Geheimnis. naja primär hilft mir das dabei, dass ich nicht zu viele Iterationen brauche, bis die SMD-Platine auf dem finalen Stand ist, weil ich in viele Beschaltungsfallen schon auf dem Brett getappt bin. WehOhWeh schrieb: > Ich habe die USB-CDC aus der MLA auf PIC32MX470 und PIC24FJ128GC006 > verwendet und habe das für beide anpassen müssen. witzig... mein SMD-PIC ist der PIC24FJ128GC010-I/PT Wie du weißt bin ich absolut am Anfang, aber die Fragen werden kommen, fürchte ich!
:
Bearbeitet durch User
A. S. schrieb: > witzig... mein SMD-PIC ist der PIC24FJ128GC010-I/PT Dann würde ich das "USB_Device_-_HID_-_Mouse" Beispiel aus der MLA nehmen mit der Konfiguration "PIC24F_Analog_Starter_Kit_1"
A. S. schrieb: > Gibt es irgendeine Art Tutorial oder Ähnliches, das mich von 0 ab > step-by-step dahin führt, wo ich eine USB-Maus habe, mit der ich > bestimmte Figuren am Bildschirm abfahren kann? > Wichtig wäre es, das Prinzip USB-Devices so weit verstanden zu haben, > dass ich dann mit den Hilfedokumenten mehr anfangen kann, als das jetzt > der Fall ist. Für das alte Low-Pin-Count-USB Board gab es eine etwas ausführlichere Anleitung. Das ganze war für PIC18 und noch die alte MPLAB IDE aber vielleicht kannst du da mal rein schauen -> Google "DS41356B.pdf"
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.