Forum: Mikrocontroller und Digitale Elektronik Quarzoszillator tötet µC (zwei)


von GS (chromosoma)


Lesenswert?

Abend.
Ich benutzte EFM32 Zero Gecko
Alles funktionierte wunderbar und ich wollte mal den LXO an  den µC 
anschließen. Und zwar diesen hier:
http://www.mouser.com/ds/2/3/abs25-35653.pdf

Die Kondensatorenwerte habe ich laut der Seite berechnet und bin auf 
ca.20 pF gekommen
https://www.mikrocontroller.net/articles/Quarze_und_AVR

Nach dem ich den Low Freq Oszillator von internen LRCO auf LXO 
umgestellt habe, hat mein µC aufgehört zu funktionieren. Er wird nicht 
mal vom Programmer erkannt.
LXO ausgelötet. Trotzdem nichts.
Neuer µC rein, mit LRC geht alles wieder.
XO wieder  rein, alles funktioniert.  LowFeq auf LXO umgestellt, 
gleiches Ergebnis=> µC reagiert nicht mehr und wird nicht erkannt.

Tja, jetzt habe ich XO entfernt und arbeite weiter mit dem dritten µC.
Woran kann es liegen? Selbst wenn ich bei dem LXO was falsch gemacht 
habe, sollte ich den µC trotzdem umprogrammieren können.

PS
die Kondensatoren sind noname aus Ebay, zeigen aber den wert von 21pF.

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Ist ein Quarz, kein Quarzoszillator.

Also falsche Fuses.
Damit wartet der AVR auf einen Externen Takt, den er nie bekommt, weil 
der Quarz nicht anschwingt.

Also einen externen Takt anlegen und dei Fuses richtig (external Cystal) 
setzen

von GS (chromosoma)


Lesenswert?

das ist kein AVR.
Soweit ich verstehe, detektiert ARM M0 falls mit dem LXO irgendwas nicht 
stimmt und schaltet automatisch auf LFRC  oder HFRC

von Axel S. (a-za-z0-9)


Lesenswert?

Böser K. schrieb:
> Ich benutzte EFM32 Zero Gecko
> Alles funktionierte wunderbar und ich wollte mal den LXO an  den µC
> anschließen.

Dieser Satz ergibt keinen Sinn. LXO steht für _l_ow-frequency crystal 
(_x_tal) _o_scillator. Und der befindet sich bei einem Cortex-M0 im 
µC. Extern anzuschließen sind lediglich der Quarz und die beiden 
Bürde-Kondensatoren.

> Und zwar diesen hier:
> http://www.mouser.com/ds/2/3/abs25-35653.pdf

Ein Quarz. Und wie hast du den angeschlossen?

> Die Kondensatorenwerte habe ich laut der Seite berechnet und bin auf
> ca.20 pF gekommen
> https://www.mikrocontroller.net/articles/Quarze_und_AVR

Warum schaust du auf eine Seite für den AVR, wenn du doch einen Quarz an 
einen Cortex-M0 anschließen willst? Hat der "EFM32 Zero Gecko" kein 
Datenblatt oder warst du nur zu faul, das zu lesen?

> Nach dem ich den Low Freq Oszillator von internen LRCO auf LXO
> umgestellt habe, hat mein µC aufgehört zu funktionieren. Er wird nicht
> mal vom Programmer erkannt.

Bahnhof. Alle mir bekannten Cortex-M0 laufen mit dem HSI Takt los und 
müssen dann von Software auf andere Taktquellen umgeschaltet werden. Man 
kann denen gar nicht den Takt wegkonfigurieren. Spätestens nach einem 
Reset laufen sie wieder mit dem Standardtakt. Überdies kann man auch 
erst dann auf eine andere Taktquelle umschalten, wenn die als 
funktionierend erkannt wurde.

> Woran kann es liegen? Selbst wenn ich bei dem LXO was falsch gemacht
> habe, sollte ich den µC trotzdem umprogrammieren können.

Erzähl doch einfach mal, was genau du gemacht hast. Ich kenne deinen 
µC nicht. Und ich lese jetzt sicher nicht das Datenblatt für dich.

von GS (chromosoma)


Angehängte Dateien:

Lesenswert?

---Extern anzuschließen sind lediglich der Quarz und die beiden
Bürde-Kondensatoren.

Richtig. Ich habe den Quarz und die Kondensatoren gelötet.

ANbei das Bild, wie das ganze angeschlossen ist.
Pin 11 und 12 sind jeweils für LFXTAL gedacht

----Warum schaust du auf eine Seite für den AVR

Hier steht die gleiche Formel wie für AVR:
https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0016.pdf

Ja, auch wenn LXO nich geht, soll der µC nach dem Reset wieder von 
Programmer erkannt werden.

-----Erzähl doch einfach mal, was genau du gemacht hast
Ich habe  den Quarz und Kondensatoren  auf die Platine gelötet und den 
µC gesagt, er soll anstatt von LRCO den LXO benutzen, das wars.

von klaro (Gast)


Lesenswert?


von GS (chromosoma)


Lesenswert?

ja, alles gelesen, dort steht nichts besonderes.

von Axel S. (a-za-z0-9)


Lesenswert?

Böser K. schrieb:
>> Extern anzuschließen sind lediglich der Quarz und die beiden
>> Bürde-Kondensatoren.
>
> Richtig. Ich habe den Quarz und die Kondensatoren gelötet.

Darf man fragen warum du

1. die Pads des Quarzes in deinem Layout anders numerierst als im 
Datenblatt?

2. die beiden intern verbundenen (aber funktionslosen) Pads des Quarzes 
überhaupt anschließt? Und dann auch noch an einen "heißen" Anschluß und 
nicht etwa an GND?

