PDA

Visualizza la versione completa : [GUIDA TECNICA] Programmatore PIC



frabbe
07/04/2010, 19:41
Posto qui lo schema elettrico di un economicissimo programmatore per PIC trovato tempo fa su internet e testato da me con grande successo: lo utilizzo ormai da un paio d'anni e non ha mai dato nessun problema!

40785

Come potete vedere dall'immagine, lo schema è molto semplice e può essere realizzato senza nessuna difficoltà su una basetta millefori. La porta seriale deve essere necessariamente femmina per poter utilizzare nel collegarla al computer i comuni cavi seriali maschio/femmina.

Ecco la lista componenti:

1 connettore DB9 femmina da circuito stampato
1 resistenza 1K5 1/4W
1 resistenza 10K 1/4W
2 condensatori elettrolitici 100uF 16V
4 diodi 1N4148
1 diodo zener da 6.2V
1 diodo zener BZV55C5V1
1 diodo led
2 transistor BC337
1 zoccolo per IC da 14 pin
eventuali altri zoccoli per PIC di differenti dimensioni

Le connessioni sulla destra sono quelle che vanno allo zoccolo del PIC e seguono il cosiddetto standard ICSP. Riporto uno schema che illustra i sei segnali previsti dal protocollo (i numeri corrispondono alllo schema elettrico precedente):

40786

In generale, praticamente tutti i PIC più utilizzati seguono questo protocollo, per cui virtualmente tutti possono essere programmati con questo programmatore. Quello che cambia è la connessione con lo zoccolo, perchè ogni famiglia di PIC ha i segnali ICSP assegnati a piedini diversi :)

Nel caso della famiglia 16F, di cui fa parte il 16F684 utilizzato per realizzare la MDT di cui si parla in questo forum, questi sono i collegamenti da effettuare:

Protocollo ICSP -> Zoccolo del PIC
Pin 1 MCLR -> Pin 4 del PIC (MCLR/VPP)
Pin 2 VDD -> Pin 1 (VDD/+5V)
Pin 3 GND -> Pin 14 (GND/VSS)
Pin 4 PGD -> Pin 13 (DATA)
Pin 5 PGC -> Pin 12 (CLOCK)
Pin 6 PGM -> Non collegato

A breve postero anche i collegamenti per altre famiglie di PIC, in particolare la 18F.

Nell'esemplare che ho costruito, molto semplicemente ho saldato sulla millefori diversi zoccoli di misura diversa per i vari PIC, ed ho effettuato tutti i collegamenti tra gli zoccoli ed il programmatore in parallelo tra loro.

Lo scambio dati tra il programmatore ed il computer avviene secondo lo standard JDM,supportato dalla maggior parte dei software di programmazione per PIC ed in particolare da WinPic 800, il software freeware da me utilizzato. E' sufficiente configurare il programma nella scheda Configurazione -> Hardware, scegliendo il tipo di programmatore JDM e la porta COM utilizzata.

neo-xabaras
07/04/2010, 21:36
ma scusa io sul pc non ho una seriale si può adattare con una usb?

Goliath
07/04/2010, 21:41
ma scusa io sul pc non ho una seriale si può adattare con una usb?

Purtroppo non si può adattare all'USB dato che porta COM e USB comunicano in maniera diversa. Quindi, a questo punto, o acquisti un programmatore per PIC USB oppure acquisti un convertitore USB->RS232 che ti viene a poco (quest'ultima opzione è la più consigliata).

neo-xabaras
07/04/2010, 21:46
ok allora per la seconda, oppure cerco nei miei rottami se trovo una scheda con una seriale

Goliath
07/04/2010, 21:50
ok allora per la seconda, oppure cerco nei miei rottami se trovo una scheda con una seriale

O l'una o l'altra delle cose che dici è più che ottima come soluzione e te la cavi anche con poco :D

neo-xabaras
07/04/2010, 22:02
adattatore parallela - seriale funziona?

Goliath
07/04/2010, 22:11
adattatore parallela - seriale funziona?

se fa vedere al PC la parallela come una seriale ok altrimenti niente..

frabbe
07/04/2010, 22:57
La cosa migliore sarebbe una scheda con una porta seriale da aggiungere nel computer... io ho provato con un adattatore USB<->seriale ma non funziona... purtroppo la maggior parte di questi adattatori sono unidirezionali, convertono da USB a seriale ma solo i segnali che vanno dal PC verso la periferica esterna.

