while(!(OSC.STATUS & OSC_RC32MRDY_bm)); //wait for stability
3
CCP = CCP_IOREG_gc; //secured access
4
CLK.CTRL = 0x01; //choose this osc source as clk
Nun, wenn ich flashe wird das Programm erstmal nichts machen. Auch ein
Reset hilft nicht. Ich muss Strom rausnehmen und wieder einschalten, und
dann geht es...
Nun, das ist definitiv nicht normal. Es ist aber für mich das erste Mal,
daß ich einen XMega nutze.
Kann jemand mir sagen, was ich falsches mache?
Danke
Luca Bertoncello
spovi1 schrieb:> wenn das ein angeschlossener Quarz ist, musst du das dem noch sagen. ich> mach das mit meinem 16MHz Quarz so:>
1
>// Crystaloszillator (16MHz) auswählen
2
>OSC.XOSCCTRL=0xCB;
3
>OSC.CTRL=OSC_XOSCEN_bm;
4
>// Warten bis Oszillator stabil ist
5
>while((OSC.STATUS&OSC_XOSCRDY_bm)==0);
6
>// I/O Protection
7
>CCP=CCP_IOREG_gc;
8
>// System Clock selection
9
>CLK.CTRL=CLK_SCLKSEL_XOSC_gc;
10
>
Aha, danke!
Ich werde probieren, allerdings jetzt haben wir viele andere
Hardwareprobleme...
'ne Frage hätte ich noch: habe ich von der Datenblatt richtig
verstanden, daß ich maximal einen 16MHz-Quarz anschließen kann?
Weil die Idioten, die die Platine gemacht haben, einen 32MHz-Quarz
benutzt haben...
Ansonsten, Ersatzfrage: wie kann ich die interne 32MHz-Oszillator
nutzen?
Danke
Luca Bertoncello
Carsten Wille schrieb:> man kann extern nur maximal einen 16MHz Quarz anschließen (siehe> Datenblatt)!
Gut, dann es bestätigt mir, daß die Typen, die die Schaltung gemacht
haben, tatsächlich Idioten sind...
Und sie haben sogar selber diese Sorte µC (mein originaler Plan war
mit einem ATMega1280), weil sie es so gut kennen...
Oh, Mann!
Dann ist die Frage, ob diese externe 32MHz-Quarz Probleme verursachen
kann, auch wenn man nur die interne Oszillator nutzt (was allerdings
nicht empfehlswert ist, wegen der Genauigkeit)...
Grüße und Danke!
Luca Bertoncello
Ein extern angeschlossener Quarz kann immer dranbleiben. Die Taktwahl
wird intern durch einen Multiplexer umgeschaltet. Die verschiedenen
Takte stören sich dabei nicht.
Man kann mit einem externen 32MHz Oszillator direkt 32MHz einspeisen.
Ist aber nur unnötig teuer.
Der interne Oszillator ist für einefache Software-Aufgaben hinreichend
genau. Aber schon für den Betrieb der seriellen Schnittstelle reicht
seine Genauigkeit nicht mehr aus.
Carsten
Carsten Wille schrieb:> Ein extern angeschlossener Quarz kann immer dranbleiben. Die Taktwahl> wird intern durch einen Multiplexer umgeschaltet. Die verschiedenen> Takte stören sich dabei nicht.
OK! Und was passiert wenn ich, aus Versehen (wie gestern passiert ist,
weil ich nicht wusste, daß es 32MHz ist) versuche es zu nutzen?
Einfach läuft der µC nicht (wie hat es gemacht) aber wird nicht
beschädigt, oder passiert noch was schlimmeres?
> Man kann mit einem externen 32MHz Oszillator direkt 32MHz einspeisen.> Ist aber nur unnötig teuer.
Das werden wir aber wahrscheinlich brauchen...
> Der interne Oszillator ist für einefache Software-Aufgaben hinreichend> genau. Aber schon für den Betrieb der seriellen Schnittstelle reicht> seine Genauigkeit nicht mehr aus.
Wir müssen mehrere Geräten über SPI ansteuern, sowie Daten von DCF77
empfangen (nötige Genauigkeit: 40mS).
Grüße
Luca Bertoncello
Luca Bertoncello schrieb:> Das werden wir aber wahrscheinlich brauchen...>>> Der interne Oszillator ist für einefache Software-Aufgaben hinreichend>>> genau. Aber schon für den Betrieb der seriellen Schnittstelle reicht>>> seine Genauigkeit nicht mehr aus.>> Wir müssen mehrere Geräten über SPI ansteuern, sowie Daten von DCF77>> empfangen (nötige Genauigkeit: 40mS).
Na, da wird doch wohl ein 8MHz Quarz plus interne PLL mit Faktor 4 mehr
als genau genug sein!
Carsten Wille schrieb:> Na, da wird doch wohl ein 8MHz Quarz plus interne PLL mit Faktor 4 mehr> als genau genug sein!
Gut, aber die Frage war "ist der interne 32MHz-Oszillator genau
genug?"...
Grüße
Luca Bertoncello
Luca Bertoncello schrieb:> Carsten Wille schrieb:>> Na, da wird doch wohl ein 8MHz Quarz plus interne PLL mit Faktor 4 mehr>> als genau genug sein!>> Gut, aber die Frage war "ist der interne 32MHz-Oszillator genau> genug?"...>> Grüße> Luca Bertoncello
Nein! Der interne 2MHz Osc. ist schon nicht genau genug, der 32er erst
recht nicht.
Carsten Wille schrieb:> Luca Bertoncello schrieb:>> Carsten Wille schrieb:>>> Na, da wird doch wohl ein 8MHz Quarz plus interne PLL mit Faktor 4 mehr>>> als genau genug sein!>>>> Gut, aber die Frage war "ist der interne 32MHz-Oszillator genau>> genug?"...>>>> Grüße>> Luca Bertoncello>> Nein! Der interne 2MHz Osc. ist schon nicht genau genug, der 32er erst> recht nicht.
Das dachte ich mir...
Also, die ganze Platine, die $bigbucks gekostet hat, ist wegzuschmeißen
und neu zu entwickeln.
Und mein Chef wird wahrscheinlich mit den Idioten darüber sprechen. Mit
einem großen Hammer...
Ich danke euch!
Luca Bertoncello
Luca!
Tausche auf Deinem Board einfach den 32MHz Quarz gegen einen 8MHz aus
und verwende die Software, die ich oben gepostet habe. Die macht aus den
externen 8 MHz stabile interne 32 MHz.
Carsten
Carsten Wille schrieb:> Tausche auf Deinem Board einfach den 32MHz Quarz gegen einen 8MHz aus> und verwende die Software, die ich oben gepostet habe. Die macht aus den> externen 8 MHz stabile interne 32 MHz.
Erstmal spreche ich mit meinem Chef... Letzten Endes, muss er
entscheiden, was mit der Platine passiert.
Dann, wenn er doch entscheidet den Quarz einfach zu tauschen, habe ich
sicher keinerlei Problem damit...
Aber, wie schon gesagt, auf der Platine sind derzeit eine Menge andere
HW-Probleme dabei, und man muss vorher entscheiden, ob man noch Zeit
verlieren will, sie zu beheben oder einfach von der Firma, die das Ding
gemacht hat, verlangen, daß sie selber alles neubauen.
Grüße und besten Dank!
Luca Bertoncello
Carsten Wille schrieb:> Tausche auf Deinem Board einfach den 32MHz Quarz gegen einen 8MHz aus> und verwende die Software, die ich oben gepostet habe. Die macht aus den> externen 8 MHz stabile interne 32 MHz.
Eine Sache, die ich gerade gedacht habe: wäre es nicht besser, einen
externen 16MHz-Quarz mit internen PLL mit Faktor 2?
Als Programmierer (kein Elektroniker!) würde ich sagen, daß es sogar
stabiler sein sollte...
Denke ich falsch?
Danke
Luca Bertoncello
Wenn das doch gar keine Hardware von dir ist, kann dir das doch egal
sein. Du hast doch dann keinen Mist verzapft, sondern jemand anders ;-).
Was für einen Quarz du nimmst ist (in dem erlaubten Rahmen) eigentlich
egal.
Simon K. schrieb:> Was für einen Quarz du nimmst ist (in dem erlaubten Rahmen) eigentlich> egal.
Ja, aber meine Frage war: ist es besser ein 8MHz-Quarz mit PLL *4 oder
ein 16MHz-Quarz mit PLL *2? Warum?
Danke
Luca Bertoncello
Die Langzeitstabilität ist die gleiche.
Aber der Jitter bei einem PLL-Faktor von 4 dürfte eine klitzkleines
bischen größer sein als beim Faktor 2. Aber auf jeden Fall
vernachlässigbar.
Luca Bertoncello schrieb:> Simon K. schrieb:>>> Was für einen Quarz du nimmst ist (in dem erlaubten Rahmen) eigentlich>> egal.>> Ja, aber meine Frage war: ist es besser ein 8MHz-Quarz mit PLL *4 oder> ein 16MHz-Quarz mit PLL *2? Warum?
Und meine Antwort war: "Es ist egal".
Carsten Wille schrieb:> Die Langzeitstabilität ist die gleiche.> Aber der Jitter bei einem PLL-Faktor von 4 dürfte eine klitzkleines> bischen größer sein als beim Faktor 2. Aber auf jeden Fall> vernachlässigbar.
OK, verstanden!
Besten Dank!
Luca Bertoncello