www.mikrocontroller.net

Forum: Compiler & IDEs Problem ATmega32U2 bei AVR328


Autor: Red Baron (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
hast du das Problem lösen können? Stehe gerade vor genau dem gleichen ;)

Autor: armen0r (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.