Forum: Mikrocontroller und Digitale Elektronik AVR AT32UC3L0256 Digital Frequency Locked Loop (DFLL) konfigurieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Chris (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

für private LED-Projekte würde ich gerne den AT32UC3L0256 uC von Atmel 
einsetzen. Interessant ist dieser dafür, dass er insgesamt 35 
unabhängige PWM -Kanäle besitzt. Damit komplexere Berechnungen möglichst 
schnell durchgeführt werden können, soll der uC mit der max. Frequenz 
von 50 MHz getaktet werden 
(http://www.atmel.com/devices/at32uc3l0256.aspx?tab=parameters).

Der AT32UC3L0256 enthält intern mehrere Oszillatoren sowie 
Phasenregelschleifen(PLL) und Frquenzregelschleifen(DFLL), die es 
erlauben den uC mit unterschiedlichen Systemtakten zu versorgen. Die 
einzige Möglichkeit, die ich gesehen habe, die CPU des uCs mit 50 MHz zu 
takten, ist die interne DFLL zu verwenden. Diese kann von abhängig von 
internen Oszillatoren Frequenzen zwischen 20 MHz bis 150 MHz erzeugen - 
laut dem Datasheet 
(http://www.atmel.com/Images/Atmel-32145-32-bit-Flash-MCU-UCL0_datasheet.pdf, 
Seite 190, Abschnitt 13.5.4).

Da liegt jetzt auch mein Problem, ich bekomme die DFLL nicht richtig in 
gang bzw. nicht eingestellt.
- Hat jemand mit der DFLL bereits etwas Erfahrung sammeln können?
- Kennt jemand Beispielcode, der funktionsfähig ist?


Im Atmel Software Framework gibt es eine knappt Dokumentation zu einigen 
Funktionen die zur Konfiguration der DFLL eingesetzt werden können 
(http://asf.atmel.com/docs/latest/avr32.applications.uc3l-ek-touch-demo.example/html/group__dfll__group.html). 
Ein Code-Beispiel sieht z.B. so aus:
struct dfll_config dfllcfg;
dfll_enable_source(CONFIG_DFLL0_SOURCE);
dfll_config_defaults(&dfllcfg, 0);
dfll_config_enable_dithering(&dfllcfg);
dfll_enable(&dfllcfg, 0);
dfll_wait_for_accurate_lock(0); 

Leider gibt es die Funktion "dfll_enable(...)" nicht, womit dieses 
Beispiel im AVR-Studio nicht kompiliert. Ich habe an dieser Stelle das 
Enable-Bit für die DFLL dann manuel gesetzt, was leider nicht geholfen 
hat.

Wenn da also jemand eine Idee oder Tipp hat, dann wäre ich dafür sehr 
dankbar. :)


Beste Grüße,

-Chris

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.