Forum: Mikrocontroller und Digitale Elektronik Zusammenbruch des Oszillator nachdem er schon ca. 10ms stabil läuft


von Tytus W. (tytus)



Lesenswert?

Hallo Leute,

der Oszillator der an meinem dsPIC33EP256MU806 hängt bricht zusammen 
nachdem er schon stabil gelaufen ist.

Die Oszillogramme zeigen die Spannung am PIN OSC2 gegenüber Masse. Der 
Oszillator schwingt periodisch an und klingt wieder ab wie auf den 
Oszillogrammen zu sehen. Was kann den Zusammenbruch des Oscillators 
auslösen nachdem er schon ca. 10ms stabil läuft? Nach dem Anlegen der 
Versorgungsspannung startet der Controller manchmal auch korrekt und 
führt dann auch sein Programm korrekt aus. Wenn der Oszillator jedoch 
einmal nach dem Start zusammengebrochen ist, dann versucht er immer 
wieder zu starten und bricht immer wieder zusammen.

Wenn da jemand eine Idee oder eine Bemerkung hätte wäre sehr hilfreich.

Danke im voraus,

Tytus

von Pascal H. (pase-h)


Lesenswert?

Gibt es zu der Platine auch ein Schaltplan / Layout?

Mfg

von Peter (Gast)


Lesenswert?

Oszillator mit Quarz?
Schema?
Layout?

Sieht aus, wie wen irgend was geschaltet wird (Sprung im Pegel) und dann 
klingt die Schwingung ab

von Falk B. (falk)


Lesenswert?

@  Tytus W. (tytus)

>      Screen_Shot_2012-05-31_at_17.53.19.png
>      1,1 MB, 25 Downloads
>      Screen_Shot_2012-05-31_at_17.53.37.png
>      1 MB, 27 Downloads

Kleiner Tip: Bildformate.

von Markus (Gast)


Lesenswert?

Kleiner Tip: Mehr Bandbreite hilft...

von MM (meine Meinung) (Gast)


Lesenswert?

Markus schrieb:
> Kleiner Tip: Mehr Bandbreite hilft...

Besserer Tip für einfältigen Naivling: Haben wollen und bekommen sind 
zweierlei Sachen.

von (prx) A. K. (prx)


Lesenswert?

Kann es sein, dass der Oszillator stirbt, nachdem der Controller auf 
einen Reset läuft? Der startet dann neu, startet den Oszillator, 
daraufhin läuft das Programm los, löst einen Reset aus, etc.

Ist die Versorgungsspannung stabil, sowohl die offizielle als auch die 
intern erzeugte (Vcap)?

Ein Schaltplan würde helfen.

von tt2t (Gast)


Lesenswert?

Watchdog ???

von Tytus W. (tytus)


Angehängte Dateien:

Lesenswert?

A. K. schrieb:
> Kann es sein, dass der Oszillator stirbt, nachdem der Controller auf
> einen Reset läuft? Der startet dann neu, startet den Oszillator,
> daraufhin läuft das Programm los, löst einen Reset aus, etc.
>
> Ist die Versorgungsspannung stabil, sowohl die offizielle als auch die
> intern erzeugte (Vcap)?
>
> Ein Schaltplan würde helfen.

Ich habe gestern einen Oszillator an den dsPIC gehängt anstelle des 
Quarzes und da habe ich das gleiche Problem beobachtet. Manchmal startet 
er und manchmal nicht aber der Oszillator schwingt in jedem Fall. Habe 
aber dafür Störungen auf dem Vcap und der Versorgung beobachtet.

Das mit dem Reset weiß ich nicht wie das passieren könnte da die 
Software ja korrekt funktioniert wenn er denn startet. Und der Watchdog 
wird am Anfang des Programms deaktiviert.

Die Software habe ich vorher auf einem Dev. Kit Entwickelt und die läuft 
Fehlerlos.

Ich habe auf dem Microchip-Forum gelesen das die dspics mit Quarze ab 
8MHz Probleme haben und einen spezielle Start-up  Routine helfen kann.


Grüße,

Tytus

PS: Schaltpläne im Anhang.

von (prx) A. K. (prx)


Lesenswert?

