Forum: Mikrocontroller und Digitale Elektronik USB Ansteuerung mit AVR


von Magnus B. (magnus)


Lesenswert?

Guten Tag,

ich bin Student der Fachrichtung Informationstechnik (5. Semester) und 
habe als Studienarbeit die Aufgabe ein Infrarot Sende- und Empfangmodul 
für den USB-Anschluß an einem PC zu entwickeln.

Nun habe ich noch nie mit Microcontrollern gearbeitet, weiß aber, dass 
ich einen verwenden muss ;)...
Gute Elektrotechnische Kenntnisse sind vorhanden...

Ich habe mich auf der Homepage von Atmel schon ein wenig umgesehen und 
bin über die Produktspart "USB-Controller" gestolpert, die mir auf 
Anhieb sympathisch erschien.

Leider habe ich nun keine Ahnung, worin sich

8051-based Microcontroller
AVR-based Flash Microcontroller
AVR-based Function Controller und
Dual Role (OTG/Host/Function) Controller

unterscheiden o_O...

(http://www.atmel.com/dyn/products/param_table.asp?family_id=655&OrderBy=part_no&Direction=ASC)

Hat sich jemand schon einmal mit diesen Controllern auseinander gesetzt?
Liege ich überhaupt richtig diese verwenden zu können?

Bietet Atmel für die Benutzung am PC auch DLL's an?

Würde mich freuen, wenn ich einige Resonanz bekäme.


Magnus

von bla (Gast)


Lesenswert?

einfacher gehts nicht:
http://www.ftdichip.com/Products/FT232BM.htm

da bekommst du auch Treiber ect.

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

http://www.mikrocontroller.net/articles/AVR_PIC_51-Vergleich
Dann hilft auch das Wikipedia, wenn man dort nach "AVR" suchen lässt.

Atmel hat auch AT90USB...-Bausteine - das sind AVR mit eingebauter 
USB-Funktionalität.

von Magnus B. (magnus)


Lesenswert?

bla wrote:
> einfacher gehts nicht:
> http://www.ftdichip.com/Products/FT232BM.htm
>
> da bekommst du auch Treiber ect.

Aufgabe soll ja sein, auch die Anwendung auf dem PC und die firmware 
selbst zu schreiben, sonst ist's ja langeweilig ;)


unsichtbarer WM-Rahul wrote:
> http://www.mikrocontroller.net/articles/AVR_PIC_51-Vergleich
> Dann hilft auch das Wikipedia, wenn man dort nach "AVR" suchen lässt.
>
> Atmel hat auch AT90USB...-Bausteine - das sind AVR mit eingebauter
> USB-Funktionalität.

Danke für den Link, les ich mir gleich mal durch ;)...

Die AT90USBxxx Controller sind die "AVR-based Flash Microcontroller"
Die anderen sind AT43USBxxx, AT73C (AVR-based Function Controller)
bzw. AT89C (8051-based Microcontroller)...

Aber mit den 90ern bin ich auf der sicheren Seite?

von Ralf Kellerbauer Whm (Gast)


Lesenswert?

Zitat:
"Aufgabe ein Infrarot Sende- und Empfangmodul
für den USB-Anschluß an einem PC zu entwickeln"