Goliath
07/04/2010, 22:59
La cosa migliore sarebbe una scheda con una porta seriale da aggiungere nel computer... io ho provato con un adattatore USB<->seriale ma non funziona... purtroppo la maggior parte di questi adattatori sono unidirezionali, convertono da USB a seriale ma solo i segnali che vanno dal PC verso la periferica esterna.

Io ne ho uno di questi convertitori e funziona tranquillamente

frabbe
07/04/2010, 23:04
Bho... allora ne ho beccato uno sfigato io :(

Goliath
07/04/2010, 23:54
Bho... allora ne ho beccato uno sfigato io :(

Non te lo so dire ma so per certo che son fatti apposta questi convertitori per simulare una porta COM al 100% su di una USB..

frabbe
08/04/2010, 19:05
Per quanto riguarda la programmazione degli altri PIC, riporto uno schemino con i collegamenti per gli zoccoli di varie dimensioni:

40955

I nomi dei segnali riportati nello schema differiscono leggermente da quelli indicati nel primo post, ma ecco una tabellina con le corrispondenze:

Segnale ICSP -> Segnale nello schema
Pin 1 MCLR -> VPP
Pin 2 VDD -> VDD
Pin 3 GND -> GND
Pin 4 PGD -> DATA
Pin 5 PGC -> CLK
Pin 6 PGM -> PGM (sempre collegato allo zoccolo attraverso una resistenza)

frabbe
08/04/2010, 19:14
Visto che mi sono state richieste, posto anche qualche fotografia del mio prototipo. Come si vede, il tutto è realizzato su una semplice basetta millefori; per la porta seriale, ho utilizzato un modello da circuito stampato, incollato capovolto in un angolo della scheda così da poter saldare facilmente i pin. Naturalmente, se si pensa di alloggiare il circuito all'interno di una scatola, è forse più pratico utilizzare un modello da pannello.

40983 40984 40985

Cliccate sulle foto per ingrandirle

Scusate la bruttezza delle immagini, ma sono foto scattate con il cellulare ;-)

Goliath
08/04/2010, 19:20
Ottimo lavoro frabbe!! davvero complimenti e grazie per aver postato schemi e foto del tuo lavoro!!! :)

Alessio326
24/04/2010, 16:31
emh... posso avere un elenco dei pezzi?

andreamarz
24/04/2010, 18:34
Primo post ;-)

Alessio326
24/04/2010, 18:52
dove? non l'ho visto :ops:
sono scritti solo i collegamenti

andreamarz
24/04/2010, 19:04
Sullo schema elettrico ci sono scritti componenti e valori

Alessio326
24/04/2010, 19:28
ecco... non è che ne capisca moltissimo, infatti raccolgo informazioni per un amico troppo impegnato

frabbe
24/04/2010, 20:11
Ho modificato il post iniziale, riportando subito dopo lo schema elettrico la lista dei componenti

Goliath
25/04/2010, 10:19
Ho modificato il post iniziale, riportando subito dopo lo schema elettrico la lista dei componenti

Ottimo frabbe! Bel lavoro come sempre! ;)

neo-xabaras
18/05/2010, 22:32
help, credo di aver realizzato il programmatore in maniera corretta ma non riesco a programmare la pic. uso winpic800, carico il file hex. imposto la tipologia della pic. se clicco su "programma" mi da errore. se prima "leggo" poi "programmo" mi da tutto ok ma non si accende mai il led del programmatore. che devo fare? come posso verificare di aver realizzato correttamente il programmatore?

allego immagine
http://i47.tinypic.com/10s63xy.jpg

frabbe
19/05/2010, 11:35
Ciao! Le impostazioni che vedo dall'immagine mi sembrano corrette...

1) Nel menu di configurazione -> hardware hai impostato il tipo di programmatore come "JDM" ?

2) Hai testato la comunicazione con il programmatore dall'apposito tasto, quello che sembra una spina subito sotto ai pulsanti di programmazione e lettura? Che risultato da?

neo-xabaras
19/05/2010, 11:54
1- impostato JDM e com corretta
2- fatto tutti i test, tutti con esito positivo, mezzogiorno riprovo a casa dove ho la seriale e ti divo il messaggo esatto quindi dovrebbe essere ok