> Habe aber dafür Störungen auf dem Vcap und der Versorgung beobachtet.

Diese Störungen könnten die eigentliche Ursache sein.

Vin?
Layout?
Typen der Kondensatoren?

von tt2t (Gast)


Lesenswert?

> Ich habe auf dem Microchip-Forum gelesen das die dspics mit Quarze ab
> 8MHz Probleme haben und einen spezielle Start-up  Routine helfen kann.

8 MHz ist für diese Typen die max. Quarz- bzw. Clockin-Frequenz. Intern 
mit PLL natürlich mehr.

von tt2t (Gast)


Lesenswert?

P.S. bei microchip.com gibt es eine Datei mit dem 
Oscillator-Design-Guide, da gibt es recht enge Vorschriften für das 
Platinen-Layout.

von Dosmo (Gast)


Lesenswert?

Kann es vielleicht sein, daß Du im Code (ungewollt) einen der OSC-Pins 
als GPIO umkonfigurierst (falls das überhaupt möglich ist)?

von Tytus W. (tytus)


Angehängte Dateien:

Lesenswert?

tt2t schrieb:
> P.S. bei microchip.com gibt es eine Datei mit dem
> Oscillator-Design-Guide, da gibt es recht enge Vorschriften für das
> Platinen-Layout.

Das habe ich auch in Betracht gezogen und habe den Quarz näher dran 
gefumelt das hat aber auch nicht gebracht. Also bei einer Hardware schon 
und um sicher zu gehen habe ich es auf eine zweite gemacht und da hatte 
ich das gleiche Problem wie vorher.

Ich habe noch andere Tests gemacht

* ich habe den MCLR auf GND gezogen nachdem er nicht starten wollte -> 
Resultat : die zeit die der MCLR auf GND schwang der Quarz korrekt 
einmal losgelassen brach alles wieder zusammen.

* ich habe einen Kondensator (C17 auf dem Schaltplan) von 1µF getan -> 
Resultat : Das verhalten verbesserte sich aber brach trotzdem manchmal 
ab bei Batterie einstecken. Muss mindestens 3sec warten zwischen aus und 
ein stecken.

* Ich habe die Software verändert in dem ich die Start-up Sequenz 
geändert habe (code source http://www.microchip.com/forums/m357107.aspx 
: Eintrag #6) da schaltet er von interne RC auf externen Quarz in der 
Software um und nicht wie vorher das der µC das Automatisch macht -> 
Resultat : hat nicht geändert am verhalten

* Ich habe meine Software geändert so das der µC gar nicht mehr machte. 
Das heißt er stellte nur den µC ein (PLL und Watchdog aus) und lief dann 
in einer Endloss-schleife. -> Resultat : Der µC startete immer korrekt.

Ich habe auch vergessen auf dem Schalt plan ist ein Fehler, es ein 100µF 
großer Kondensator am Eingang vom Spannungs-Regler und nicht 10µF wie 
auf dem Schaltplan.

Im Anhang das Layout und die Komponenten Liste.

Viele Dank für eure ganzen Einträge das hilft mir viel beim suchen.

Tytus

von TX (Gast)


Lesenswert?

Das ist ein Probelm deiner eingestellten Configuration-Bits!

Ich vermute, deine aktuelle Configuration ist so eingestellt, dass du 
erst mit dem internen Oszillator beim start-up loslegst und nachdem der 
Controller hochgefahren ist auf eine andere OSC-Quelle umschaltest (das 
kann man bei den dsPICs so programmieren).

Stelle die Configuration-Bits so ein, dass du nur den internen FRC 
nutzt, dann sollte es tun.

Viele Grüße

TX

von Tytus W. (tytus)


Lesenswert?

Habe einen Fehler in meinem Post gefunden PLL auf 40MHz eingestellt und 
nicht aus.

* Ich habe meine Software geändert so das der µC gar nicht mehr machte.
Das heißt er stellte nur den µC ein (PLL auf 40MHz eingestellt und 
Watchdog aus) und lief dann in einer Endloss-schleife. -> Resultat : Der 
µC startete immer korrekt.

Noch eine Frage kann es sein das ich ein Problem mit dem Power-on Reset 
habe durch den 100µF am Eingang?

Tytus

von Michael R. (mexman) Benutzerseite


Lesenswert?

> Noch eine Frage kann es sein das ich ein Problem mit dem Power-on Reset
> habe durch den 100µF am Eingang?

Die meisten Probleme haben einfache Ursachen...... z.B. einen 
Loetkurzschluss am Ausgangsport.
Der hat erst dann einen Effekt, wenn Du im Programm die Ports als 
Ausgang definierst..... oder an irgendeiner Stelle aus Versehen ein 
Konfigurationsbit des Oszillatot umwerfen....

Lass das Teil doch mal  im Emulator laufen, SIngle Step oder mit 
Breakpoints....und schau, an welcher Stelle der Software das passiert.

Gruss

Michael

von Tytus W. (tytus)


Lesenswert?

Michael Roek schrieb:

> Lass das Teil doch mal  im Emulator laufen, SIngle Step oder mit
> Breakpoints....und schau, an welcher Stelle der Software das passiert.
>
> Gruss
>
> Michael

Die Frage hatte ich mir auch mal gestellt und hatte einen progressiven 
test gemacht. In dem ich immer mehr von meinem Programm dazu tat.

1) Der µC lief sofort in eine Endlos-schleife
   -> Rsultat : Start-up war immer ok
