Aiuto coi PIC
Moderatori: MrMassy86, adobel55, lorelay49
- MarcoMN
- Socio GAS TT
- Messaggi: 630
- Iscritto il: mercoledì 16 gennaio 2013, 8:54
- Nome: Marco
- Regione: Lombardia
- Città: San Giorgio Bigarello
- Stato: Non connesso
Re: Aiuto coi PIC
Premesso che li sto impiegando per la realizzazione diquesto progetto , mi serve sapere in particolare come si effettua la CALIBRAZIONE e i FUSES.
Ho già schiantato due pic su quattro che avevo già programmato. Probabilmente ho sbagliato qualcosa in fase di riprogrammazione o cancellazione della ROM.
Il progetto prevede l'uso di PIC 12F675.
Non capisco se la calibrazione va fatta ogni volta che si programma un altro pic (se li programmi in quantità e sono tutti uguali) oppure no.
Ho problemi anche sulla procedura di cancellazione. Ne avevo programmato uno e non funcionava bene. Cancellandolo probabilmente ho cancellato anche i dati della calibrazione e da allora non riconosce nemmeno il PIC.
Uso il programma MICROBRN (lo preferisco) ma ho installato anche ICPROG.
Grazie in anticipo a chi vorrà aiutarmi.
- MarcoMN
- Socio GAS TT
- Messaggi: 630
- Iscritto il: mercoledì 16 gennaio 2013, 8:54
- Nome: Marco
- Regione: Lombardia
- Città: San Giorgio Bigarello
- Stato: Non connesso
Aiuto coi PIC
Nessuno se ne intende veramente?
- liftman
- Socio GAS TT
- Messaggi: 7762
- Iscritto il: domenica 29 gennaio 2012, 14:40
- Nome: Rolando
- Regione: Liguria
- Città: La Spezia
- Ruolo: Moderatore
- Stato: Non connesso
Re: Aiuto coi PIC
Rolando
- Digtrain
- Messaggi: 1621
- Iscritto il: giovedì 20 dicembre 2012, 23:47
- Nome: Walter
- Regione: Lombardia
- Città: Casarile
- Stato: Non connesso
Re: Aiuto coi PIC