non so se ci sono altre impostazioni software. il led si deve accendere in fase di test?
invece in merito alla procedura?
io apro il file MDT, imposto i dati della pic in alto a destra, poi cosa devo fare? io di solito faccio "leggi tutto" (freccia averde), poi "programma tutto" (freccia rossa) e "verifica tutto" (v gialla). ad ogni operazione ottengo barre di avanzamento di colore diverso ma sempre un messaggio positivo alla fine. se salto il primo passaggio (leggi tutto) mi da l'errore che vi ho postato.

scusatemi tanto la nubbiaggine ma è la prima volta.

p.s. quando faccio leggi tutto il codice a video cambia tutto in FFF FFF FFF ecc

frabbe
19/05/2010, 12:03
Guarda in generale la procedura è questa:
> imposti il tipo di PIC in altro a destra (come hai già fatto)
> clicchi il tasto "DEV" per verificare che il PIC venga rilevato correttamente... dovrebbe darti il modello giusto
> apri il file HEX
> cancelli il PIC
> scrivi il PIC con "programma tutto"
> alla fine fai la verifica con l'apposito tasto

Durante tutte le operazioni di accesso al PIC (sia lettura che scrittura) il led sul programmatore deve lampeggiare, a volte così velocemente che sembra acceso fisso; la lettura del PIC deve semplicemente portare alla compilazione della schermata con il codice, senza dare nessun errore.

Se gli errori continuano ti consiglio di provare con un altro PIC: quello che usi potrebbe essere bruciato; altrimenti è il programmatore.

neo-xabaras
19/05/2010, 12:12
scusami cosa vuol dire "cancelli il pic"?

ok ok credo di aver capito. scusami hehehe
mi sa che quando faccio "dev" mi da sconosciuto ... non so se è il programmatore o la pic... mi sa che devo rifare tutto heheheh

frabbe
19/05/2010, 12:14
Significa cancellarne il contenuto utilizzando il tasto con la X rossa in alto a destra... è solo una precauzione, perchè viene comunque cancellato in automatico prima di ogni operazione di scrittura, però comunque male non fa vista la situazione..

neo-xabaras
19/05/2010, 14:38
apro file
http://i48.tinypic.com/2q3bss9.jpg
leggo tutto
http://i48.tinypic.com/28ssqd1.jpg
clicco ok
http://i46.tinypic.com/29yqiwz.jpg
puff tutto a ZERO !!
impostazioni
http://i47.tinypic.com/293aydi.jpg
controllo dev
http://i48.tinypic.com/3160rwl.jpg
help, avete suggerimenti?

frabbe
19/05/2010, 16:31
Allora... qui abbiamo due problemi diversi:

Il primo, più semplice, è la procedura sbagliata: se vuoi programmare il PIC non devi leggerlo; carichi il file come hai già fatto poi lo programmi senza leggerlo, altrimenti come ti è capitato si azzera tutto nella vista del codice...

Il secondo invece emerge dall'ultima schermata che hai pubblicato, in particolare dalle scritte "rilevato -> sconosciuto" e "DEV ID -> 0x0000", mentre se tutto funziona bene deve darti "rilevato -> 16F684" e "DEV ID -> 0x1234" (un numero qualunque diverso da 0); dunque qualcosa non sta funzionando a livello di hardware... Dovresti provare ad utilizzare un nuovo PIC e provare ad identificarlo: senza fare tutti i passaggi indicati prima, basta che spingi il tasto "DEV" con una grossa freccia verde verso destra. Molto probabilmente stai usando un PIC bruciato. Se fa la stessa cosa con diversi PIC hai qualcosa non va nel programmatore... ed a quel punto cerchiamo una soluzione!

Tienimi aggiornato!

neo-xabaras
19/05/2010, 16:34
il problema è recuperare la pic... abbiamo aspettato un mese per averne una ... se la prendo su internet è un po' antieconomica perchè prenderei solo quella. stasera ripasso tutto il programmatore con il tester per vedere che sia tutto ok eventualmente poi sento il negoziante per la pic
cmq grazie 1000 per i consigli

curiosità posso averla bruciata io la pic? esiste un ordine preciso per collegare il programmatore al pc? io ho montato la pic e ho collegato il programmatore a pc acceso

frabbe
19/05/2010, 17:09
di nulla!

