Forum: Mikrocontroller und Digitale Elektronik PIC18F2550 läuft nicht an - externer Oszillator


von Florian D. (Gast)


Lesenswert?

Hat jemand Erfahrung mit dem 18F2550 und kennt eine ähnliche Situation?
Ich treibe den PIC mit einem Oszillator, den ich aus einer alten
Grafikkarte ausgebaut habe. Der Oszillator gibt - laut Aufdruck - 40
MHz aus, mein 20 MHz-Scope zeigt etwas verschmiertes an, also kommt
zumindest etwas heraus.

An OSC2 messe ich nichts, Oszillatorart ist ECPLL mit Output an OSC2.
Ich muss mir morgen mal einen 24 MHz-Quarz besorgen, vielleicht
klappt's damit.

Die Config-Bits sind auf jeden Fall gesetzt. Die Programmiersoftware
musste ich selbst schreiben, da die beigelegte Software zum
Velleman-Bausatz leider diesen Typ nicht unterstützt. Ich habe aber
mind. 50 mal gegengeprüft, ob auch alles aauber geschrieben wurde.

Daher die Frage, ob vielleicht jemand einen Tip hat, was man vielleicht
noch beachten sollte.

Gruß,

Florian

von Thomas (Gast)


Lesenswert?

Schon mal vorher 'nen PIC programmiert?

Den Oszillator kannst du nämlich nicht im ECPLL-Modus betreiben, dafür
bräuchtest du eine extrene Taktquelle. Du musst da schon die XT oder
HS-Modi benutzen.
Willst du die PLL in Anspruch nehmen, brauchst du eine Eingangsfrequenz
von 4MHz, also vorher den Vorverteiler einstellen!

von Florian D. (Gast)


Lesenswert?

Wie ich geschrieben habe, habe ich einen externen 40 MHz-Quarzoszillator
 verwendet. ECPLL mit einem Teiler von 10 sollte also passen. An OSC2
ist wie gesagt nichts zu messen.

von GeriB (Gast)


Lesenswert?

Hallo Florian

Ich denke, Thomas hat schon recht.

Es könnte an den Configuration bits liegen. Ich verwende einen
20MHz-Oszillator. Der interne PLL stellt dann einen 48MHz Takt her. Der
Ozillator wird im HS: HS+PLL, USB-HS-Mode.

Schau doch mal hier: Mit diesen Configuration bits laufen meine
Schaltungen:
http://burger-web.com/Projects/PIC18F4550USB/en_PIC18UsbBoard.htm

Beste Grüsse
Geri

von Florian D. (Gast)


Lesenswert?

Wie gesagt, ich verwende keinen Quarz, sondern einen externen
Oszillator. Im HS-Modus kann ich den nicht extern mit 40 MHz takten,
also verwende ich EC + PLL.

Ich frage mich, ob ich vielleicht zu 'undeutlich' schreibe.

von Christian G. (Gast)


Lesenswert?

Ich glaube, es bringt nichts, das Wort Quarzoszillator noch deutlicher
zu schreiben.
Poste lieber mal die Configbits. Eigentlich solltest du nämlich schon
im ECPLL Modus an OSC2 Fosc/4 sehen und also auch mit deinem Scope
messen können. Also wenn die Bits stimmen, deine Software richtig
programmiert und der Oszillator auch richtig arbeitet.


Christian.

von Florian D. (Gast)


Lesenswert?

Hier die Konfiguration:

FOSC=ECPLL_EC
PLLDIV=10
CPUDIV=OSC1_PLL2
USBDIV=2
BOR=OFF
WDT=OFF
MCLRE=OFF

Wie gesagt, kann ich auf meinem Oszilloskop nicht erkennen, ob das 40
MHz-Signal sauber ist. Der Oskar bringt nur 20 MHz. Vielleicht war es
auch nicht die beste Wahl, den Output vom Oszillator mit 0,75er Litze
auf den Pin zu legen.

Ich werde mir wohl wirklich mal ein 20 MHz-Quarz besorgen müssen und
direkt anschließen (kurze Wege, Kondensatoren etc.).

von GeriB (Gast)


Lesenswert?

plus evtl. ein Parallelwiderstand mit 1Meg..

von Thomas (Gast)


Lesenswert?

Guck mal in's Datenblatt.
Da steht nämlich , dass der Oszi im XT, bzw HS betrieben werden muss.

von Florian D. (Gast)


Lesenswert?

Da man mich ja wohl immer noch falsch versteht... (hat das überhaupt
noch Sinn?) Hier ein Auszug aus dem Datenblatt:

1. XT Crystal/Resonator
2. XTPLL Crystal/Resonator with PLL enabled
3. HS High-Speed Crystal/Resonator
4. HSPLL High-Speed Crystal/Resonator with PLL enabled
5. EC External Clock with FOSC/4 output
6. ECIO External Clock with I/O on RA6
7. ECPLL External Clock with PLL enabled and FOSC/4 output on RA6
8. ECPIO External Clock with PLL enabled, I/O on RA6
9. INTHS Internal Oscillator used as microcontroller clock source, HS
Oscillator used as USB clock source
10. INTXT Internal Oscillator used as microcontroller clock source, XT
Oscillator used as USB clock source
11. INTIO Internal Oscillator used as microcontroller clock source, EC
Oscillator used as USB clock source, digital I/O on RA6
12. INTCKO Internal Oscillator used as microcontroller clock source, EC
Oscillator used as USB clock source, FOSC/4 output on RA6

ECPLL ist also externer Takteingang (an OSC1); damit wird über einen
Prescaler der interne PLL gesteuert. An RA6 bzw. OSC2 sollte Fosc/4
anliegen.

Desweiteren ist dort eine Tabelle abgebildet, in der für einen
Oszillatoreingang von 40 MHz ein PLL-Teiler von 10 unf für einen
µC-Takt von 48 MHz eine 'MCU Clock Division' von 2 für ECPLL und
ECPIO angegeben ist.  IMHO ist das genau das, was ich getan und
eingestellt habe.

Mit 'externer Quarzoszillator' meine ich ein kleines Metallkästchen
im  'DIP-14'-Gehäuse, mit 4 Pins (auf 1, 7, 8 und 14), von denen Pin
7 und Pin 14 für die Versorgungsspannung und Pin 8 als Ausgang
verwendet werden.

Ich vermute mal, dass die meisten das mit einem Quarz-Resonator (rein
passives Bauteil), meist im HC-18 Gehäuse (auch aus Metall) mit 2 Pins
verwechseln. Dafür muss dann XT bzw. HS verwendet werden. In der Doku
steht außerdem, dass auch im HS-Modus ein externer Oszillator verwendet
werden kann, aber - laut Doku - nur bis 24 MHz.

von Florian D. (Gast)


Lesenswert?

Problem gelöst. Es war eine fehlende Null in meiner Programmer-Software.
Dadurch blieben die Config-Bits leer. Dumme Sache.

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.