immagino tu utilizzi per programmare i K150 con Microbrn giusto?
Giusto venerdì sera io e Giacomo ( Jack94) abbiamo montato 4 circuiti in oggetto.
Il giorno prima avevo programmato i pic e non avevo avuto prroblemi.
Inserisco il pic, carico il programma Hex e gli dico di programmare a questo punto si apre una finestra in cui mi chiede se voglio spostare un certo indirizzo io gli dico no e lui (il programma) procede.
Quindi ti posso dire che non faccio calibrazione e non modifico i fuses.
Se desideri ci sentiamo per telefono e lo facciamo in contemporanea davanti allo schermo.
Ciao Walter :geek:
- schunt
- Messaggi: 531
- Iscritto il: giovedì 3 aprile 2014, 8:19
- Nome: Enzo
- Regione: Toscana
- Città: cascina
- Stato: Non connesso
Re: Aiuto coi PIC
Normalmente vengono utilizzati nella robotica e sono molto piu' immediati nella programmazione poiche' nel programma, c'e' la funzione tes con simulazione che ti indica dove commetti l'errore.
Con l'uso del picaxe 20 M ho realizzato la centralina di comando di un PL , della stazione nascosta, mentre con il Picaxe 8 M il comando di alcuni segnali, i fanali di coda lampeggianti a strobe indipendenti.
- MarcoMN
- Socio GAS TT
- Messaggi: 630
- Iscritto il: mercoledì 16 gennaio 2013, 8:54
- Nome: Marco
- Regione: Lombardia
- Città: San Giorgio Bigarello
- Stato: Non connesso
Re: Aiuto coi PIC
Nel frattempo (diciamo stanotte) ho realizzato cosa c'era di sbagliato.
Semplicemente in apparenza il PIC non funzionava bene o sembrava non funzionare per niente.
Invece, avendo rivisto i circuiti uno ad uno, e avendo alternato pic sicuramente funzionanti su altre copie del circuito, ho riscontrato un errore NELLA FORNITURA di una RESISTENZA, commesso nel negozio in cui ho acquistato i componenti che mi mancavano.
Il negoziante mi ha venduto resistenze da 150K OHM mentre il circuito ne richiede 150, si, ma OHM.. Quindi 150 OHM.
Ho scoperto questo perchè alcuni di quei circuiti sono stati realizzati in un primo momento con materiale che avevo già in casa. Per cui, confrontando i valori (codici colore) delle resistenze, ho riscontrato l'anomalia.
<font color="blue">Altra cosa è il discorso programmazione PIC. </font id="blue">
Vanno dette alcune cose, giustamente, allo scopo di rendere utile il topic e, al contempo, approfondire E CERCARE CONFERME di quanto ho auto-appreso.
Premessa: non ho studiato a fondo la materia e mi avvento sull'argomento come mero esecutore della programmazione dei singoli integrati.
Confermo che il programmatore è il K150 e che uso preferibilmente il software "MICROBRN", fonito come sw default dal produttore del programmatore K150.
A parte una prima serie di settaggi a livello di sistema operativo, poi risolti, nonostante alcuni errori che compaiono all'avvio di MICROBRN, il più del lavoro di autoapprendimento è stato quello della programmazione dei FUSES e la CALIBRAZIONE.
Parlo da quasi profano, quindi se qualcuno può successivamente fare chiarezza, per comune utilità, si senta libero di intervenire.
A quanto ho capito c'è un nocciolo fondamentale: utilizzando il PIC 12F675 c'è la possibilità di usare l'oscillatore interno che funziona a 4 Mhz, senza bisogno di creare un circuito nel circuito per il clock se il funzionamento del circuito stesso e il programma che andrà inserito nel PIC ne prevede l'uso.
C'è un però: ogni singolo integrato che esce di fabbrica ha il circuito interno di oscillazione che però non produce una frequenza perfetta di 4 MHz, ma sballa di qualche decimo nel valore.
In fabbrica cosa fanno? Inseriscono un valore nella memoria accessibile del singolo PIC che serve per compensare tale frequenza del valore spurio, eliminando l'incongruenza e facendo uscire dai pin del PIC una frequenza pressochè perfetta di 4 MHz.
Seconda cosa: riguarda un valore simile che però riguarda il voltaggio (non ho capito se di alimentazione interna del PIC o se in uscita). Si chiama BANDGAP. Questo valore, nel software MICROBRN ha 4 impostazioni (LOW | MID-LOW | MID HIGH | HIGH) che corrispondono in termini di bit a ( 00 | 01 | 10 | 11 ).
Non ho ben compreso se questo valore sia effettivamente leggibile dal listato della memoria del PIC inserito nel programmatore o se basta fare la lettura e, andando nel menu FUSES, basta leggere l'impostazione nel menu a tendina relativo al BANDGAP e poi editarlo a programma hex caricato in MICROBRN prima della programmazione PIC.
Circa TUTTE queste impostazioni ho capito (credo) che effettuando la lettura del PIC VUOTO prima di QUALSIASI programmazione o smanettamento, e andando a segnarsi i valori nelle varie impostazioni (indirizzo 03F8 per il valore della calibrazione dell'oscillatore interno ; Fuses ecc...) si possono tenere annotati per poi ESSERE INSERITI NEL PROGRAMMA HEX CHE ANDRA' RIVERSATO IN MEMORIA NEL PIC.
[Ho imparato un sistema per annotare il valore in HEX 8 bit sfruttando i pin del PIC, dato che sono 8. Per questo vi rimando a questo utile LINK . Attenzione: il valore interessante è quello delle ultime due cifre soltanto, perchè 34, resta sempre fisso. Per convertire il valore alfanumerico basta fare due quasi semplici calcoli o avvalersi di un utilissimo convertitore online . Basta avere l'accortezza di impostare a "8 BITS" il menu a tendina vicino al pulsante "CLEAR". COL PENNARELLO SI SEGNANO I PIEDINI, non sui contatti, più su, che diventano 1, mentre lo 0 è il piedino non segnato a pennarello. Successivamente si ricava la lettura, convertendo la stringa di BIT contando sui piedini da 1 a 8, seguendone l'ordine.]
Detto questo ecco la sequenza che ho seguito, con successo, senza avere errori:
[wbf]- inserire PIC vuoto nel programmatore
- effettuare READ
- andare all'indirizzo 03F8 e leggere il valore
- annotare il valore
- aprire i fuses e vedere che BANDGAP è stato impostato in fabbrica (LOW / MID LOW / MID HIGH / HIGH) CHE CORRISPONDONO A (00 / 01 / 10 / 11)
- ANNOTARE lo stato del Bandgap
- caricare il file hex originale DA PROGRAMMARE NEL PIC
- andare all'indirizzo 03F8 e sostituire il valore presente con quello annotato
- controllare che i fuses corrispondono alle impostazioni iniziali di QUEL chip
- modificare, se serve, il valore del BANDGAP, inserendo quello letto all'inizio
- volendo inserire 0FC0 nel campo ID dei FUSES (ID del tipo di PIC ?)
- programmare E DARE oK SE ESCE UN AVVISO[/f]
Fatto questo ho ottenuto sempre il funzionamento dei circuiti, anche nei casi in cui il componente sbagliato era già sostituito ma evidentemente la programmazione non era andata a buon fine.
La cosa strana è che i PIC che non mi funzionavano e che in precedenza erano stati programmati senza leggerne le calibrazioni OSCCAL e BANDGAP, inserendo l'HEX senza modifiche HANNO FUNZIONATO COMUNQUE EGREGIAMENTE !!!
Questa non me la spiego.
O meglio me la spiego se il valore dell'Oscillatore interno non ha tutta questa importanza al fine del funzionamento del progetto VASILE/ROSATTI....
Ultima cosa che non capisco. Anzi due:
1) Come si programma la CONFIG WORD, specialmente tramite MICROBRN (probabilmente viene fatta in automatico, selezionando le varie opzioni dei menu a tendina in FUSES e in CALIB) ?
2) Continuo a non comprendere il significato della tabella dei parametri di configurazione che ha fornito Edgardo, nel post riguardante il circuito che ho realizzato seguendone il progetto...
Aggiunta postuma: Nei FUSES l'unica cosa ceh ho lasciato "ENABLED" è l'impostazione BODEN.
Grazie a chi mi correggerà e farà chiarezza dove dovuto.
- Edgardo_Rosatti
- Socio GAS TT
- Messaggi: 5094
- Iscritto il: venerdì 28 ottobre 2011, 0:59
- Nome: Edgardo
- Regione: Lombardia
- Città: Muggiò
- Età: 60
- Stato: Non connesso
Re: Aiuto coi PIC
Però non vorrei deluderti, in quanto io non sono proprio esperto in materia. I pic li ho usati solo 2 volte; una nel progetto di Vasile che usa il 12F e l'altra per un timer destinato ad un bromografo UV e che usa un 16F.
Se sono riuscito a trasferire il software sui pic è perchè ho smanettato un po' imparando quel poco che serviva per portare a termine il lavoro.
Anche a me comunque all'inizio non funzionava, proprio per l'impostazione del parametro inerente all'oscillatore.
Ora che ci penso, ho fatto un controllo e per il 12F ho usato un altro tipo di programmatore: G540 UNIVERSAL PROGRAMMER.
Questo è il suo software con ancora in memoria i parametri del pic 12F:
G540:
120,04 KB
Qui un riferimento al programmatore:
http://it.aliexpress.com/store/product/ ... 69856.html
In realtà, il programmatore che hai visto nel progetto del servo da te citato in topic, con il 12F non funzionava e ho usato questo.
Mi spiace se posso averti mandato in confusione, ma leggo che alla fine hai risolto e questo mi fa molto piacere.
Per completezza riporto la pagina del datasheet del pic 12F dove sono riportati i parametri "configuration bits" a cui ho fatto riferimento: pag 54 paragrafo 9.1 e che hai usato anche tu.
pag. 54 datasheet 12F:
140,92 KB
E le 4 combinazioni funzionanti che ho sperimentato sul programmatore G540:
Combinazioni:
40,85 KB
Per quanto riguarda il dato presente in 0x03F8 io non l'ho modificato.
Ho realizzato 8 circuiti di questo tipo e 3 sono attualmente funzionanti sul modulo "l'ultimo casello" del modulare, ma era il 2012 e da allora non ho più fatto esperienza con i pic.
Attualmente uso Arduino per praticità, perchè oramai si trova a prezzi stracciati e dispone di una moltitudine di informazioni per fare di tutto.
Non voglio dire cosa sia meglio o peggio e non è questa la sede per farlo.
In fondo esistono tante soluzioni per risolvere problemi