2) PLL Einstellung und dann in eine Endlos-schleife
   -> Rsultat : Start-up war immer ok
3) PLL und alle periph Einstellungen und dann in eine Endlos-schleife
   -> Rsultat : Start-up war immer ok
4  PLL und alle periph Einstellungen und dann habe ich einen Ausgang auf 
Eins geschaltet (mit LAT instruktion)
   -> Rsultat : Start-up nicht ok, brach dauernd ab und versuchte neu zu 
starten also das gleiche Resultat wie schon Oben beschrieben

Das was ich nicht verstehe ist das wenn er nun den korrekt startet dann 
funktioniert das Teil einwandfrei.

von Michael R. (mexman) Benutzerseite


Lesenswert?

> Die Frage hatte ich mir auch mal gestellt und hatte einen progressiven
> test gemacht. In dem ich immer mehr von meinem Programm dazu tat.

Dann tu das doch richtig:
Single step bis Ausfall......


Gruss

Michael

von spontan (Gast)


Lesenswert?

>4  PLL und alle periph Einstellungen und dann habe ich einen Ausgang auf
>Eins geschaltet (mit LAT instruktion)
>   -> Rsultat : Start-up nicht ok, brach dauernd ab und versuchte neu zu
>starten also das gleiche Resultat wie schon Oben beschrieben
>
>Das was ich nicht verstehe ist das wenn er nun den korrekt startet dann
>funktioniert das Teil einwandfrei.


Nicht wundern, erst den Punkt 4 untersuchen und in Ordnung bringen.
Was nicht geht, muß doch erst zum laufen gebracht werden, bevor Du 
irgend was anderes unternimmst. Auch Denken gehört dazu.

von tt4u (Gast)


Lesenswert?

Die Leiterbahnführung von Y1 zum Prozessor entspricht sicher NICHT den 
Empfehlungen von Microchip.

von (prx) A. K. (prx)


Lesenswert?

C2: Der LM1117 von NS verlangt einen Mindest-ESR.
Vcc-Kondensatoren C13,C15: Leiterbahnführung.
C16: Leiterbahnführung, max 6mm.

von Marcus O. (marcus6100)


Angehängte Dateien:

Lesenswert?

Das Layout der Signale zum Quarz ist aber ein Scherz, oder?

von tt4u (Gast)


Lesenswert?

> Das Layout der Signale zum Quarz ist aber ein Scherz, oder?

sag' ich doch:

> Die Leiterbahnführung von Y1 zum Prozessor entspricht sicher NICHT den
> Empfehlungen von Microchip.

von Tytus W. (tytus)


Lesenswert?

Marcus Overhagen schrieb:
> Das Layout der Signale zum Quarz ist aber ein Scherz, oder?

Und diese Aussage hilft mir jetzt genau wie weiter ?

