Bandgap-Einstellung
bei 12F629/675, 16F630/676 u.ä


zurück zu PIC-Grundlagen , PIC-Prozessoren , Elektronik , Homepage

Allgemeines
Vorbeugen
Was ist der Bandgap?
Brown-out-Detect
Der Test
Probleme bei falschen Bandgap

zurück: zu PIC-Grundlagen



Allgemeines

Einige PIC-Typen haben in der Configuration einige Bits, die als Bandgap-Einstellung bezeichnet werden.  Dort lässt sich ein Wert zwischen 0 und 3 einstellen. Der Bangap-Wert wird für denen PIC individuell vom Hersteller eingestellt, und darf nicht verändert werden.

Programmiergeräte kümmern sich in der Regel darum, dass vor dem Löschen oder Neuprogrammieren eines PIC der Bandgap-Wert ausgelesen wird, und brennen ihn dann in den PIC zurück. Es kann aber auch mal passieren, das dieser Wert verloren geht. Was dann?
 

nach oben


Vorbeugen

Prinzipiell ist es eine gute Idee, vor den Neuprogrammieren eines solchen PIC den spezifischen Bandgap-Wert auszulesen und aufzuschreiben. Gründliche Zeitgenossen kratzen den Wert dann in das Plastikgehäuse des Chips (was aber spätestens bei SMD schwierig ist). Wer sich den Wer notiert, hat aber ein "Backup", auf das er im Falle eines Datenverlustes zurückgreifen kann.
Klappt das Brennen problemlos, kann man den Zettel ja wieder wegwerfen.
 

nach oben


Was ist der Bandgap?

Von Microchip gibt es keinerlei Informationen darüber, aber unter Bandgap versteht man eine Referenzspannungsquelle.
Um was für eine Referenzspannungsquelle mag es sich da handeln?

Die betroffenen PICs haben nur an drei Stellen prinzipiell einen eventuellen Bedarf für eine Bandgap-Referenzspannungsquelle:

Da auch Chips ohne ADC betroffen sind, fällt der ADC schon mal aus der Liste raus. Auch für die Komparator-Referenz würde eine "Kalibrierung" in nur 4 Abstufungen kaum sinnvoll sein, und alle Komparator-Referenz-Spannungen werden außerdem immer nur in Relation zu Vdd angegeben.

Es bleibt nur die Brown-out-Detect-Funktion übrig.
 

nach oben

Brown-out-Detect

Falls die Betriebsspannung des PIC unter einen kritischen Wert fällt, ist die Funktion des PIC nicht mehr gesichert, und der PIC kann "abstürzen". Als Gegenmaßnahmen gibt es die Brown-out-Detection, die in einem solchen Fall ein Reset für den PIC auslöst.
Genaugenommen wird beim Unterschreiten einer Spannung von 2V intern im PIC der Reset-Taster heruntergedrückt. Damit ist der PIC gestoppt. Gleichzeitig wird das Bit 0 im PCON-Register auf 0 gesetzt.
Überschreitet die Betriebsspannung wieder die 2V-Grenze, dann wird der interne Resettaster mit 72ms Verzögerung wieder losgelassen, und  der PIC fängt an sein Programm von Anfang an abzuarbeiten. Die Software kann das Bit 0 im PCON-Register prüfen, und im Falle eines Brown-out-Resets anders arbeiten als im Falle eines Power-on-Resets.
Die Brown-out-Detection-Funktion muss in der Config aktiviert sein und heißt dort BOD bzw. BODEN.
(In früheren PIC-Familien war BOD auf 4V festgelegt, in modernen PIC18F-Typen kann man die BOD-Schwelle in der Config flexibel einstellen.)

Wenn man den PIC mit einer niedrigen Betriebsspannung (nahe 2V) betreibt, dann kann BOD sehr hinderlich sein, da schon keine Spannungsschwankungen ein Reset auslösen würden. Es stellt sich damit auch die Frage nach der Genauigkeit der BOD-Schaltschwelle. Falls ein einem PIC durch Exemplarstreuung die BOD-Schwelle bei 2,2V liegen sollte, dann kann der PIC mit 2,0V Betriebsspannung nicht mehr funktionieren.
Liegt die Schwelle aber unter 1,5V, so kann es schon zu Datenverlust im Speicher gekommen sein, und der PIC könnte falsch arbeiten, was oft schlimmer ist als ein PIC der kontrolliert stoppt.

Die BOD-Spannung sollte also möglichst dicht an 2,0V liegen. Damit besteht ein Kalibrierungsbedarf. Die Bandgap-Referenzschwelle des PIC stellt die genaue Höhe der BOD-Schwelle ein.
Dafür spricht auch, das bei den PICs mit Bandgap-Einstellung der Hersteller eine BOD-Spannung von 2.0V angibt. Bei Typen ohne Bandgap wird dagegen immer ein Spannungstoleranzbereich (z.B. 3,65 .. 4,35V beim 16F876A) angegeben. Wahrscheinlich sind diese Toleranzen nach der Absenkung der BOD-Sollspannung von 4V auf 2V schlichtweg zu groß.



Der Test

Ich habe einen einzelnen PIC12F629 auf die Wirkung verschiedener Bandgap-Einstellungen hin getestet. Das Ergebnis steht in der nachfolgenden Tabelle. Andere PICs werden natürlich ganz andere Spannungswerte aufweisen. Ohne Exemplarstreuung wäre die Bandgap-Einstellung ja gar nicht nötig.
 
BandGap-Wert
PIC schaltet ab bei Unterschreitung von
PIC schaltet wieder ein bei Überschreitung von
0
2,03 V
2,08 V
1 (Werkseinstellung)
2,14 V
2,18 V
2
2,20 V
2,23 V
3
2,24 V
2,28 V

Mit dem Bandgap-Wert kann die BOD-Schwelle um 50mV ..100mV pro Stufe verstellt werden. Das ist nicht gerade viel, kann aber beim Betrieb mit kleiner Betriebsspannung wichtig werden.

Berichte, nach denen ein PIC mit Bandgap=3 nicht funktionierte, aber nach der Änderung auf Bandgap=1 wunderbar lief, lassen sich mit den Daten nicht untermauern. So etwas kann wohl nur passieren, wenn der PIC ohnehin mit sehr kleiner Betriebsspannung (deutlich unter 5V) betrieben wird, und man ein Exemplar mit hohen Bandgapspannungen erwischt hat.
 

nach oben

Probleme bei falschen Bandgap

Der Bandgap liegt im Bereich von 0 bis 3. Dabei entspricht 0 der niedrigsten BOD-Spannung und 3 der höchsten. Die meisten PICs haben ab Werk eine Einstellung von 2 oder 1.

Ist der Bandgap-Wert zu niedrig eingestellt, kann es passieren, das BOD nicht korrekt funktioniert. Beim Unterschreiten des sicheren Arbeitsbereichs der Betriebsspannung arbeitet der PIC unkontrolliert weiter oder stürzt ab.

Ist der Bandgap-Wert zu hoch eingestellt, kann BOD schon weit oberhalb von 2V aktiv werden. Wird dann mit einer kleinen Betriebsspannung (kleiner als die BOD-Schwelle) gearbeitet, bleibt der PIC im Dauerreset, und beginnt einfach nicht zu arbeiten
.

nach oben

zurück: zu PIC-Grundlagen


zurück zu PIC-Grundlagen , PIC-Prozessoren , Elektronik , Homepage

23.02.2006
letzte Änderung: 23.02.2006