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)?
Werbung
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 20: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 (22.03.2016 um 23: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 18:36 Uhr)
Update: Habs jetzt gelöst, es war ein fehlender 1µF Kondensator am Pin UCAP. Den hatte ich auf dem Steckbrett nicht und der muß anscheinend unbedingt sein, damit USB funktioniert!
Schön das Du es lösen konntest.
im Datenblatt
http://www.atmel.com/images/atmel-77..._datasheet.pdf
auf Seite 6 (2.2.12).
Steht tatsächlich "nur" sollte (Should) und nicht muß.
Man könnte also auf die Idee kommen das man den auch sparen kann.
Gut zu wissen.
Ja, dieser Satz im Datenblattist mißverständlich. Vielleicht meint Atmel damit, daß der Wert auch anders sein kann. Aber daß da überhaupt ein Kondensator vorhanden ist, ist für das Funktionieren der USB-Schnittstelle kein Kann sondern ein Muß. Ich meine Datenblätter sind ja an sich schon maulfaul, aber wenn dann auch noch die paar Worte mißverständlich sind, die es abgibt, ist das suboptimal.Ucap capacitor should be 1μF (±10%) for correct operation
Geändert von knuspel (24.03.2016 um 15:04 Uhr)
Lesezeichen