Ciao
- MarcoMN
- Socio GAS TT
- Messaggi: 630
- Iscritto il: mercoledì 16 gennaio 2013, 8:54
- Nome: Marco
- Regione: Lombardia
- Città: San Giorgio Bigarello
- Stato: Non connesso
Re: Aiuto coi PIC
Il tuo programmatore ha un software molto valido.
Ti consente infatti di visualizzare una parte degli indirizzi di memoria che con altri sw, vedi MICROBRN, non puoi visualizzare.
Poi mi sembra molto più chiaro nella gestione della configword.
Grazie del confronto.
Se qualcun'altro vuole precisare o smentire qualcosa... siamo qui

- buddacedcc
- Messaggi: 485
- Iscritto il: martedì 4 dicembre 2012, 21:37
- Nome: Epifanio
- Regione: Piemonte
- Città: Torino
- Stato: Non connesso
Re: Aiuto coi PIC
Il problema nasce dal fatto che al momento dell'alimentazione del pic, da parte del programmatore, va in esecuzione prima il programma/firmware interno al pic e di conseguenza non si riesce riprogrammare e a sua volta in fase di verifica viene segnalato un fallimento
- buddacedcc
- Messaggi: 485
- Iscritto il: martedì 4 dicembre 2012, 21:37
- Nome: Epifanio
- Regione: Piemonte
- Città: Torino
- Stato: Non connesso
Re: Aiuto coi PIC
Inoltre i FUSES o "configuration bits" quando si scarica un compilato non vanno toccati, salvo diversa indicazione, in quanto si rischia di alternare pesantemente il funzionamento del tutto.
Normalmente un programmatore capace annega la configurazione dei fuses dentro il compilato.
- Edgardo_Rosatti
- Socio GAS TT
- Messaggi: 5094
- Iscritto il: venerdì 28 ottobre 2011, 0:59
- Nome: Edgardo
- Regione: Lombardia
- Città: Muggiò
- Età: 60
- Stato: Non connesso
Re: Aiuto coi PIC
lo dico senza vergogna perchè è così.
In qualsiasi caso grazie delle utili info Nuccio

