http://www.mikrocontroller.net/topic/333177
Vieleicht hilft Dir das weiter.
Hallo! Ich bin Anfänger und hab eine Grundschaltung mit Atmega32U4-AU auf einem Steckbrett, die soweit auch funktioniert. Meine Frage ist, wie bringe ich die Grundschaltung dazu, von meinem Betriebsystem als eigenständiges USB Gerät erkannt zu werden? Ich kann das Steckbrett zwar mit dem ISP Programmer flashen, möchte nun aber ohne den ISP Programmer das Steckbrett direkt flashen (mit Atmel FLIP). Wie geht das? Ich habe nichts verändert, alle fuses auf den default settings, und schreibe den Code in Bascom. Zum flashen benutze ich Avrdude bzw. Atmel Flip.
VG, knuspel
Geändert von knuspel (21.03.2016 um 00:23 Uhr)
http://www.mikrocontroller.net/topic/333177
Vieleicht hilft Dir das weiter.
Hallo i_make_it. Danke, aber meine Frage ist eine andere. Damit ich die USB-Schnittstelle des Atmega32u4 nutzen kann, muß er ja erst einmal vom Betriebsystem als Gerät erkannt werden. Aber das wird er nicht. Ich habe diverse Schaltungen und nie wird er erkannt. Ich verstehe das nicht, wo liegt da die Ursache? Soweit ich weiß wird er mit einem bootloader geliefert.
Geändert von knuspel (21.03.2016 um 15:23 Uhr)
Hast Du den Bootloader aktiviert?
http://www.atmel.com/Images/doc7618.pdf
(ab Seite 3)
Also entweder im Programm oder per Fuse.
Hallo i_make_it, ja, hier weiß ich nicht weiter. Wenn ich HWB (mit 1k) und RST nach Masse ziehe, dann müßte ich den Bootloader aktivieren, oder? Leider passiert da nichts! Was muß ich denn konkret tun?
Nachdem ich das hier gelesen habe:
habe ich auch versucht mit dem Befehl avrdude -c USBasp -p m32u4 -U hfuse:w:0x98:m das BOOTRST bit (Select Reset Vector) zu setzen. Das macht avrdude brav. Und sobald ich RST gg. Masse ziehe resettet er normal. Aber das Betriebsystem denkt immer noch nicht daran den Atmega als USB-Gerät zu entdecken.The Boot Reset Fuse (BOOTRST) can be programmed so that the Reset
Vector points to the Boot Flash section start address after reset.
Kann ich zumindest auf irgendeine einfache Weise prüfen, ob auf meinem Atmega überhaupt ein Bootloader drauf is?
Geändert von knuspel (21.03.2016 um 18:02 Uhr)
Was kann ich jetzt tun?
Ich sag mal jetzt kommen wir in den Bereich wo Bilder und Schaltpläne von Deinem Aufbau nützlich werden.
Hast Du z.B. an D+ und D- je einen 22Ω Wiederstand zwichen den Ports (3 & 4) und der USB Buchse (2 & 3)?
Geändert von i_make_it (22.03.2016 um 21:15 Uhr)
Hallo, ja diese 22 Ohm Dataline Widerstände habe ich, hier der Schaltplan:
Ich hab den Bootloader jetzt auch nochmal als Datei von Atmel heruntergeladen und auf den Chip geschrieben. Hat alles geklappt. Sogar Programmcode läuft tadellos. Nur komme ich immer noch nicht in den bootloader mode. Warum!? Ich drücke den Reset-Knopf und es passiert nichts. HWB ist permanent mit 1k nach GND gezogen. Was mache ich falsch? Eigentlich sollte das Ding schon vom Betriebssystem als neues Gerät erkannt werden wenn man es bloß in den USB-port steckt .., so berichten es mir jedenfalls andere Leute, die den Atmega32u4 benutzen.
Geändert von knuspel (23.03.2016 um 00:14 Uhr)
Hm, was für ein OS hast Du denn?
Bei Windows könnte man mal den Gerätemanager starten und da USB-Controller aufklappen.
Dann mal anstecken und sehen ob sich überhaupt was tut.
Dann gibt es für Windows noch MUTT (Microsoft USB Test Tool)
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Damit kann man (zumindest bei Windows) mal Rechnerseitig testen ob da überhaupt eine Kommunikation möglich ist.
Hallo, habe Windows 7. Ich hab es mal mit dem LPM Tool (was im MUTT Paket enthalten ist) versucht. Wenn ich irgendein USB-Gerät, z.B. den ISP Programmer, in einen USB-Port stecke dann wird es auch erkannt, was das LPM Tool bestätigt, hier das Bild dazu http://imgur.com/wjm3N7v Soweit alles in Ordnung. Wenn ich nun in denselben Port das Steckbrett anschliesse, dann wird nichts erkannt! Warum? Die Steckbrett-Schaltung funktioniert zumindest kann ich problemlos einen Code ausführen (LED blinking). Warum wird das Steckbrett dann nicht als USB GErät erkannt?
Und was sind die Voraussetzungen, damit ein Gerät als USB-Gerät erkannt wird? Ich fange mal mit dem an, was ich weiss:
1. Voraussetzung: das Gerät hat eine funktionierende Schaltung, die außerdem ausreichend mit Spannung versorgt ist
2. Voraussetzung: das Gerät sollte zumindest über die Datalines D- und D+ mit einem USB-Port verbunden sein.
3. Voraussetzung: zwischen beiden Datalines sollte sich in der Schaltung jeweils ein 22Ohm Widerstand befinden
4. Voraussetzung: im Mikrocontroller sollte sich ein Programm oder Bootloader befinden, der einen USB-handshake mit dem PC macht
5. Voraussetzung: der USB-handshake muss irgendwie getriggert werden. Beim Atmega in der Regel indem man in den bootloader mode geht.
6. Voraussetzung: .. noch irgendwas?
Vielleicht ist irgendein Problem mit den Datalines? Gibt es einen Code mit dem ich die Datalines auf Funktionsfähigkeit überprüfen kann?
Geändert von knuspel (23.03.2016 um 19:36 Uhr)
Lesezeichen