Forum: Mikrocontroller und Digitale Elektronik Eigene Firmware auf dem usb-avr-lab mit rechner reden.


von Daniel S. (schrolli)


Lesenswert?

hallo zusammen,

ich würde gerne vom usb-avr-lab aus ein paar hex-daten zum rechner 
senden und weis jetzt grad nicht weiter.

Was ich schon rausgefunden hab:

- Umbedingt das AVR-Studio-Projekt nehmen, sonst kann man den progger 
nichtmehr in den bootmode versetzen
- Defaultmässig meldet sich das usb-lab als cdc-Gerät an (in der 
usbconfig.h: wenn weder HID noch BOOTLOADER noch ISP-MKII)

Das ganze soll dazu dienen, dass ich mir das dev-board einsparen kann. 
Insgesammt ist das ein 1-Wire master, der nen speziellen 
speicher-baustein ausliest.

bis jetzt war die firmware auf dem dev-board, das mit nem max232 
ausgestattet dann über rs232 die daten an den rechner gesendet hat. Im 
Programm hab ich dann einfach ne fertige uart lib genommen und dann 
meine daten einfach nem "uart_send()" übergeben.

jetzt wollte ich fragen, ob es schon irgendwas fertiges gibt, das dann 
ne art lib ist, die sich um die kommunikation als cdc kümmert oder ne 
kurze anleitung wie ich das machen kann.

Ich hab bis jetzt halt nur Programme gefunden, die irgendwelche spi to 
virtual-com-port converter waren und hab da jetzt auch nicht genau den 
teil identifizieren können, wos aus dem spi raus ins usb-cdc geht...

mfg schrolli

von Oliver J. (skriptkiddy)


Lesenswert?

Daniel S. schrieb:
> jetzt wollte ich fragen, ob es schon irgendwas fertiges gibt, das dann
> ne art lib ist, die sich um die kommunikation als cdc kümmert oder ne
> kurze anleitung wie ich das machen kann.

Schau mal hier:
http://www.recursion.jp/avrcdc/

von Mike J. (emjey)


Lesenswert?

http://www.obdev.at/products/vusb/download-de.html

Ich hatte mir das HID-Custom_rq Projekt zum Testen und um zu verstehen 
was da passiert ausgesucht.

Hilfe:
http://forums.obdev.at/viewforum.php?f=8

von Daniel S. (schrolli)


Angehängte Dateien:

Lesenswert?

Danke für die Antworten!

Oliver J. schrieb:
> Schau mal hier:
> http://www.recursion.jp/avrcdc/

kannte ich schon, habs mir aber nochmal genauer angeschaut.

Ich hab mir jetzt

http://www.beyondlogic.org/usbnutshell/usb1.shtml

durchgelesen und hab jetzt meine firmware soweit hingebracht, dass es 
als virtueller com-port erkannt wird. nur weis ich immernochnicht wie 
ich jetzt daten an den host senden kann (ja, die daten müssen natürlich 
vom host angefragt werden)...

was mir auch noch kopfschmerzen bereitet, sind die genauen Aufgaben von 
usbFunctionSetup, usbFunctionRead, usbFunctionWrite und 
usbFunctionWriteOut

Write heist ja, dass der Host schreibt (mein gerätchen empfängt)
Read heist dann folgerichtig host lesen / device schreiben.

Die Hauptkommunikation läuft ja über endpoint1 ab, irgendein statuszeugs 
geht über endpoint3 und die ganze setup/config geschichte geht über 
endpoint0

Das USB-AVR-Lab-Tool erkennt das device auch als virtuellen comport und 
bietet die schaltfläche "in den bootmodus versetzen" an. nur tut die 
nichts. ich glaube, dass das versetzen in den bootmodus in der 
usbFunctionSetup stattfindet. dort hab ich aber nichts verändert (ich 
hab als grundgerüst das "eigene firmware"-projekt genommen). da ich die 
FunctionsSetup auch nicht angerührt hab, geht warscheinlich auch das 
ganze cdc nicht...

Ich hab mal die aktuelle avrlab.c datei angehängt. Ich hab ausser dem 
AVR-Studio Parameter -DUSB_HID entfernen nichts weiter an dem 
standardprojekt verändert

ich bin etwas verzweifelt, weil ich auch aus den beispielen nirgends die 
zeilen gefunden hab, wo das usb-io passiert.

mfg schrolli

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.