Forum: Mikrocontroller und Digitale Elektronik AT90USB (und ähnliche) Grundlagen


von Joshua H. (joshih13)


Lesenswert?

Guten Tag,
ich habe ein paar grundsätzliche Fragen zum AT90USB bzw. ähnliche 
Cotroller. Ja, ich weiß, dass ich diese Fragen auch anderweitig hätte 
klären können, ich wollte mir jedoch stundenlange Recherche ersparen und 
habe mir deshalb erlaubt, eben hier die Comunity zu fragen, um zu 
entscheiden, ob ein weiteres Vorgehen auf diesem Gebiet überhaupt 
interessant ist für mich. So, genug gelabert, nun zu meinen Fragen. Wie 
funktioniert dieser Controller im groben? Ist es wirklich so, wie ich 
denke und vor allem hoffe, wie es ist, dass ich den Controller 
entsprechend verkabele und ihn dann an den USB Port des PCs anschließe, 
um ihn über diesen im Prinzip live zu programmieren? Also kann der 
Controller so wie er ist, unprogrammiert an den PC angeschlossen werden 
und erst dann über eben diese USB-Verbindung programmiert werden? Also 
kann ich ihn praktisch über ein externes Programm, welches auf dem PC 
läuft, steuern, ohne dass er selbst wirklich programmiert ist? Also 
erfolgt eine live programmierung über einen entsprechenden Treiber (also 
mein Programm) oder muss der Controller entsprechend vorprogrammiert 
werden, um vom PC angesteuert zu werden?

Was ich zunächst erreichen möchte, ist ein Hard- und Softwaremäßiger 
Aufbau, mit dem ich den Controller als Schittstelle nutze, um 
Verbraucher anzusteuern und im weiteren Verlauf Sensoren (bsp. 
Thermometer) abzufragen. Auch ein selbstgebauter "Controler" für den PC 
ist geplant, wenn das denn möglich ist. Die Zustände des Boards möchte 
ich dann über ein Windows Programm visualisieren und steuern. Über die 
nötigen Kenntnisse in C++ verfüge ich, wobei ich mich natürlich noch in 
den AT90USB einlesen muss, was sicher Stunden oder ehr Tage dauern wird. 
Naja es wird machbar sein denke ich...

Vielleicht kann mir ja noch jemand sagen, wie denn so ein Programm im 
Groben arbeitet. Kann ich den angschlossenen USB Controller ähnlich 
steuern, wie einen eigenständigen MC? Also die einzelnen Pins abfragen 
bzw.  ansteuern? Oder wie läuft das?

Vielen Dank schonmal im Voraus und sorry für den langen Text.

von Christian (Gast)


Lesenswert?

Nein der AT90USB sowie die ATmegaXXuX Bauhreihe verfügen über einen 
"eingebauten" Bootloader.
In diesen Bootloader kann mittels "Atmel Flip" dein eigenes Programm 
geflasht werden. Es spart dir den In-System-Programmer (ISP).
Dein Programm für den uC musst du dennoch zuvor selber in ASM oder C 
schreiben.

von Christian (Gast)


Lesenswert?

Du kannst natürlich ein uC-Programm schreiben, welches über die USB 
Schnittstelle (z.B. Virtual COM-Port) mit deinem C++-Programm auf dem 
Rechner kommuniziert und dementsprechent Sensoren ausliest und der 
gleichen...

von Marcel Gast (Gast)


Lesenswert?

Hi, also es geht bestimmt, dass man den "Controller-Code" über USB in 
den AT90USB bekommt. Das funktioniert dann wie Christian schon 
geschrieben hat, über "Atmel-Flip"! Näheres weiß ich zu diesem Thema 
leider auch nicht. Am besten verwendet man für Deine Idee einen 
Bootloader. Der Bootloader-Modus wird über ein bestimmtes Event 
ausgelöst. Der Controller wird im Ablauf seiner Applikation angehalten 
und in den Bootloader- Mode geschaltet. Über den Bootloader kann man 
dann in den Applikationsbereich "neu reinschreiben".

Ein guter Artikel wäre z.B. dieser hier:

http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung

Ich würde aber behaupten, so einfach wie Du das schreibst und 
vorstellst, ist es auf jeden Fall nicht. Wenn Du noch nie etwas mit µC 
gemacht hast, wird das ein langes Projekt bis Du das hast, was Du gerne 
möchtest. Aber es ist auf jeden Fall nicht unmöglich! (wenn man es nur 
will)

Gute Hilfestellung gibt das Forum auch hier:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

(versuch z.B. erst mal eine LED an einem Port mit 1Hz blinken zu lassen)


Ich habe meine Diplomarbeit mit Hilfe des AT90USB1287 gemacht. Ist echt 
ein cooler Controller im Vergleich zu den anderen AVR- Controller.

Wenn Du dich allerdings erst noch in alles Einarbeiten musst und Du in 
der Controller-Wahl noch frei bist, würde ich auf einen SAM4 umsteigen. 
Ich habe erste Gehversuche auf dem SAM4L gemacht und mit Hilfe des Atmel 
Studio 6.2 kann man in wenigen Minuten z.B. ein "USB HID Generic Device" 
erstellen. Das ist mit dem ASF ganz einfach möglich. [wenn man mal 
verstanden hat wie das funktioniert ;o)] Es gibt dann bestimmte Makros 
(Funktionsaufrufe) die man verwenden kann um Daten aus der Applikation 
oder in die Applikation per USB zu schreiben. Natürlich ist es dann noch 
mehr Einarbeitung in die ARM- Controller im Vergleich zu den AVR's weil 
diese schon etwas aufwendiger sind bis man mit Ihnen arbeiten kann. 
(z.B. aktivieren sämtlicher Taktquellen für die Peripherie) Bei den 
AVR's bekommst Du im Vergleich zu den ARM's massig Hilfe z.B. hier im 
Forum.
Das ASF sollte auch nur dazu dienen um zu testen was man vorhat. Es wird 
im ASF- Projekt sehr viel includiert und bläht so ein Projekt völlig 
auf. Also für mich nur in der Testphase geeignet.

Vielleicht hat Dir das etwas geholfen!

Viele Grüße und viel Erfolg beim Einarbeiten ;o)

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.