Tutorial für die USB-Kommunikation mit einem PIC18F4550 unter Verwendung des CDC-Frameworks

Ich versuche, eine USB-Kommunikation vom PC zu einem PIC18F4550-Mikrocontroller mit dem Microchip PIC18 USB CDC (Communication Device Class) Framework durchzuführen, das im Wesentlichen den PIC18, der über das USB-Kabel mit dem USB-Anschluss des PCs mit dem PC verbunden ist, als erscheinen lässt einen virtuellen COM-Port am PC. Dies gibt mir die Leichtigkeit, die Daten so zu senden, als ob ich sie an eine serielle Schnittstelle auf der PC-Seite senden würde, und beseitigt die Mühe, einen USB-zu-Seriell-Konverter zu verwenden.

Das Problem ist nun, dass das von Microchip bereitgestellte Demo-Projekt so geschrieben ist, dass es auf verschiedenen Geräten, mit verschiedenen Schaltungen oder unter verschiedenen Bedingungen gebrannt werden kann - das macht es groß und zumindest für mich schwerer zu verstehen. Wenn jemand hoffentlich nur einen funktionierenden Code mit minimalen Kommentaren für diesen Mikrocontroller oder etwas Ähnliches bereitstellen könnte ODER mich mit einem guten Tutorial verlinken könnte, würde es mein Leben VIEL VIEL einfacher machen

Danke.

Kennen Sie diese beiden Microchip-Dokumente? Sie bieten einige grundlegende Hintergrundinformationen. ww1.microchip.com/downloads/en/DeviceDoc/51679b.pdf ww1.microchip.com/downloads/en/AppNotes/00956b.pdf
Eine weitere nützliche Ressource für mich war diese deutsche Seite (weiß nicht, ob Sie Deutsch verstehen): sprut.de/electronic/pic/8bit/18f/interfaces/usb/usb.htm
Danke für deine Links. Nein, ich verstehe kein Deutsch, aber Google Translate tut es :)
Dank Federico und @PetPaulson habe ich genau das getan. Es wurde von unnötigem Code befreit und mir wurde klar, dass es nur ein paar Funktionen waren, die die Arbeit erledigten, und es gelang mir, mit dem PIC über Hyperterminal zu kommunizieren.

Antworten (1)

Ich habe keine Erfahrung mit der CDC, aber ich habe einige mit der MSD-Klasse. Einige Schritte, die ich getan habe und die für Sie nützlich sein können. Lassen Sie uns zunächst ein eigenständiges Projekt erstellen:

1) Ich gehe davon aus, dass Sie die MAL (Microchip Application Libraries) heruntergeladen und installiert haben. Kopieren Sie die folgenden Dateien in Ihr Beispielverzeichnis: usb.h, usb_ch9.h, usb_common.h, usb_config.h, usb_device.h, usb_device_local.h, usb_hal.h, USB PIC18.h, usb_function_cdc.h, usb_function_cdc.c und fügen Sie sie dem MPLAB X-Projekt hinzu. Entfernen Sie die Bibliotheken aus dem MPLAB-Projekt.

2) Kompilieren Sie es, verknüpfen Sie es und sehen Sie, ob es noch funktioniert.

3) Entfernen Sie mit MPLAB X alle Codezeilen, die in den #ifdef- oder #else-Präprozessorblöcken ausgegraut sind. Das heißt, entfernen Sie den gesamten Code, der für andere Architekturen vorgesehen ist, die nicht für einen PIC18F45XX vorgesehen sind.

4) Wiederhole 2.

5) Wenn Sie jetzt anfangen, den Code zu studieren, werden Sie feststellen, dass er viel einfacher ist, als Sie anfangs dachten, und Sie werden viel mehr Kontrolle über Ihr Projekt haben.

Hoffe das hilft.

Vollständige Zustimmung zu Schritt 3; Die Tutorials sind sehr allgemein und nicht plattformspezifisch geschrieben. Ich habe auch viel Code aus den Standard-USB-Beispielen entfernt und gehe von dort aus, dann macht die Hauptanwendung im Grunde nur einige API-Aufrufe.