www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F Externer Quarz nötig?


Autor: Klaus B. (nuccleon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo PIC Profis,

ich bin ziemlich (gänzlich) unerfahren was die PIC's betrifft, möchte 
dies aber ändern und mir ein kleines Board mit dem PIC18F2321 aufbauen.

Jetzt stellt sich bei mir voarab die Frage ob ein Quarz an OSC1/OSC2 
nötig ist, schließlich verfügt der PIC auch über einen internen RC 
Oscillator, (Internal oscillator block) welcher 31kHz - 8MHz zur 
Verfügung stellt.

So weit so gut dachte ich mir, da kann man sich den Quarz sparen. Beim 
näheren studieren des Datenblattes ist mir dann aufgefallen, dass die 
System Clock Select bits (SCS1:SCS0) per Default auf 00 und somit auf 
Primary oscillator (OSC1/OSC2) gestellt sind.

Verstehe ich das falsch, oder kommt man ohne einen Quarz an OSC1/OSC2 
nicht aus?

Ich hoffe es kann mir jemand bei meinem Problem helfen. Vielen Dank 
schonmal vorab.

Autor: Dirk W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Taktquelle kannst Du über die Configuration-Bits einstellen, die 
beim Brennen gesetzt werden. Dort kannst Du auch den internen Taktgeber 
als Taktquelle einschalten. Du brauchst also keinen externen Quarz.

Autor: Klaus B. (nuccleon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Danke für die schnelle Info. Ist das vergleichbar mit den Fuse 
Bits bei Atmel?

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist grob vergleichbar. Die Kernfrage ist aber, wie genau der Takt sein 
muss. Der intern erzeugte Takt ist für manche Anwendungen nicht genau 
genug.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, etwas detaillierter:
Mit SCS1:SCS0 wählst Du zur Laufzeit (also in Deinem Programm), ob der 
Takt vom primären Oszillator, von Timer1 oder vom internen Oszillator 
kommt.
Per Default vom primären Oszillator.

Aber: Welches der primäre Oszillator ist, wird mit den Configuration 
Bits (auch Fuses genannt) FOSC3:FOSC0 bestimmt.
Dort kann mit 1000 der interne Oszillator gewählt werden, der per 
Default mit 8MHz läuft.

Mit IRCF2:IRCF0 kann (zur Laufzeit) die Frequenz gewählt werden.

Also: Beim Flashen des PIC muss der primäre Oszillator gewählt werden 
(Configuration bits FOSC3:FOSC0). Dies kann im Sourcecode eingebettet 
oder im Programmer gewählt werden.

Anschliessend wird im Programm (Initialisierung) das Register OSCCON 
gesetzt mit den gewünschten Werten für SCS1:SCS0 sowie IRCF2:IRCF0.

Alles klar? Wichtig bei Rückfragen: wie programmierst Du (Assembler, C, 
...)?

Autor: Klaus B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar erstmal ;-) Danke für die ausführliche Antwort.
Ich denke Rückfragen kommen erst dann wenn es ums programmieren geht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.