neo-xabaras
22/05/2010, 00:16
ho ricontrollato tutto il circuito, è come da schema ... purtroppo credo che sia la pic. lo schema è certamente corretto vero ?:Ddevo fare qualcosa di particolare come impostazione per la com del pc?

neo-xabaras
28/11/2010, 12:01
dopo mille prove, a questo punto, credo ci siano problemi di assemblaggio sto pensando di rifare tutto... inoltre ... ho montato anche il box arbitro (abbastanza semplice) ho programmato la pic e nulla anche quello.
i miei dubbi sono 2 : possibile che sia sfigato con le pic? possono funzionare parzialmente? oppure, altra possibilità, che abbia sbagliato qualcosa con il programmatore ... che ne dite può essere una possibilità? come posso vedificare eventuali errori?

frabbe
28/11/2010, 12:48
Se non ti funziona neppure il box arbitro sicuramente il PIC non è programmato correttamente... o il chip è bruciato oppure non sta funzionando il programmatore... per sapere se si tratta di quest'ultimo caso puoi provare a leggere i dati del PIC come scritto in uno dei post precedenti, devi riuscire a leggere il modello ed il codice del PIC. Se continua a darti "sconosciuto" ed hai configurato correttamente il programmatore (e per fare questo è sufficiente impostare nella configurazione del programma JDM e la porta COM giusta) questo non funziona, se invece riesci a leggere questi dati al 99% il programmatore va... come porta seriale ne stai usando una "reale", la porta seriale della scheda madre, e non un adattatore USB, vero?

neo-xabaras
29/11/2010, 18:18
Posto qui lo schema elettrico di un economicissimo programmatore per PIC trovato tempo fa su internet e testato da me con grande successo: lo utilizzo ormai da un paio d'anni e non ha mai dato nessun problema!

40785

Come potete vedere dall'immagine, lo schema è molto semplice e può essere realizzato senza nessuna difficoltà su una basetta millefori. La porta seriale deve essere necessariamente femmina per poter utilizzare nel collegarla al computer i comuni cavi seriali maschio/femmina.

Ecco la lista componenti:

1 connettore DB9 femmina da circuito stampato
1 resistenza 1K5 1/4W
1 resistenza 10K 1/4W
2 condensatori elettrolitici 100uF 16V
4 diodi 1N4148
1 diodo zener da 6.2V
1 diodo zener BZV55C5V1
1 diodo led
2 transistor BC337
1 zoccolo per IC da 14 pin
eventuali altri zoccoli per PIC di differenti dimensioni

Le connessioni sulla destra sono quelle che vanno allo zoccolo del PIC e seguono il cosiddetto standard ICSP. Riporto uno schema che illustra i sei segnali previsti dal protocollo (i numeri corrispondono alllo schema elettrico precedente):

40786

In generale, praticamente tutti i PIC più utilizzati seguono questo protocollo, per cui virtualmente tutti possono essere programmati con questo programmatore. Quello che cambia è la connessione con lo zoccolo, perchè ogni famiglia di PIC ha i segnali ICSP assegnati a piedini diversi :)

Nel caso della famiglia 16F, di cui fa parte il 16F684 utilizzato per realizzare la MDT di cui si parla in questo forum, questi sono i collegamenti da effettuare:

Protocollo ICSP -> Zoccolo del PIC
Pin 1 MCLR -> Pin 4 del PIC (MCLR/VPP)
Pin 2 VDD -> Pin 1 (VDD/+5V)
Pin 3 GND -> Pin 14 (GND/VSS)
Pin 4 PGD -> Pin 13 (DATA)
Pin 5 PGC -> Pin 12 (CLOCK)
Pin 6 PGM -> Non collegato

A breve postero anche i collegamenti per altre famiglie di PIC, in particolare la 18F.

Nell'esemplare che ho costruito, molto semplicemente ho saldato sulla millefori diversi zoccoli di misura diversa per i vari PIC, ed ho effettuato tutti i collegamenti tra gli zoccoli ed il programmatore in parallelo tra loro.

Lo scambio dati tra il programmatore ed il computer avviene secondo lo standard JDM,supportato dalla maggior parte dei software di programmazione per PIC ed in particolare da WinPic 800, il software freeware da me utilizzato. E' sufficiente configurare il programma nella scheda Configurazione -> Hardware, scegliendo il tipo di programmatore JDM e la porta COM utilizzata.

domandone, ma quando mettete il disegno della pic si riferisce alla pic vista dall'alto giusto? dall'altro sopra la basetta, quindi i collegamenti sotto sono speculari giusto?

