Forum: Projekte & Code Xmega USB CDC Library C


von Tuffi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.

Da ich nichts direkt lauffähigs, oder nur sehr umfangreiche und komplexe 
Codesammlungen für Xmega USB gefunden habe, habe ich mithilfe vom Atmel 
ASF eine "eigene" Lib entwickelt. Im groben ist es die ASF Lib aber aus 
dem ASF Projekt raus gezogen und deutlich entstrafft. Zudem noch ein 
paar Zusatzfunktionen hinzugefügt zum senden von Strings oder ItoA. Das 
ASF war so dermaßen unübersichtlich, das geht jetzt hier deutlich 
entspannter. Man kann die ganzen Libs einfach dem Projekt hinzufügen und 
starten.

Es ist schon ein fertiges Projekt für den Xmega32A4U dabei damit man 
direkt sieht was passiert. Er sendet im Sekundentakt einen String und 
wenn man ein Ascii sendet bekommt man eine Antwort die das gesendete 
Byte enthält.

Ich hoffe es bringt einiges was und kann verwendet werden.

Ich habe es leider nicht sehr klein bekommen (nur vom ASF ~12kb auf 
7,5kb). Das heißt für einen CDC Bootloader wirds nicht reichen (leider). 
Aber bei größeren Chips oder zur reinen Kommunikation dennoch gut 
nutzbar.

: Verschoben durch Moderator
von Tuffi (Gast)


Lesenswert?

Weiß jmd. ob man bei dem Treiber einen Seriennummer-Prefix angeben kann?

Bei den FTDI Chips gab es immer eine "auto generated serial number" oder 
mit Prefix. Mit der VB Software habe ich dann nach dem Hersteller 
gesucht und dieser Prefix (bspw. PR) und damit das Gerät identifizieren 
können.

Ich finde zwar auch als Serielles USB Gerät nun den Xmega auch mit der 
VID und PID von Atmel aber wenn ich davon mehrere am USB habe kann ich 
die nicht identifizieren. ?!

von Tuffi (Gast)


Lesenswert?

Gefunden. Man kann in der conf_usb.h wo man auch die Manufacture Name 
etc setzt (ebenso wie Bus/self powered und Stromverbrauch) die 
auskommentierte Zeile "USB_DEVICE_SERIAL_NAME" hinzufügen. Wenn man dann 
bspw. mit WMI und VB ausließt steht genau das am Ende. Perfekt.!

von W.S. (Gast)


Lesenswert?

Tuffi schrieb:
> Man kann die ganzen Libs einfach dem Projekt hinzufügen und
> starten.

Und wenn man ein ganz anderes Projekt sich vorgenommen hat, was dann?
Du hast eine über 200K große .rar Datei beigefügt. Was von dem Inhalt 
gehört nun zu deinem Treiber und was nicht? Wo ist eine Beschreibung, 
wie man die einsetzt?

W.S.

von Tuffi (Gast)


Lesenswert?

W.S. schrieb:
> Tuffi schrieb:
>> Man kann die ganzen Libs einfach dem Projekt hinzufügen und
>> starten.
>
> Und wenn man ein ganz anderes Projekt sich vorgenommen hat, was dann?
> Du hast eine über 200K große .rar Datei beigefügt. Was von dem Inhalt
> gehört nun zu deinem Treiber und was nicht? Wo ist eine Beschreibung,
> wie man die einsetzt?
>
> W.S.

Guter Einwand. Zum Treiber gehört alles außer die main.c im Ordner 
UsbTestXmega. Alle anderen .h und .c Dateien die im ordner liegen sind 
vom Treiber. Mit dem Projekt macht es aber Sinn, um die init zu sehen 
und die Benutzung. Die .h und .c vom Treiber kann man bel. in Projekte 
einbinden.

Man muss wenn man den Treiber nutzen möchte, die ganzen .h und .c (halt 
außer die main.c ist klar) über das Atmel Studio hinzufügen mit dem 
Rechtsklick aufs Projekt und dann Add Existing Item. Das ist wichtig, 
sonst passen die Zuordnungen nicht mehr. Im projekt selber (siehe 
Beispiel) braucht man dann kein Include mehr machen von irgendwelchen .c 
oder .h.

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