elektronik:osccal

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

elektronik:osccal [08.12.2024 21:53] – angelegt Martin Fitzelelektronik:osccal [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 +====== OSCCAL ======
  
 +Bei einigen PICs (12F629 / 12F675 / 16F630 / 16F676) gibt es eine Besonderheit, die unter Umständen zu Problemen führen kann: **der OSCCAL**.
 +
 +===== Zweck von OSCCAL =====
 +Es handelt sich um einen OSCillator CALibration Wert. Da der PIC mit einem internen Oszillator betrieben werden kann (dies spart einen externen Quarz), wird dieser Wert bereits in der Chip-Fabrik an einer Speicherstelle programmiert. Dadurch können Toleranzen in der Taktfrequenz abgefangen werden.
 +Der 16F627 besitzt den OSCCAL übrigens nicht!
 +
 +===== Warum wird der OSCCAL verwendet? =====
 +Die Verwendung des OSCCAL-Wertes wurde notwendig, damit alle Kombinationen von Dekoder und Zentrale zusammen laufen. Denn auch die Zentrale hat gewisse Toleranzen. Wenn nun eine langsame "Scharping"-Zentrale mit einem hektischen "Waalkes"-Dekoder zusammen funktionieren soll, so verstehen sich die beiden nicht mehr. Die Zentrale sendet einfach zu langsam.
 +
 +===== Wie funktioniert das? =====
 +Der OSCCAL liegt in der letzten Speicherstelle des Programm-Speichers und wurde dort von der Chip-Fabrik einprogrammiert. Beim Start des PIC-Programmes wird dieser Wert dann ausgelesen. 
 +
 +===== Wie kommt es zu Problemen? =====
 +Beim Brennen des PIC wird der Programmspeicher mit dem eigentlichen Programm geladen. Und genau hier sieht man schon die Gefahr: dort liegt ja schon der OSCCAL rum. Um diesen nicht zu überschreiben, wird dieser von einer guten PC-Programmier-Software zuerst gelesen und dadurch gerettet. Eine schlechte PC-Programmier-Software überschreibt diese Speicherstelle einfach und der OSCCAL ist futsch.
 +Aber auch mit der guten PC-Programmier-Software kann es vorkommen, das der OSCCAL verloren geht. Wird der Programmier-Vorgang z.B. gestört, so ist evtl. der Speicher schon gelöscht, aber der OSCCAL-Wert noch nicht wieder zurück-programmiert worden. In diesem Fall: OSCCAL schnell notieren und später wieder einprogrammieren.
 +
 +Unsere Software (PICkit 3 Programmer) zeigt den OSCCAL-Wert im Kopf an - dieser muss also beim ersten Auslesen des PICs notiert werden und zur Not später zurückgesetzt werden. 
 +
 +{{:elektronik:pasted:20221120-121601.png}}
 +
 +{{tag>PIC OSCCAL}}