Forum: Mikrocontroller und Digitale Elektronik PIC Taktquellen-Fallback?


von User N. (panzerkeks) Benutzerseite


Lesenswert?

Hallo zusammen,

kann es sein, dass PICs (habe hier den 18F4550) wenn als Taktquelle HS 
(sprich ein Quarz) eingestellt ist, der aber nicht richtig verbunden ist 
(schlechte lötstelle, quarz einfach rausziehen, ...), auf den internen 
Oszillator zurückfallen?

Habe hier ein Problem mit den #pragma config ... Einstellungen: Dinge 
wie BOR/BORV (Brown Out) werden anstandslos eingestellt, aber die 
Taktquelleneinstellungen (FOSC) ignoriert er leider.

Obwohl der Quarz benutzt werden sollte, kann ich über das 
OSCCON-Register (IRCF) den Takt verändern.

soll das so sein oder mach ich da irgendwas falsch? :S

18F4550, ICD3, Mplab8.56, C18.

Gruß

von Loonix (Gast)


Lesenswert?

Zens Uhr schrieb:
> kann es sein, dass PICs (habe hier den 18F4550) wenn als Taktquelle HS
> (sprich ein Quarz) eingestellt ist, der aber nicht richtig verbunden ist
> (schlechte lötstelle, quarz einfach rausziehen, ...), auf den internen
> Oszillator zurückfallen?

Ja, es gibt da ein Fail-Safe-Bit in einem der Config-Register. Leider 
habe ich es momentan nicht parat, aber das Datenblatt dürfte da 
genaueres liefern.

Zens Uhr schrieb:
> Habe hier ein Problem mit den #pragma config

Du kannst die Config-Register auch über die IDE setzen oder mit 
ASM-Direktiven in einem ausgelagerten File.

von Andreas R. (blackpuma)


Lesenswert?

Was hast du denn bei den PLL Einstellungen drinnen? Bei mir sieht das so 
aus. Welchen Quarz verwendest du?
1
/** Configuration **********************************
2
 *
3
 * PIC18F4550 mit 16 MHz externem Quarz.
4
 *
5
 */
6
        #pragma config PLLDIV   = 3
7
        #pragma config CPUDIV   = OSC1_PLL2
8
        #pragma config USBDIV   = 2
9
        #pragma config FOSC     = HS

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Loonix schrieb:
> Ja, es gibt da ein Fail-Safe-Bit in einem der Config-Register

Den Fail-Safe Clock Monitor (FSCMEN) hab ich abgestellt.

Loonix schrieb:
> Du kannst die Config-Register auch über die IDE setzen

Über das Config-Bits-Fenster von Mplab hab ich es auch schon versucht, 
keine veränderung.

Andreas Riegebauer schrieb:
> Was hast du denn bei den PLL Einstellungen drinnen? Bei mir sieht das so
> aus. Welchen Quarz verwendest du?

Ein 8MHz Smd-Quarz. Aufschrift: "EQZBJ 8.000M 12pF EE"

#pragma config PLLDIV = 2 //Divide by 2 (8 MHz oscillator input)
#pragma config CPUDIV = OSC1_PLL2 //[Primary Oscillator Src: /1][96 MHz 
PLL Src: /2]
#pragma config FOSC = HSPLL_HS //HS oscillator, PLL enabled (HSPLL)
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor disabled
#pragma code

von Andreas R. (blackpuma)


Lesenswert?

Wie merkst du das die Einstellung nichts ändert?

Edit:
Sorry schon gesehen.
Du kannst mit den Einstellungen auch mit einem externen Quarz den Takt 
verändern.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Ich toggle eine LED und warte dann 1M Zyklen. Bei 1MHz leuchtet sie 4s 
lang, bei anderen Frequenzen entsprechend kürzer/länger. Wenn der PIC 
mit externem Takt laufen würde, würde er keinen 1MHz-Takt haben.
Außerdem kann ich über OSCCONbits.IRCF = 111; den Takt verändern, dabei 
dürfte das doch nur den internen Oszillator betreffen, oder?
Hab auch mal ein OSCCONbits.SCS = 0; probiert, um auf externen Takt zu 
gehen, aber keine Reaktion.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Aha!
ich habe gerade
#pragma config IESO = OFF //Oscillator Switchover mode disabled
gefunden.

