www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 12F629; Programm lässt sich nicht brennen; Osccal Blank


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

So habe ein kleines Programm geschrieben um den 12F629 mal
auszuprobieren und wollt eben das Programm auf den PIC brennen aber
Brennprogramm sagt:

"Checking Osccal & Bandgab..."
"Check Osccal is Blank!"

So meine Frage Wo kann ich denn Den Osccal einstellen ? im Datenbuch
steht das er standart mässig in der Center Frequnz eingestellt ist.

Ich benutze einen ALL-11C2 Brenner mit der dazugehörigen Brennsoftware
vom Hersteller.

Könnte mir bitte dabei jemand helfen ?

Danke

Sebastian

Autor: Sebastian (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich Benutze MPLAB und dort hab ich im "Configuration & ID data"
folgendes eingestellt:
(Ich hab mein Programm mal in den anhang kopiert)


Oscillator       : INTOSC, I/O function on GP4
Watch dog        : WDT disabled
Power up Timer   : PWRT enabled
MCLR pin functi  : /MCLR pin is Alternate function
Brown-Out reset  : BED Reset enabled
Code Protect     : Code Protect Off
Data memory Prote: Code protect Off

Und immer noch der gleiche fehler aber mit
Oscillator       : INTOSC, I/O function on GP4
Lege ich doch dest das der Interne Oszi verwendet wird oder ?

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi


>>Und immer noch der gleiche fehler aber mit
>>Oscillator       : INTOSC, I/O function on GP4
>>Lege ich doch dest das der Interne Oszi verwendet wird oder ?

Ja, hier legst du den Internen Oszillator fest. Kannst du nicht bei
deinem Programmer den OSCCAL-Wert festlegen? Ich habe mal geles wie man
den OSCCAL da festleget.. aber i weis nicht mehr wie.. waren glaube ich
nur 2 Zeilen oder so... i schau mal ob ich was finde. Aber sonst schau
mal bei www.fernando-heitor.de vorbei.. da wirst du sicher deine
Antwort(für die und zukünftige Fragen) bekommen.

Autor: Christoph P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht hilft dir ja auch das hier

http://www.sprut.de/electronic/pic/projekte/osccal...

Autor: H. W. (digger72)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

Der 12 F629 springt beim reset immer erst auf Adresse 3FFFH.
Dort steht normalerweise ein Retlw xx -Befehl.
Wenn man den internen Oscillator benutzt, schreibt man
als ersten Befehl ab Org 000
"movwf OSCAL "
Damit ist der Oszillator kalibriert. Bei anderer
Oszillatorkonfiguration kann man den Ladebefehl weglassen.

Wenn du den Pic vor dem ersten Brennen ausliest, steht
dort der Calibrationswert ab Werk.

Gruss Digger

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute.

auf der Suche nach einer Lösung zu einem Problem mit MPLAB, PICkit2 und 
OSCCAL bin ich über diesen Thread gestolpert.

Zunächst will ich mal den inhaltlichen Unsinn des letzten Beitrages 
korrigieren.

Es geht hier um den PIC12F629.

1.
Richtig ist, dass ab Werk an der letzten Programmspeicherzelle ein 
RETLW-Wert für OSCCAL steht.

2.
Die Speicherzelle ist an 3FFh und nicht an 3FFFh.

3.
Falsch ist, dass der 12F629 nach dem Reset in diese Zelle springt. Er 
springt nach 0.

Ein RETLW könnte als erste Anweisung nicht funktionieren, weil er nicht 
wüsste wohin der "returnen" soll.

4.
Deshalb ist auch falsch, dass mit einem "movwf OSCCAL" an org 0 der 
Oszillator kalibriert ist. OSCCAL ist in Bank1. Ohne eine vorangestellte 
Bankumschaltung kann das niemals funktionieren. Mit "movwf OSCCAL" an 
der ersten Programmspeicherzelle wird T1CON gelöscht oder irgendetwas 
anderes geschrieben, falls nach dem Reset im W-Register nicht 0 steht.

In "Example 9-1" steht, wie der interne RC-Oszillator des PIC12F629 
kalibriert wird. Das Reset-Verhalten der verschiedenen PICs ist 
unterschiedlich. Es gibt tatsächlich welche, die in die letzte 
Programmzelle springen. Ein Blick ins Datenblatt hilft hier weiter.

Und nun zu meinem Problem:
Die anfängliche Freude darüber, dass MPLAB nun auch direkt den PICkit2 
anspricht, ist getrübt. In dieser Kombination wird gelegentlich der 
OSCCAL-Wert zerhackt und nach dem Brennen steht dort 0. Ein "call 0x3FF" 
geht also ins Nirvana.

Anscheinend wird vor dem Brennen der Wert nicht korrekt ausgelesen.

Schönen Tag noch,
ein Gast

Autor: TK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit MPLAB und dem PICSTART+ oder ICD2 gibts jedoch keine Probleme,
da in beiden Fällen nur bis zu 0x3FE programmiert wird. Demnach bleibt
der OSCCAL-Wert erhalten - es sei denn - man LÖSCHT vorher den gesamten
Chip. Aber auch hier scheint MBLAB vorher den OSCCAL-Wert auszulesen, um
ihn dann nachträglich wieder zu programmieren.
Ich bekomme beim Programmieren immer den Hinweis, dass OSCCAL-Wert 
bereits
kalibriert ist.
Allerdings hab ich in der Firmware noch eine Abfangroutine 
implementiert, die
einen gelöschten OSCCAL erkennen soll.
z.B.
call 0x3FF
BANK_1
movwf OSCCAL
addlw .1
movlw 0x80
btfsc STATUS,C
movwf OSCCAL
BANK_0

(BANK_1 und BANK_0 sind MACROS)
Wenn der OSCCAL gelöscht wurde, steht normalerweise 0xFF drin. Ist dies 
der Fall, dann schreib ich einfach 0x80 rein, was laut Datenblatt als 
CENTER FREQUENCY deklariert wird. So kann ich wenigstens garantieren, 
dass der PIC nicht GANZ DANEBEN läuft.

Gruß
TK

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo TK,

die Routine ist nutzlos, wenn alle Bits der Zelle gesetzt oder gelöscht 
sind und nicht nur die 8 Bit des Operanden - wie bei mir. Der "call 
0x3FF" läuft in den Wald.

Ich habe mir jetzt angewöhnt, den PICkit 2 wieder auf die alte Weise zu 
benutzen. In MPLAB das Hexfile machen und über die PICkit-Software 
importieren und brennen.

Mit PICkit 1 lässt sich bei einigen PICs der OSCCAL-Wert "regenerieren". 
Das ist ganz praktisch.

Das Gehampel mit dem Netzteil bei PICStart+ ist mir meist zu 
umständlich.

Gruß,
K

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.