OSCCAL u 12F629 a mozna i dalsich

LuKas hradlo
Středa Březen 17 14:54:29 CET 2004


> z datasheetu jsem moc nepochopil jak funguje kalibrace vnitrniho
> oscilatoru PICa. Jestli tomu dobre rozumim neskoci to po resetu
> primo na ORG 000, ale naopak na ORG 3FF, kde je natvrdo instrukce
> movlw 'neco_z_vyroby' a teprve po jejim vykonani PC "pretece" na ORG 000.
> Cili standardne je dobre na ORG 000 napsat movfw OSCCAL a tim tu
> hodnotu z vyroby nacpu do registru urceneho k fyzickemu
> dokalibrovani oscilatoru.
> A ted dotazy na PICove odborniky:
> 1)Chapu to takhle dobre?

Ja to resim tak, ze dam na zacatek programu (za org 0x000):
bsf	STATUS,RP0
call	0x3FF
movwf	OSCCAL
bcf	STATUS,RP0

A na adresu 0x3FF dam retlw 0x[kalibracni hodnota]

Proste presne tak, jak to je na strane 56 v datasheetu 12F6xx.

> 2)Nekde v datasheetu je, ze pri smazani PICa se to
> "neco_z_vyroby" vymaze. Znamena to, ze kdyz si koupim noveho
> PICa, musim ho  zaprve precist, instrukci z 3FF disasemblovat,
> zjistit ten literal z vyroby, zaradit peclive do databaze svych
> PICu a kdykoliv budu palit soft do tohohle kousku, tak tam na ORG
> 3FF opsat z databaze instrukci s jeho konkretni kalibracni konstantou?

Pouzivam programator Elnec, kde je moznost dat pri programovani neprepisovat
hodnotu OSCCAL. Pokud ale jeden PIC programujete vicekrat, je nutne si tu
hodnotu nekam zapsat, protoze pred opetovnym programovanim se PIC kompletne
smazne.

> 3)Zatim s jednim PICem v supliku me to tolik netrapi, ale pokud
> to tak skutecne je, jak se ta vec fakticky realizuje pri
> hromadnejsi vyrobe?

Pri hromadnejsi vyrobe se zatrhne volba "neprepisovat hodnotu OSCCAL" :-)

Zdravi,
LuKas





Další informace o konferenci Hw-list