3. dich nicht an die empfohlenen Regeln zur GND-Führung hältst?

4. den Quarz nicht einfach um 180° drehst um die Leiterführung zu 
vereinfachen und das GND-Problem zu entschärfen?

> Ja, auch wenn LXO nich geht, soll der µC nach dem Reset wieder von
> Programmer erkannt werden.
>
>> Erzähl doch einfach mal, was genau du gemacht hast

> Ich habe  den Quarz und Kondensatoren  auf die Platine gelötet und den
> µC gesagt, er soll anstatt von LRCO den LXO benutzen, das wars.

Du "hast dem µC gesagt"? Wie denn?

Nochmal:

Axel S. schrieb:
> Alle mir bekannten Cortex-M0 laufen mit dem HSI Takt los und
> müssen dann von Software auf andere Taktquellen umgeschaltet werden.

Wenn du also in deinem Programm die Taktquelle umschaltest, dann muß 
das ja bis zum Umschalten an sich erstmal laufen. Und du sagst jetzt, 
der µC stellt sich ab dem Augenblick tot, an dem du den Takt 
umschaltest? Wie hast du das festgestellt? Was ist nochmal genau der 
Unterschied zwischen einer funktionierenden und nichtfunktionierenden 
Konfiguration?

Falls das noch nicht deutlich genug war: ich zweifle deine Diagnose an, 
daß das Umschalten des Taktes das Problem darstellt.

Und wie erklärsst du, daß dein Cortex-M0 sich im Gegensatz zu allen 
anderen Vertretern seiner Art nach dem Reset nicht wieder die 
Standard-Taktquelle schnappt?

von Georg A. (georga)


Lesenswert?

> Und wie erklärsst du, daß dein Cortex-M0 sich im Gegensatz zu allen
> anderen Vertretern seiner Art nach dem Reset nicht wieder die
> Standard-Taktquelle schnappt?

Sowas habe ich mit dem LPC1115 (auch M0) auch schon geschafft. Wollte 
mit der PLL spielen, zuviel gespielt, danach nicht mehr erreichbar. Es 
gibt da aber einen Pin (PIO0_1), wenn man den vor dem Powerup/Reset auf 
GND zieht, springt der Bootloader nicht ins Flash. Damit war die CPU 
wieder über den Debugger erreichbar. Gibts sowas ähnliches beim EFM32 
auch?

von Axel S. (a-za-z0-9)


Lesenswert?

Georg A. schrieb:
>> Und wie erklärsst du, daß dein Cortex-M0 sich im Gegensatz zu allen
>> anderen Vertretern seiner Art nach dem Reset nicht wieder die
>> Standard-Taktquelle schnappt?
>
> Sowas habe ich mit dem LPC1115 (auch M0) auch schon geschafft. Wollte
> mit der PLL spielen, zuviel gespielt, danach nicht mehr erreichbar. Es
> gibt da aber einen Pin (PIO0_1), wenn man den vor dem Powerup/Reset auf
> GND zieht, springt der Bootloader nicht ins Flash. Damit war die CPU
> wieder über den Debugger erreichbar.

Das ist aber eine ganz andere Problembeschreibung als die der TE hier 
abgegeben hat. Wenn dein Programm irgendeine kaputte Taktkonfiguration 
einstellt, dann wird der µC ntürlich immer dann stehen bleiben, wenn er 
das Programm ausführt. Aber: mit angeschlossenem Debug-Adapter wird 
das Programm im Flash nach einem Reset ja nicht ausgeführt.

Und klar, wenn der µC einen Bootloader enthält und man eine Möglichkeit 
hat ihn zum Ausführen desselben zu bewegen, dann auch nicht.

von WerWeisWasNicht (Gast)


Lesenswert?

Böser K. schrieb:
.....
> ANbei das Bild, wie das ganze angeschlossen ist.
> Pin 11 und 12 sind jeweils für LFXTAL gedacht
..

auf jeden Fall stehn mir die Haare bei dem Anblick vom Layout ;)

von Footprint (Gast)


Lesenswert?

Böser K. schrieb:
> ANbei das Bild, wie das ganze angeschlossen ist.
> Pin 11 und 12 sind jeweils für LFXTAL gedacht

Der Quarz-Footprint weicht aber stark vom Datenblatt ab. Und nach 
Datenblatt sind Pin 2 und 3 verbunden.

von Georg A. (georga)


Lesenswert?

> Aber: mit angeschlossenem Debug-Adapter wird
> das Programm im Flash nach einem Reset ja nicht ausgeführt.

Genau das war bei mir auch nicht mehr zu schaffen. Ohne den PIO0_1 kam 
der Debugger nicht mehr auf die CPU (SWD-IF halt das Ding vom 
LPC1115-Evalboard). Schon die CPU-ID-Erkennung ging da nicht mehr. Und 
die Beschreibung des TEs klingt da jetzt nicht soviel anders...

von Jim M. (turboj)


Lesenswert?

Böser K. schrieb:
> LowFeq auf LXO umgestellt

Wie? Source Code, bitte.


Böser K. schrieb:
> µC reagiert nicht mehr und wird nicht erkannt.

Du hast einen Zero Gecko. Dessen STK kann den "Unlock"en. Daszu braucht 
man eventuell den alten EACommander, im neuen Silabs Studio gibts nur 
einen Würgaround:

http://community.silabs.com/t5/32-bit-MCU/Problem-unlocking-the-MCU/m-p/158209#M9794

Der Post spricht vom GG STK, Du brauchst hier aber IIRC das Zero Gecko 
STK da bei dessen Unlocking etwas anders ist.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.