De PIC12F629 heeft de mogelijkheid om een interne 4MHz oscillator te kalibreren. Op de laatste locatie in het programmageheugen is een kalibratie-instructie geprogrammeerd. In dit geval een RETLW xx, waarbij de literal de kalibratiewaarde is. Deze waarde moet in het OSCCAL register geplaatst worden om de oscillator te kalibreren.
In de datasheet staat echter de volgende note:
Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part.
Hoe kom ik die waarde te weten en op welke manier kan ik hem terugzetten ten behoeve van een volgende programmering.
MiTcHeLL
May The Source Be With You
Op 10 februari 2003 23:21:18 schreef Carel M.:
De PIC12F629 heeft de mogelijkheid om een interne 4MHz oscillator te kalibreren. Op de laatste locatie in het programmageheugen is een kalibratie-instructie geprogrammeerd. In dit geval een RETLW xx, waarbij de literal de kalibratiewaarde is. Deze waarde moet in het OSCCAL register geplaatst worden om de oscillator te kalibreren.
In de datasheet staat echter de volgende note:Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part.
Hoe kom ik die waarde te weten en op welke manier kan ik hem terugzetten ten behoeve van een volgende programmering.
Kan je hem niet eerst uitlezen ?
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 10 februari 2003 23:21:18 schreef Carel M.:
Hoe kom ik die waarde te weten en op welke manier kan ik hem terugzetten ten behoeve van een volgende programmering.
Eigenlijk moet je programmer (danwel de bijbehorende software) dat voor je doen. Wat gebruik je?
Ik ben trouwens net bezig precies dat (oscal en bandgap behouden) aan het programmeren voor xwisp/wisp628....
Als trouwens iemand weet waar de bandgap bits voor dienen ben ik erg benieuwd, zelfs de freaks op de PIClist hebben hier geen zinnig antwoord op kunnen geven.
Ik heb een JDM(Ludipipo) programmer en IC-Prog. Vanavond zal ik eens proberen of de 12F629 te lezen is met deze combinatie.
Jeroen Boere
IF you can't convince them, then confuse them!
Op 11 februari 2003 12:47:01 schreef Wouter van Ooijen:
Als trouwens iemand weet waar de bandgap bits voor dienen ben ik erg benieuwd, zelfs de freaks op de PIClist hebben hier geen zinnig antwoord op kunnen geven.
Ik weet niet of dit is wat je precies bedoelt, maar ik kwam het tegen in een datasheet van maxim:
dit is de datasheet waar het fragment uit komt:
http://pdfserv.maxim-ic.com/arpdf/Design/89c420_userguide.pdf
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Ik weet prima wat een badgap is (dat is een bepaalde manier om een referentiespannig op te wekken in een IC), maar ik weet niet waar die badgap in een 12F voor dient (in de rest van de datasheet komt dat begrip niet voor).
Jeroen Boere
IF you can't convince them, then confuse them!
Op 11 februari 2003 19:57:31 schreef Wouter van Ooijen:
Ik weet prima wat een badgap is (dat is een bepaalde manier om een referentiespannig op te wekken in een IC), maar ik weet niet waar die badgap in een 12F voor dient (in de rest van de datasheet komt dat begrip niet voor).
dan mocht je wel eens je vraag duidelijker stellen... zoals het te lezen was wist je totaal de functie van die bandgap niet...
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Ik heb de drie PIC12F629's met IC-Prog uitgelezen en de kalibratiewaardes staan netjes op de laatste lokatie in het geheugen. De waardes heb ik met potlood achter op het IC geschreven en natuurlijk ook in de datasheet. De drie chips hebben twee verschillende productienummers en inderdaad ook twee verschillende kalibratiewaardes.
De bandgap waardes kan ik echter niet achterhalen. Die worden helaas ook overschreven bij een 'erase' van de PIC. Iemand enig idee hoe IC-Prog hiermee omgaat?
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Kan je het fuses woord uitlezen? de bandgap bits zijn de hoogste twee bits. Maar ik zou me er niet veel zorgen over maken, tot nu toe heb ik altijd gewerkt met die badgap bits op 00...
De PIC12F629 heeft de mogelijkheid om een interne 4MHz oscillator te kalibreren.
Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be saved prior to erasing part.
Met de K8048 "lukt" het me nog wel eens om OSCCAL stuk te maken. Op fora staan diverse methoden met jumpers enzovoort, om dit weer in orde te krijgen, maar er is een veel eenvoudigere methode:
- Velleman K8048, picprog 2006
- Genereer code die locatie 0x3ff programmeert:
org '03ff'h retlw h'28' - Stel picprog2006 in op 16F627
- Programmeer PIC, Ignore waarschuwing over verkeerde type.
- Ignore 'programming error'
- Schakel type weer terug naar 12F675/12F629
- Lees PIC en zie dat de waarde weer klopt.
Geert Jan
[hopelijk hebben andere archiefzoekers hier wat aan)
Phlogiston
"If a rocket goes up, who cares where it comes down." - Wernher von Braun
Als trouwens iemand weet waar de bandgap bits voor dienen ben ik erg benieuwd, zelfs de freaks op de PIClist hebben hier geen zinnig antwoord op kunnen geven.
Staat anders gewoon in de datasheet.
Document 41190E, blz 52:
"bit 13-12 BG1:BG0: Bandgap Calibration bits for BOD and POR voltage(1)"
Ik interpreteer dit als dat het dient als basis voor de referentiespanning voor de brown-out en power-on resets.
Wat een oude thread, dat ze nog geopend mag worden.
Maar goed, als je een precieze 5KHz generator hebt kun je met een hulpprogrammaatje dit ook voor elkaar krijgen.
Zie appnote 250
[Bericht gewijzigd door jojo op (16%)]
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 7 september 2008 15:39:19 schreef Phlogiston:
[...]
Staat anders gewoon in de datasheet.
Document 41190E, blz 52:
"bit 13-12 BG1:BG0: Bandgap Calibration bits for BOD and POR voltage(1)"
Ik dacht even dat ik zelf niet goed gelezen had, maar dit is een latere toevoeging. Ik heb nog een papieren DS141190A, en daar staat op p52 alleen "bit 13-12 BG1:BG0: Bandgap Calibration bits".
Jochem
If you want to succeed, double your failure rate.

