Creative Commons BY-NC-ND 2.5Questo sito e tutto il suo contenuto sono distribuiti sotto la licenza Creative Commons Attribuzione - Non Commerciale - Non opere derivate 2.5 Italia e con le condizioni d'uso definite nel disclaimer: siete pregati di leggere entrambi questi documenti prima di usufruire dei contenuti di questo sito. Per alcuni contenuti è necessaria una registrazione gratuita: non è necessario pagare e non è necessario accumulare punteggi per accedere agli articoli e scaricare i sorgenti: basta solo essere onesti. Se volete che questo sito continui a rimanere attivo, a contribuire ogni giorno alla diffusione della cultura libera, non copiate il materiale per ripubblicarlo in altri luoghi. Se volete partecipare su settorezero e rendere le vostre idee, i vostri progetti, fruibili da tutti senza limitazioni potete farlo tranquillamente.

PICkit : errore “Target has invalid calibration data”

Autore: Giovanni Bernardo | Data pubblicazione: 3 novembre 2016
Categorie: Hacking PICmicro

Ho dovuto programmare un PIC12F508 per un amico con un HEX da lui fornito. Dato che ho avuto qualche problema con la programmazione, riporto qui sul mio blog le operazioni fatte per riuscire a programmarlo.

Innanzitutto il PICkit 2 non è in grado di programmare questo dispositivo anche con l’ultimo aggiornamento firmware/software/device file ufficiale, il 12F più piccolo (in termini di sigla) che ha in elenco è il 12F609. Andiamo quindi di PICkit 3

Magari è possibile programmare il PIC12F508 modificando il device file con il tool Device File Editor. Ma dato che avevo il PICkit3 non mi sono applicato in questa soluzione. Se voi l’avete fatto, lasciate un commento. Se siete interessati a scaricare le ultime revisioni software/firmware del PICkit2 o la vecchia applicazione stand-alone del PICkit3 potete andare nella pagina di MPLAB X Ide, scorrere giù dove c’è il riquadro “Features\Downloads\Documentation\Download Archive\Webinars”, premere su “Download Archive” e scorrere verso il basso: ci sono tutte le cose vecchie e stravecchie di cui avete bisogno.

Come saprete da quando non esiste più MPLAB IDE, si usa MPLAB X Ide, che ha integrato, nell’installazione, l’utile tool MPLAB IPE che sta per Integrated Programming Environment. Come ben si intuisce, è un software stand-alone che serve per programmare/leggere i dispositivi di mamma Microchip utilizzando uno dei suoi programmatori, qualsiasi esso sia.

Non avrei mai immaginato che quel 12F mi facesse penare tanto!

Non avrei mai immaginato che quel 12F mi facesse penare tanto!

Appena avviato MPLAB IPE, dato che il PICkit 3 rispetto al fratello minore è molto snob, bisogna passare in modalità avanzata dal momento che di default il PICkit 3 non fornisce l’alimentazione al circuito target. Difatti se il circuito target non è alimentato, hai voglia a premere il pulsante “Program”, che verrà sempre restituito l’errore Target Vdd not detected:

target_vdd_not_detected

Questo problema lo si ha anche in MPLAB X

Per passare in modalità avanzata si clicca su Settings -> Advanced mode. Si presenta una finestra che invita a digitare una password, che di default è “microchip” come riporta anche la finestra stessa.

In modalità avanzata compaiono una serie di pulsanti sulla sinistra che permettono di modificare manualmente tutti i parametri di programmazione.

Innanzitutto nella schermata principale (Operate) bisogna premere il pulsante “Connect” per collegarsi al programmatore selezionato nell’elenco “Tool”. Selezionare il pic da programmare nel menù “Device”, e quindi caricare l’HEX da programmare premendo il pulsante “Browse” al di sotto dei tasti di programmazione/verifica/cancellazione.

La tensione si abilita premendo il pulsante Power e abilitando il segno di spunta sulla voce Power target circuit from tool:

Power target circuit from tool

Power target circuit from tool

