Hallo, ich suche mir seit Stunden die Finger wund. Ich habe vor kurzem einen ATmeg32U2 erworben, um ein wenig in das Thema "integrierter USB-Controller" rein zu kommen. Dazu versuche ich das AVR328 (Generic HID Device) zu kompilieren. Ich benutze WinAVR-20100110 mit AVR-Studio 4. Die AVR328 ist eigentlich für den AT90USB162 geschrieben. Sollte aber auch mit anderen Series-2-Typen funktionieren. Es gibt jedoch zwei Funktionen/Makros, die nicht klappen. Die eine ist "Usb_enable_regulator()" und stellt etwas an der 3.3V-Stromversorgung ein. Die kann man weglassen, vermute ich. Der ATmega32U2 hat so etwas nicht. Dann gibt es noch "Clear_prescaler()", die bei dem AT90USB162 auf clock_prescale_set() umgeleitet wird, die wiederum in avr/power.h definiert ist. Dort zwar für AT90 (und andere) aber nicht für den ATMega32U2. Es geht es um eine definierte Umschaltung des Prescalers. Ich habe mir beide Datenblätter mehrfach angeschaut (Kapitel "System Clock Prescaler")und kann keinen Unterschied feststellen. Ich würde jetzt einfach die Definition aus "power.h" ins Hauptprogramm übernehmen. Das könnte mir zumindest kurzfristig weiterhelfen. Meine Fragen: a) Ist meine Annahme richtig, dass es sich um einen Bug in power.h handelt, also das der ATmega aus irgendwelchen Gründen versehentlich nicht aufgeführt ist? Oder ist das Absicht und es gibt doch Unterschiede? b) Wenn es ein Bug ist, wo/wie kann man ihn melden. Vielen Dank für eure Unterstützung.
Red Baron schrieb: > a) Ist meine Annahme richtig, dass es sich um einen Bug in power.h > handelt, also das der ATmega aus irgendwelchen Gründen versehentlich > nicht aufgeführt ist? Ja, davon würde ich ausgehen. > b) Wenn es ein Bug ist, wo/wie kann man ihn melden. https://savannah.nongnu.org/bugs/?group=avr-libc
Moin, hast du das Problem lösen können? Stehe gerade vor genau dem gleichen ;)
a) der u2 hat sehr wohl einen internen regulator siehe register REGCR (bit REGDIS) und den abschnitt 20.3 USB Module Powering Options. ich versuche auch gerade einen u2 zur mitarbeit zu bewegen. mit 5V vcc funktioniert alles wunderbar, mit 3.3V generiert von einem ldo geht garnichts. nicht nur usb funktioniert dann nicht sondern auch normale i/o pins funktionieren nicht. programmieren per spi (am avr dragon) funktioniert. es gibt mehrere möglichkeiten den u2 mit vcc <4V zu betreiben. ich wollte die im datenblatt als Figure 20-4 bezeichnete variante verwenden. ergebnis siehe oben (auch wenn ich den regulator disable... was wohl garnicht ausgeführt wird warum auch immer). eine andere möglichkeit ist den regulator nur für den usbteil des u2 zu verwenden und für vcc einen externen. lt jemanden in #avr auf freenode funktionierte das bei ihm. bei 5V (von usb) sollte der regulator eingeschaltet bleiben und alles wie auf Figure 20-3 gezeichnet verbunden werden. b) der bug ist bereits bekannt: https://savannah.nongnu.org/bugs/?28627 einfach in power.h patchen behebt das problem.
Alles klar. Das mit der power.h hab ich inzwischen auch selbst so gemacht, wollte nur nochma wissen ob das auch so i.O. ist ;) Zu deinem Problem: Hast du vielleicht Brown-Out an und der läuft einfach nicht, wenn du drunter gehst? :D Könnten wir wohl mal per mail/icq/msn/skype schnacken, wenn du bereits wärst mal 1 oder 2 Messungen durchzuführen wäre ich sehr erfreut.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.