mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik xmega 16MHz Quarz und PLL


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
//noch läuft der Chip auf 2 MHz RC
//16MHz-Quarz benutzen

  OSC.XOSCCTRL = OSC_FRQRANGE_12TO16_gc | OSC_XOSCSEL_XTAL_16KCLK_gc; 
//Siehe iox128a3.h

  CLK.PSCTRL = 0;                //Prescaler A B C ohne Funktion

  OSC.CTRL = OSC_XOSCEN_bm;             //Quarz einschalten

  while(! (OSC.STATUS & OSC_XOSCRDY_bm) ){ _delay_ms(5);}
    //Warte, bis Quarz stabil wenn nicht stabil delay

  CCP = CCP_IOREG_gc;               //CCP_SPM_gc; //Signatur

  CLK.CTRL = CLK_SCLKSEL_XOSC_gc;             //Quarz als Takt benutzen

    //Jetzt sollte der Chip auf 16 MHz Quarz laufen
  //PLL konfigurieren

  OSC.PLLCTRL = OSC_PLLFAC1_bm | OSC_PLLSRC_XOSC_gc;
         // * 2 ; 11: Ext.Clock (Quarz)

  OSC.CTRL |= OSC_PLLEN_bm;
         //PLL einschalten

  while(! (OSC.STATUS & OSC_PLLRDY_bm ) ){ _delay_ms(5);}      //Warte, 
bis PLL stabil wenn nicht stabil delay

  CCP = CCP_IOREG_gc;               //CCP_SPM_gc; //Signatur

CLK.CTRL = CLK_SCLKSEL_PLL_gc;              // PLL als Takt benutzen

         //Jetzt sollte der Chip auf 32 MHz laufen
}
Leider tut er des aber nicht.
Wo könnte das Problem liegen.
MfG Dirk

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Idee?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du im Manual zufällig etwas über Configuration Change Protection 
gelesen? Das könnte es sein.

Autor: GG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

lade Dir mal den CodeWizardAVR 2.04.6 Evaluation 
http://www.hpinfotech.ro/ runter. Der CodeWizardAVR für Xmega ist ist 
für Anfänger unverzichtbar.

Desweiteren einige Beispiele: AVR1003: Using the XMEGA Clock System 
Application Note
http://www.atmel.com/dyn/genera l/tech_doc.asp?doc_id=11479

Sinn macht auch die Deaktivierung der nicht benötigten Taktquellen.

Zum Beispiel:

// Disable the unused oscillators: 2 MHz, internal 32 kHz, PLL
OSC.CTRL&= ~(OSC_RC2MEN_bm | OSC_RC32KEN_bm | OSC_PLLEN_bm);


Gruß GG

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.