Tornando al menù principale (pulsante “Operate”) possiamo provare a premere il tasto “Program”. Se siete fortunati, fila tutto liscio. Nel mio caso non è stato così: ricevevo un errore che indicava che la tensione letta sul pin VDD del pic target era 4.75V anzichè 5:

target_vv_4dot75_volts

Questo errore può essere dovuto o al fatto che la porta USB a cui è collegato il PICkit non eroga abbastanza corrente (può capitare con le porte USB frontali dei PC, che sono limitate in corrente rispetto a quelle posteriori) oppure il dispositivo/circuito target sta assorbendo troppa corrente, che il PICkit 3 non è in grado di fornire.

Questo problema, con il PICkit 3 lo si ha sempre. SEMPRE! Anche da MPLAB X. A volte mi capita di programmare picmicro compatibili con il PICkit 2, il PICkit 3 fa storie con la tensione misurata troppo bassa, lo stacco e al suo posto collego il PICkit 2, sulla stessa porta USB, e tutto va bene.

In questi casi è necessario alimentare il circuito dall’esterno con un alimentatore da 5V e quindi deselezionare il segno di spunta dalla voce “Power Target Circuit from Tool” presente nel menù Power.

Anche così non riuscivo a programmare il pic: continuavo a ricevere il fastidioso errore Invalid Calibration Data seguito da Failed to program device:

invalid_calibration_data

Googlando un po’ ho trovato rimedi un po’ assurdi tra cui riprogrammare il PICkit 3 con un firmware vecchio (soluzione che non ho proprio preso in considerazione considerando anche il fatto che il PICkit 3 viene riprogrammato dai suoi software in base alla famiglia di picmicro da programmare) o usare una vecchia e specifica versione di MPLAB IDE (questo perchè a qualcuno, con una botta di fortuna, avrà funzionato, ma non era sicuramente quello il problema!).

Ho tenuto in considerazione soluzioni più plausibili come quella di mettere un grosso condensatore elettrolitico tra Vdd e Vss. Così sono riuscito a programmarlo senza problemi. Ho anche chiuso e riaperto il programma più volte, usato un altro pic, un’altra porta USB per verificare, dumpato l’HEX dal picmicro e confrontato con l’originale. Giusto per essere sicuri al 100%

Finalmente!

Finalmente!

 

 

L'articolo ti è piaciuto o ti è stato utile per risolvere un problema? SettoreZero è realizzato soltanto con contenuti originali: tutti gli articoli sono curati con passione dagli autori e nulla viene copiato da altri siti. Supporta e mantieni in vita SettoreZero con una donazione: basta soltanto un caffè o una birra. Puoi supportare SettoreZero anche con uno dei progetti elencati nella sezione servizi o partecipare anche tu con un tuo articolo/progetto personale.

Se desiderate che SettoreZero continui a rimanere gratuito e fruibile da tutti, non copiate il nostro materiale e segnalateci se qualcuno lo fa.

Puoi lasciare un commento, o un trackback dal tuo sito.

  1. Ancora nessun commento.

Devi essere collegato per lasciare un commento.

  1. Ancora nessun trackback
settorezero.com e il logo Zroid™ ©2007÷2015 Giovanni Bernardo - E' vietata la copia e la distribuzione anche parziale dei contenuti di questo sito web senza l'esplicito consenso dell'autore.
I contenuti di settorezero.com sono distribuiti sotto una licenza Creative Commons Attribuzione-Non Commerciale-Non Opere derivate 2.5 Italia a cui vanno aggiunte le condizioni d'uso definite nel disclaimer.
settorezero.com e tutti i suoi contenuti sono tutelati dalla legge sul diritto d'autore per cui i trasgressori sono perseguibili a norma di legge. Settorezero fa uso dei cookie leggi l'informativa estesa.
Creative Commons BY-NC-ND 2.5
Il tema di questo sito è basato sul tema Fusion per wordpress, realizzato originariamente da digitalnature e fa uso del plugin Wassup per il computo delle statistiche. Per contattare l'autore siete pregati di utilizzare la sezione contatti.
Per essere aggiornato con tutte le novità di settorezero.com seguici anche anche su Facebook Twitter Tumblr Blogspot Youtube.