- MarcoMN
- Socio GAS TT
- Messaggi: 630
- Iscritto il: mercoledì 16 gennaio 2013, 8:54
- Nome: Marco
- Regione: Lombardia
- Città: San Giorgio Bigarello
- Stato: Non connesso
Re: Aiuto coi PIC
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Aiuto coi PIC
http://www.instructables.com/id/DIY-1-P ... -and-Easy/
come software il PICPgm, il pic viene riconosciuto in automatico, si riesce a leggere, cancellare, haime

Programming started ...
Verify Error: Code Mem 0x000000: PIC=0x3FFF Buf=0x2804
Verify Error: Code Mem 0x000008: PIC=0x3FFF Buf=0x3001
Verify Error: Code Mem 0x00000A: PIC=0x3FFF Buf=0x1303
Verify Error: Code Mem 0x00000C: PIC=0x3FFF Buf=0x1683
Verify Error: Code Mem 0x00000E: PIC=0x3FFF Buf=0x009F
Verify Error: Code Mem 0x000010: PIC=0x3FFF Buf=0x300B
Verify Error: Code Mem 0x000012: PIC=0x3FFF Buf=0x0085
Verify Error: Code Mem 0x000014: PIC=0x3FFF Buf=0x3028
Verify Error: Code Mem 0x000016: PIC=0x3FFF Buf=0x00A0
Verify Error: Code Mem 0x000018: PIC=0x3FFF Buf=0x3000
Verify Error: Too much errors in Code Mem, giving up!
Verify Error: Cfg Mem 0x00000E: PIC=0x21FF Buf=0x3FD4
Programming finished with verify errors!
Finished in 500.0 seconds!
il file .hex che provo ad inserire è quello citato di Vasile
Ho fatto svariate prove ma, sempre gli stessi errori.
Essendo la prima volta che mi cimento a programmare Pic, non avendo esperienza, chiedo umilmente aiuto [:I]
- Digtrain
- Messaggi: 1621
- Iscritto il: giovedì 20 dicembre 2012, 23:47
- Nome: Walter
- Regione: Lombardia
- Città: Casarile
- Stato: Non connesso
Re: Aiuto coi PIC

purtroppo (o per fortuna

Sono già un paio d'anni che lo uso insieme al programma Microburn e ad oggi non ho mai avuto problemi.
Proprio lo scorso mese ho programmato 4 pic 12F675 con l'Hex di Vasile per Jack94 ( Giacomo socio CMP).
Su eBay Cina i prezzi variono da 8 a 15 euro comprese le spese di spedizione.
Io mi servo spesso dal venditore gc_supermarket, dove costa circa 8,50 dollari e aggiungendo 3 dollari ti fa la spedione tracciata.
Ciao Walter :geek:
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Aiuto coi PIC
Digtrain ha scritto:
Ciao Salvatore,![]()
purtroppo (o per fortuna) non ho le competenze necessarie per individuare la natura degli errori, però posso consigliarti l'acquisto del programmer K150 in Cina.
Sono già un paio d'anni che lo uso insieme al programma Microburn e ad oggi non ho mai avuto problemi.
Proprio lo scorso mese ho programmato 4 pic 12F675 con l'Hex di Vasile per Jack94 ( Giacomo socio CMP).
Su eBay Cina i prezzi variono da 8 a 15 euro comprese le spese di spedizione.
Io mi servo spesso dal venditore gc_supermarket, dove costa circa 8,50 dollari e aggiungendo 3 dollari ti fa la spedione tracciata.
Ciao Walter :geek: