Forum: Mikrocontroller und Digitale Elektronik USB for Dummies: einfacher Datenaustausch yC <-> PC


von Alois O. (ortech)


Angehängte Dateien:

Lesenswert?

Hallo,

möchte auf einfachstem Wege über den USB-Port Daten zw. yC und PC hin - 
und herschicken. (als allererstes möchte ich einen analogen Potiwert 
über USB an einen PC senden, genauer gesagt möchte ich mir eine 
Applikation in vb.net schreiben, die diese Daten dann verarbeitet).

Ich weiß, daß ich einen generischen Treiber (CDC-Driver), der bei Win XP 
dabei ist, verwenden kann.
Ich habe obige Verschaltung gefunden. Es war auch ein Code dabei, nur 
mit diesem komm ich nicht klar, da er recht umfangreich aussieht.

Meine Fragen:
1.Wie initialisiere ich die USB-SS mit einem Atmega8 oder 8515L?
2.welche includes brauche ich und woher bekomm ich diese?
3.wie greif ich auf den CDC-Treiber zu
4.was ,muß ich noch beachten

Ich weiß, zur Init gehört eine VendorID und eine DeviceID.
Weiters muß ich Endpunkte und Deskriptoren definieren. Welche Methoden 
gibts dazu? (Device-, Interface-, Endpunkt-Deskriptoren). Ich weiß, was 
die einzelnen Deskriptoren beinhalten (theoretishc zumindest).

Ich möchte euch um einen einfachen BeispielCode für den yC für die 
Initailisierung bitten, und auch für einen einfachen Datenaustausch.

danke im Voraus.
Alois

von Nico E. (masta79)


Lesenswert?


von Guido Körber (Gast)


Lesenswert?

Software USB und CDC geht nicht, CDC braucht Full Speed, Software USB 
geht maximal mit Low Speed und ist abgesehen davon ohnehin Vollgrütze.

von Rex Gildo jr. (Gast)


Lesenswert?

Moin!

Warum nicht einfach ein FTDI Chip mit virtuellem Comport, für die paar 
Potiwerte. Die neuen brauchen nur wenige externe zusätzliche Bauteile.
Spart Zeit und unnötiges Gefrickel.

Gruß

von Simon K. (simon) Benutzerseite


Lesenswert?

Es gibt auch AVRs mit USB Schnittstelle, die unterstützen Full Speed und 
CDC und da gibt es sogar AppNotes für. Wofür der Software USB Kram gut 
sein soll, habe ich immer noch nicht verstanden.

von (prx) A. K. (prx)


Lesenswert?

Simon K. schrieb:

> Wofür der Software USB Kram gut sein soll, habe ich immer noch
> nicht verstanden.

Hast du schon mal einen 8- oder 14pinner mit integriertem USB gesehen?

von Simon K. (simon) Benutzerseite


Lesenswert?

So viel größer ist ein TQFP 32 Package auch nicht.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

A. K. schrieb:
> Simon K. schrieb:
>
>> Wofür der Software USB Kram gut sein soll, habe ich immer noch
>> nicht verstanden.
>
> Hast du schon mal einen 8- oder 14pinner mit integriertem USB gesehen?

habe noch nie einen atmega8 mit 8 oder 14 pins gesehen :)

TQFP32 (evt. mit QFP32->DIP adapter) atmega8U2 würde mir lieber sein

von ortech (Gast)


Lesenswert?

wieso gehts nicht ohne externen Chip?
Wie wurde es denn in diesem Bild, das ich mitgeschickt habe, dann 
umgesetzt? Ich brauche keine schnelle Datenübertragung oder sowas, nur 
hab ich halt nur einen USB Anschluß am Laptop.

von Thomas R. (tinman) Benutzerseite


Lesenswert?

ortech schrieb:
> wieso gehts nicht ohne externen Chip?

hmm, natürlich geht es, entweder die atmel usb µC famili nehmen - dann 
hast du usb und den µC in einem chip, oder soft usb zusätzlich zu deinem 
projekt in dem µC integrieren.

Soft usb ist z.b. http://www.obdev.at/products/vusb/index.html

> Wie wurde es denn in diesem Bild, das ich mitgeschickt habe, dann
> umgesetzt?

Diese bild ist vom usbtenki projekt, anscheinend hast du nicht gesehen 
was da steht :

"I used Objective Development's software only USB implementation for 
Atmel's AVR microcontrollers..."

und Objective Development ist 
http://www.obdev.at/products/vusb/index.html

> Ich brauche keine schnelle Datenübertragung oder sowas, nur
> hab ich halt nur einen USB Anschluß am Laptop.

ja, soft usb wird ausreichend für dich. Um zu verstehen wie obdev 
benutzt wird guck dir http://www.obdev.at/products/vusb/prjobdev.html 
oder den usbtenki.

von ortech (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Thomas

JA GENAU! Das brauch ich! Soft-USB oder VUSB.
Ich hab mir das USBTenki Projekt angesehen, aber ich durchblicke den 
Code nicht.

Noch eine Frage zum Soft-USB.

1. brauch ich dazu keinen generischen Treiber wie CDC oder HID?
2. ich hab mir jetzt das vusb-20090415.zip von diesem Link (bei 
Powerswitch unter DOwnload) heruntergeladen
3. jetz hab ich hier folgende Files und Ordner (siehe Anhang)
4. Um jetzt ein einfaches PRojekt für den Atmel zu machen, brauch ich 
was?

Ich tu mir da schwer als absoluter Anfänger, ich kann zwar vb.net, aber 
mit C...

Könntest du mir das Prinzip kurz schildern?

Schönen Gruß, Alois

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

ortech schrieb:
> Könntest du mir das Prinzip kurz schildern?
Unter Examples die enthaltenen Codes ansehen und modifizieren.
Optional auf der obdev-webseite andere Projekte ansehen und 
modifizieren.

von ortech (Gast)


Lesenswert?

habs versucht, aber ich muß zugeben, ich checks nicht ohne daß es mir 
jemand erklärt...
Erklärt mir jemand das Prinzip?

Brauch ich nun meinen Windows-Treiber, auf den ich zugreife?
Was brauch ich an "Fremdcode", um meine Applikation darauf aufzusetzen?

Es muß doch was geben wie:

1. Init USB Schnittstelle

2. Methode Read Data

3. Methode Write Data

?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Unter Linux gibt es dazu eine libusb. Da wird es wohl auch etwas 
ähnliches (oder gar das gleiche?) für Windoof geben. Ich meine auch, auf 
den obdev Seiten sowas gelesen zu haben. Suchen musst Du aber selber, da 
ich dazu weder Zeit noch Lust habe.

von Mars (Gast)


Lesenswert?

Microsoft liefert bereits einen HID-Treiber mit.
Unter http://msdn.microsoft.com/en-us/library/ms790932.aspx findest du 
alle Funktionen um auf HID-Devices zuzugreifen.

von ortech (Gast)


Lesenswert?

ok danke mal.
Werd jetzt mal ein paar Tage Urlaub machen und mich dann nächste Woche 
dem Thema wiederum widmen. Danke für eure Inputs!
Alois

von gadgaet (Gast)


Lesenswert?

In der Elektor-Ausgabe vom März 2007 wurde alles genau beschrieben. 
Link:
http://www.elektor.de/jahrgang/2007/marz/avr-steuert-usb.80948.lynkx
Hier werden ebenfalls die AVR-USB-Treiber von obdev verwendet. Den Code 
für den AVR kann man dort runterladen...

grüssse
g.

von ortech (Gast)


Lesenswert?

danke für den tipp, gadgaet !
Hab mir den Artikel soeben runtergeladen und werd ihn demnächst ansehen.

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.