Ich habe nichts gegen Kritik besonders wenn sie, wie in diesem Fall 
gerechtfertigt ist aber sie muss konstruktiv sein. Alles andere sollte 
man für sich behalten.

A. K. schrieb:
> C2: Der LM1117 von NS verlangt einen Mindest-ESR.
> Vcc-Kondensatoren C13,C15: Leiterbahnführung.
> C16: Leiterbahnführung, max 6mm.

Danke für deine Objektive Antwort.

Meinst du das die Korrekturen folgend deiner Suggestionen mein Problem 
komplett lösen könnte?

Tytus

von (prx) A. K. (prx)


Lesenswert?

Tytus W. schrieb:
> Meinst du das die Korrekturen folgend deiner Suggestionen mein Problem
> komplett lösen könnte?

Bin ich allwissend? Das waren nur die ersten Eindrücke, mehr als dies 
hatte ich nicht untersucht. Ich fragte ja schon, ob die Spannungen 
stabil sind und du schriebst von Problemen damit, ohne die näher 
auszuführen. Das legte nahe, dass es Probleme im Layout und mit 
Komponenten geben könnte.

Als ich C16 verfolgte bekam ich beispielsweise den Eindruck, dass der 
Massebereich rechts und oben, der für die Steckverbinder zuständig ist, 
nur durch eine einzige winzige Bahn mit dem Massebereich bei dem 
Controller verbunden ist und die genau durch den GND-Anschluss von C16 
läuft. Wenn man dann noch im Datasheet extra eine Warnung über die 
Platzierung von C16 liest, dann ist das jedenfalls nicht wirklich 
optimal.

Der Rest vom Layout wirkt kurz betrachtet ähnlich - grosse 
eindrucksvolle Flächen, die aber jeweils inselhaft isoliert voneinander 
wirken. Du solltest berücksichtigen, dass bei bei der Leiterbahnführung 
von beispielsweise Kondensatoren nicht nur die Vcc/Vcap/...-Anschlüsse 
wichtig sind, sondern auch die GND-Anschlüsse.

von Marcus O. (marcus6100)


Lesenswert?

Tytus W. schrieb:

> Und diese Aussage hilft mir jetzt genau wie weiter ?

Vielleicht überdenkst du mal die Führung der restlichen Leiterbahnen,
insbesondere die Masseführung auch zum Quarz und zu den 
Abblockkondensatoren.

Du könntest auch mal parallel zu deiner Messung des Oszillators die 
Spannung und auch die Masse an den Abblockkondensatoren messen. 
Irgendwas ist da doch gewaltig faul wenn das Umschalten eines einzigen 
Ausgangs den ganzen Controller abstürzen lässt.

von (prx) A. K. (prx)


Lesenswert?

Tytus W. schrieb:
> Ich habe nichts gegen Kritik besonders wenn sie, wie in diesem Fall
> gerechtfertigt ist aber sie muss konstruktiv sein.

Das war sie, wenn auch polemisch formuliert. Ich bin mir einigermassen 
sicher, dass Microchip Richtlinien über Leiterbahnführung sowohl beim 
Oszillator als auch bei den Abblockkondensatoren bietet. Ob nun im 
Datasheet oder als Application Note.

Ansonsten findet man beispielsweise bei Lothar Miller Tipps zu 
Layout-Fragen: http://www.lothar-miller.de/s9y/categories/14-Entkopplung 
http://www.lothar-miller.de/s9y/categories/33-Quarz

von tt2t (Gast)


Lesenswert?

> Und diese Aussage hilft mir jetzt genau wie weiter ?

Mach die Leitungen vom Quarz und den Lastkondensatoren zum PIC und zu 
GND so kurz wie möglich, Faustregel MAX 5mm, eher weniger. Drumherum 
einen Ring, der mit GND verbunden ist (nicht umsonst ist in 
unmittelbarer Nähe der OSC-Pins auch ein GND-Pin). Auf der anderen Seite 
des Boards im Bereich, der von diesem Ring eingeschlossen ist, am besten 
gar nichts, auch keine GND-Plane.

Und versuche mal 22 oder 27 pF statt 18 pF für die Last-C, das 
stabilisiert den Oszillator, ggf. hilft auch ein serieller R zwischen 
OSC2 und dem C

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.