jetzt läuft er gar nicht mehr :P
das heißt wohl, der Quarz ist einfach nicht am µC dran, oder?

von Uwe P. (strom12)


Lesenswert?

Zens Uhr schrieb:
> Hallo zusammen,
>
> kann es sein, dass PICs (habe hier den 18F4550) wenn als Taktquelle HS
> (sprich ein Quarz) eingestellt ist, der aber nicht richtig verbunden ist
> (schlechte lötstelle, quarz einfach rausziehen, ...), auf den internen
> Oszillator zurückfallen?

Loonix hat es schon erwähnt mit dem Fail-Safe-Bit.
Hier der Auszug aus den Datenblatt.
------
Fail-Safe Clock Monitor: This option constantly
monitors the main clock source against a
reference signal provided by the internal
oscillator. If a clock failure occurs, the controller is
switched to the internal oscillator block, allowing
for continued low-speed operation or a safe
application shutdown
-----

von Andreas R. (blackpuma)


Lesenswert?

Hast du ein Messgerät? Nimm mal den Durchgangsprüfer und schau ob du von 
den Quarzpins zum uC PIN einen durchgang hast.

von Andreas R. (blackpuma)


Lesenswert?

Hast du Schaltplan und Layout bei der Hand?

Hab nachgesehen. Das OSCCON betrifft nur den internen Oszillator.

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Andreas Riegebauer schrieb:
> Hast du ein Messgerät? Nimm mal den Durchgangsprüfer und schau ob du von
> den Quarzpins zum uC PIN einen durchgang hast.

Quarz ist definitiv mit dem µC verbunden. Sogar an den richtigen Pins ;)
die Kondensatoren dazu haben leider keinen Aufdruck, vielleicht sind die 
falsch dimensioniert?... Mal sehn ob wir ein passendes Messgerät 
dahaben.

Andreas Riegebauer schrieb:
> Hast du Schaltplan und Layout bei der Hand?

Nein, leider nicht, ich bin schon froh dass ich eine Excel-Tabelle mit 
herausgeführten Anschlüssen bekommen habe.

von Andreas R. (blackpuma)


Lesenswert?

Zens Uhr schrieb:
> Andreas Riegebauer schrieb:
>> Hast du Schaltplan und Layout bei der Hand?
>
> Nein, leider nicht, ich bin schon froh dass ich eine Excel-Tabelle mit
> herausgeführten Anschlüssen bekommen habe.

Excel Tabelle für die Anschlüsse?! Was ist das für eine Schaltung? Ging 
das Teil schon mal? Sind aber schon Keramikkondensatoren dran an dem 
Quarz oder?

von User N. (panzerkeks) Benutzerseite


Lesenswert?

Andreas Riegebauer schrieb:
> Was ist das für eine Schaltung?

Eine Art Breakout Board, wurde letztes Jahr von einem Zivi entworfen und 
20mal gebaut. Die soll ich jetzt verwenden... Ich muss mal versuchen ihn 
zu erreichen, vlt rückt er dann mal was raus von Schaltplan und Layout 
;)

Habs jetzt geschafft, offenbar war der Quarz im Eimer. Jetzt hab ich 
eine Platzmäßig total überdimensionierte Clock draufgebastelt (die ist 
halb so groß wie das board o.O) und die funktioniert super.

Danke für eure Hilfe!

von Rainer (Gast)


Lesenswert?

Ich seh schon, wenn ich das Layout herrausgebe landet es im Internet ...

Gut wenn man jemand hat auf den man schimpfen kann, wenn man etwas nicht 
auf die Reihe bringt!

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.