frabbe
29/11/2010, 18:35
Si, negli schemi elettrici i circuiti integrati si disegnano sempre da sopra, quindi tutte le saldature sotto la basetta sono speculari... non avrai montato il PIC al contrario???

neo-xabaras
29/11/2010, 18:42
no... alemno credo... la basetta e la pic hanno un incavo tondo che deve combaciare e si riferisce alla parte alta giusto?

---------- Post added at 18:42 ---------- Previous post was at 18:41 ----------

il dubbi può essere il collegamento ICSP ... stasera faccio il test che mi hai detto

frabbe
29/11/2010, 18:44
si esatto... la numerazione dei piedini inizia dall'angolo in alto a sinistra tenendo l'incavo nella parte alta, quindi esattamente dalla sinistra dell'incavo.

---------- Post added at 18:44 ---------- Previous post was at 18:42 ----------

Per controllare lo schema ti consiglio di aiutarti anche con le foto che ho postato più indietro... si vedono abbastanza bene i collegamenti.

neo-xabaras
29/11/2010, 18:46
per la seriale stesso discorso? non ricordo se ci sono scritti i numerini ma cmq è sempre vista dal davanti?

frabbe
29/11/2010, 18:52
si sempre dal davanti... cmq ci dovrebbero essere scritti i numeri, anche se un po' piccoli ;)

frabbe
30/11/2010, 16:51
Il fatto che riesca a leggere i PIC fa capire che almeno il circuito riceve alimentazione ma funziona solo in parte... a questo punto, escludendo errori di montaggio visto che ormai avrai ricontrollato lo schema molte volte, rimangono solamente tre possibilità:
1) problemi di collegamento con il PC, molto probabile se utilizzi un adattore da USB a seriale, praticamente impossibile se la porta COM è direttamente sulla scheda madre
2) qualche componente difettoso
3) una o più saldature "fredde" per cui alcuni collegamenti potrebbero essere interrotti

neo-xabaras
02/12/2010, 09:54
ci siamo frabbe !!! ho sostituito i diodi e ... funziona tutto. in realtà funzionava anche prima ma forse non al 100%. comunque ho provato a rilevare le pic OK
ho letto le pic e mi riconosce se sono vuote o no
ho programmato la pic
ho provato a cancellarla
diciamo che adesso ci siamo

che dire grazie mille

frabbe
02/12/2010, 10:06
Grande! Allora erano veramente dei componenti sbagliati... strano che prima, con i componenti errati, in parte funzionasse lo stesso... comunque a questo punto non facciamoci troppe domande... stappiamo una bottiglia e brindiamo!! :D

Kenoby
11/04/2011, 22:17
Ho costruito il programmatore però nella programmazione mi da il seguente errore:
Errore-> scrittura indirizzo 0 x000000 scritto 0 x2827 letto 0 x3FFF
Ho controllato il circuito e, a parte un errore di saldatura già corretto, sembra ok.
Dal programma winpic800 ho fatto il test harware e mi da ok, ho usato il comando DEV e mi da questo messaggio:
Apertura...com1
rilevato--->sconosciuto
Dev id -->0 x3FFF
100% avanzamento
clock-4us cpu-2079

Ho provato anche con un secondo pic ma ho lo stesso errore.
Durante la programmazione il led lampeggia velocemente.

neo-xabaras
12/04/2011, 09:25
ma usi una porta seriale o un adattatore?

Kenoby
12/04/2011, 17:37
Seriale della scheda madre

neo-xabaras
12/04/2011, 18:23
mi sa che qui serve qualcuno di più esperto ... frabbe !!! goliath !!! se può esserti di aiuto per incavolarti di più ... a me funziona tutto ^_^

Kenoby
13/04/2011, 17:36
Problema risolto questa mattina.
Mi sono svegliato e prima di andatre al lavoro l'ho controllato di nuovo e...
Ho trovato l'errore ed ora funziona.
Ho programmato il box arbitro senza problemi, l'ha riconosciuto e programmato senza problemi.
Come al solito era un errore di stagnatura.
Grazie per le info.
Controllare, controllare, controllare, contr....

neo-xabaras
13/04/2011, 18:35
aaaaaaaaaaaaaaaaaaaaghhhh meglio così ... anch'io ci ho sbattuto la testa mille volte :D