Hier ist die große Unbekannte bzgl. dem Thema.
Geht es um RC5 Signale (s. z.B. 
http://sprut.de/electronic/ir/rc5.htm#2), dann ist ein Controller mit 
'echten' USB-Fähigkeiten einfach übertrieben.

Zudem ist das RS232/V24 Format - auch konvertiert per FT232BM u.ä. - 
simpel in beliebige Applikationen integrierbar bzw. einfach per 
Terminalprogramm lesebar.

Tippe aber, daß gelernt werden soll wie man USB auf der Controllerseite 
und in PC-Software dann umsetzt. Dann wären Controller mit int. USB 
nötig.

von Stefan Salewski (Gast)


Lesenswert?

Magnus Birk (magnus) schrieb am 26.11.2006 um 12:58 Uhr:

>Aber mit den 90ern bin ich auf der sicheren Seite?

Die AT90USB Serie hat Atmel leider sehr schlecht dokumentiert.
Ich habe mir für den AT90USB1287 eine Platine gemacht, siehe
http://www.ssalewski.de/AVR_USB_gEDA.html.de
und möchte sie demnächst unter Linux mit eigener, freier Firmware in 
Betrieb nehmen. Da die Dokumentation im Datenblatt des AT90USB sehr 
knapp ist, habe ich damit aber ganz schön zu kämpfen. Ich habe 
USB-Bücher, die USB-Spezifikation, andere USB-Datenblätter (von 
Nationals USBN960x, Atmels AT89 Serie usw.), aber einfach ist es nicht. 
Man muss oft raten, wie man das, was im Datenblatt des AT90USB 
angedeutet ist, in der Praxis umsetzen kann. Mit etwas mehr 
Unterstützung seitens Atmels wäre es viel einfacher, also wenn es für 
die Nutzung der Low-Level Funktionen Sourcecode von Atmel geben würde.

Es gibt von Atmel zwar Sourcecode, aber den bekommt man nur nach 
Registrierung, man darf ihn nicht für freie (GPL)-Software nutzen. Und 
er ist wohl eher für Windows gedacht und auch sehr aufgebläht und wohl 
für HID-Devices gedacht.

Du musst selbst wissen was Du dir zutraust und ob Du dir das Leben 
lieber leicht machen willst -- Du kannst ja auch mal bei Atmel anfragen. 
Mir ist es rätselhaft, warum die so ein Geheimniss um Ihren Sourcecode 
machen.

Gruß

Stefan Salewski

von Magnus B. (magnus)


Lesenswert?

Hallo Stefan,

aktuell komme ich von dem Gedanken mit dem Atmel immer noch nicht ganz 
weg.

> Du musst selbst wissen was Du dir zutraust und ob Du dir das Leben
> lieber leicht machen willst -- Du kannst ja auch mal bei Atmel anfragen.
> Mir ist es rätselhaft, warum die so ein Geheimniss um Ihren Sourcecode
> machen.

Wie würde ich es mir denn leichter machen?
Sind PIC-Microcontroller dafür besser geeignet?

Aktuell kämpfe ich noch mit der Frage, ob das, was ich baue nur ein 
Divece ist, oder auch Host-Funktionalität besitzen muss, weil es ja 
möglich sein soll vom PC aus IR-Signale zu senden und der Controller 
dafür eine IR-LED bedienen muss.

von Mr T (Gast)


Lesenswert?

Du musst einen Device bauen. würde dir auch eher zu den pics raten 
-obwohl ich eigentlich auf avr stehe- denke aber, dass die usb-on-board 
controller von pic besser sind. falls du keine windows-standard-klasse 
erstellen willst und somit keine windowstreiber verwenden kannst, würde 
ich dir die libusb nahe legen...

von Ralf (Gast)


Lesenswert?

Einen Controller zu programmieren ist nicht so schwer. Was mir fehlt ist 
wie ich einen Treiber für Windows schreibe. Aber vielelciht weis da 
jeamand was.


Gruß

Ralf

von Stefan Salewski (Gast)


Lesenswert?

Magnus Birk (magnus) schrieb am 05.12.2006 um 10:19 Uhr:

>Hallo Stefan,

>aktuell komme ich von dem Gedanken mit dem Atmel immer noch nicht ganz
>weg. Wie würde ich es mir denn leichter machen?

Hallo Magnus,

wie viele Andere mag auch ich die AVRs von Atmel.
Einige der Pluspunkte: Allgemein gute Literatur von Atmel erhältlich, 
gute Unterstützung durch avr-gcc und avrdude (Linux), angenehme 
Programmierung auch unter Assembler. Aber das ist natürlich 
Ansichtssache -- sicher haben auch andere Controller ihre Vorteile.

Aber mit USB sieht es bei Atmel und den AVRs ja nicht so gut aus. Der 
AT90USB kam erst recht spät heraus, und die Dokumentation (Datenblatt) 
ist wirklich dürftig. Das USB-Kapitel liegt weit unter dem bei Atmel 
üblichen Qualitätsstandard. Vieles wird nicht eindeutig erleutert und 
einiges ist falsch beschrieben, beispielsweise werden Registernamen 
erwähnt, die nicht existieren. Ich habe Atmel schon angeschrieben, aber 
noch keine Antwort. Das USB-Kapitel ist im Prinzip noch immer im 
Entwurfstadium, und scheinbar will sich da bei Atmel keiner um die 
Fertigstellung kümmern. Wenn man Software entwickeln will, die man 
später völlig frei als Quellcode weitergeben darf, ist man aber leider 
auf das Datenblatt angewiesen, da man die proprietäre ATMEL-USB-Software 
nur mit großen, für mich inakzeptablen Einschränkungen nutzen darf. Ich 
habe in den letzten Wochen versucht, mit den Angaben im Datenblatt 
einige Makros für das Low-Level-Interface des AT90USB zusammenzustellen. 
Das derzeitige Resultat ist auf
http://www.ssalewski.de/USB-Sources/ (usb_drv.c)
http://www.ssalewski.de/AVR_USB_gEDA.html.de (Platine)
einsehbar, es ist aber noch unvollständig und ungetestet.

Einfacher wird es für Dich, wenn Du die proprietäre Atmel-Software 
verwenden willst. Alternativ könntest du den Interfacechip USBN960x von 
National verwenden, dafür hat Benedikt Sauter bereits sehr viel freien 
Code geschrieben, siehe www.ixbat.de . Aber auch die Nutzung seines 
Codes ist nicht ganz einfach, ich versuche mich auch gerade in seinen 
Code-Bergen zurechtzufinden. Noch einfacher ist es wohl, die FTDI-Chips 
zu verwenden -- aber das ist dann eigentlich kein richtiges USB. Zu 
anderen USB-Controllern kann ich nichts sagen.

Gruß

Stefan Salewski


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.