autocalibrazione pic

Salve!

Scusate se ritorno sull'argomento, ma volevo sapere se con un normale programmatore per pic e' possibile leggere il valore di autocalibrazione del clock quando si usa oscillatore interno.

Reply to
enzo
Loading thread data ...

del

cos'è il valore di autocalibrazione del clock?

Reply to
blisca

Salve!

Grosso modo si puo' dire che usando come clock il generatore interno al posto del classico quarzo esterno, si ha una buona precisione perche' ogni Pic ha dei valori per compensare le tolleranze interne, questi valori variano per ogni micro, ad esempio se prendo due 12F508 magari dello stesso lotto avranno dei valori di autocalibrazione diversi, la curiosita' che volevo togliermi era quella di leggere questi valori.

Reply to
enzo

enzo ha scritto:

Sì, si può, basta che leggi l'ultima loc di memoria, il valore è scritto lì, (devi considerare solo gli ultimi due nibble, perchè il primo è l'istruzione MOVLW stessa) per esempio nel 12F508 è 0x1FF, nel 12F509 è

0x3FF, ed è per quel motivo che la prima istruzione che devi usare, prima di qualsiasi altra cosa nel tuo firmware è il MOVWF OSCCAL (lo trovi scritto sul DS a pagina 43: "This value is programmed as a MOVLW XX instruction where XX is the calibration value, and is placed at the Reset vector. This will load the W register with the calibration value upon Reset and the PC will then roll over to the users program at address 0x000."

Ciaoooo ;)

Reply to
Stefano

Chi sa se i compilatori tipo quello della Melabs fanno questo cioe' caricarequesto valore

Reply to
enzo

Dunque bisogna stare attenti alla cancellazione dei chip con memoria flash?

Reply to
enzo

enzo ha scritto:

Sì, esatto! Se cancelli il PIC senza prima avere salvato letto e trascritto quel valore la calibrazione è persa definitivamente, a meno che non hai voglia di provare valore per valore (siamo nel campo dell'assurdo, ovviamente).

Reply to
Stefano

"Stefano" ha scritto nel messaggio news:ekug7c$73p$ snipped-for-privacy@nnrp.ngi.it...

In verita' ho appena provato con un programmatore clone della microchip (pikkit2) con software ufficiale, i valori dell'ultima locazione non vengono cancellati.

Reply to
enzo

Ciao!

Scusa se insisto vorrei vedere se ho capito con un semplice esempio ammettiamo che uso un 12f508

se uso l'oscillatore interno come prima istruzione devo eseguire il comando: MOVWF OSCCAL

oppure devo prima

MOVLW 0x1FF 'carico prima il valore del 12f508 MOVWF OSCCAL 'il valore caricato prima lo trasferisco nel giusto registro

nel caso di uso di quarzi queste sono cose non influenti sul funzionamento?

Reply to
enzo

Il giorno Sun, 3 Dec 2006 13:39:11 +0100, "enzo" ha scritto:

I sw di programmazione "intelligenti" salvano il valore di calibrazione prima di cancellare il chip e lo riprogrammano dopo la cancellazione. Se in fase di programmazione carichi nell'ultima locazione del buffer qualcosa di diverso dal byte di calibrazione, ti chiedono se vuoi sovrascrivere il valore di calibrazione.

Reply to
Luigi C.

Il giorno Sun, 03 Dec 2006 14:49:18 GMT, Luigi C. ha scritto:

Due esempi tra i sw "amatoriali intelligenti": ic-prog e winpic800.

Reply to
Luigi C.

enzo ha scritto:

Sì, giusto, in caso di uso dell'oscillatore interno RC devi scrivere semplicemente come prima istruzione MOVWF OSCCAL, perché l'istruzione MOVLW [valore di calibrazione] l'ha già inserita la Microchip, se usi un quarzo esterno, non importa, ma conviene lo stesso annotarsi il valore, non si sa mai se in un futuro decidi di utilizzare lo stesso PIC per un altro progetto ;).

Ciao!

Reply to
Stefano

"Stefano" ha scritto nel messaggio news:el0lf9$uhg$ snipped-for-privacy@nnrp.ngi.it...

Volevo ringraziarti sei stato disponibilissimo e gentilissimo, per avere questa risposta altri dicono di leggersi i Datasheet della microchip il manulae del compilatore ecc.... grazie ancora.

Reply to
enzo

si, io uso due programmi per scaricare il sw sul pic. _con epicwin si legge il byte di calibrazione ma non lo si può toccare _con icprog lo si legge e togliendo le protezioni al programma lo si può anche sovrascrivere

Ste

--
Feynman sarebbe riuscito a spiegare la meccanica quantistica a una
gallina, ma non sarebbe stato superficiale. [cit. Boiler, i.h.e. 21.01.2006]
Reply to
PeSte

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.