P
I C - A P P U N T
I D
I
U T I L I Z Z O
Il programmatore
Per poter programmare un PIC occorrono fondamentalmente tre cose:
Programmatore
Ciascuno presenta vantaggi e svantaggi, in ogni caso comunque i requisiti hardware indispensabili per ogni programmatore "serio" sono la capacita' di fornire le due tensioni stabilizzate necessarie (5V per la Vcc e 12..14V per la Vpp) e la presenza di un bus I2C a livelli TTL per il dialogo con il PIC. Esistono alcuni programmatori ultrasemplificati (spesso senza alimentazione esterna) che permettono di programmare pochi tipi di PIC se non uno solo, per esempio il 16F84 ma non il 16F84A. In questo caso la colpa non e' dei PIC "duri" da programmare come qualcuno sostiene, ma dei programmatori che lavorano completamente fuori specifica e in qualche caso riescono a funzionare solo per pura fortuna affidandosi alle tolleranze (e alla resistenza allo stress) dei PIC stessi. Infatti attenendosi rigorosamente ai requisiti visti prima non esiste niente di simile a un PIC "duro", se sono richiesti da 12 a 14V per la tensione di programmazione Vpp, non ci si puo' lamentare se dandone solo 10 non si riesce a programmarlo... Il circuito che segue, che ho chiamato "minipropic2 clone", e' un programmatore alimentato non intelligente per porta parallela. E' una personale rielaborazione e semplificazione di altri schemi free disponibili in rete, in particolare del propic2 clone di Lorenzo Lutti, ed e' composto solamente da 1 integrato, 7 resistenze e 2 transistor. Sono presenti solo i circuiti strettamente indispensabili per una corretta programmazione: +5V e +13,2V controllati tramite transistor interruttori, e un bus I2C (con linea di clock e linea dati bidirezionale) . I terminali sulla sinistra vanno collegati alla porta parallela del PC (sono riportati i numeri dei pin e i nomi dei segnali). I 5 terminali sulla destra sono invece da collegare ai diversi chip secondo gli schemi riportati di seguito. Una soluzione economica per programmare piu' tipi di PIC e' quella di costruire una basetta con montati tutti i diversi tipi di zoccolo, collegando assieme i vari Vpp Vcc SCK SDA GND. E'invece sconsigliato usare un unico zoccolo ZIF su cui portare i segnali in modo da corrispondere ai pin di programmazione e alimentazione di tutti i tipi di PIC, perche' in questo caso si rischia di portare delle tensioni su dei pin che dovrebbero invece rimanere scollegati.
Per il corretto funzionamento del programmatore e' necessario usare un SN7407 o un SN74LS07. Le versioni cmos 74HC e 74HCT potrebbero invece non funzionare a causa della presenza di diodi interni collegati al positivo dell'alimentazione.
Nelle
foto si possono vedere gli zoccoli multipli per
accettare piu' tipi di
PIC e il circuito
interno assemblato su millefori. Agli
zoccoli sono stati asportati tutti i pin non
indispensabili, in modo da
ridurre al minimo la forza di inserzione e lo sforzo
sui pin del PIC.
Nella foto di destra si nota un trimmer
multigiri azzurro non presente nello schema, la foto
si riferisce
infatti ad un prototipo molto simile che prevedeva
uno stabilizzatore
regolabile. La soluzione qui proposta evita invece
ogni tipo di
taratura e ogni problema di "deriva" del
trimmer. Anche se nelle
foto i regolatori di tensione sono dotati di alette
di raffreddamento
queste non sono affatto necessarie vista l'esigua
corrente richiesta.
Il cavo flat che collega il programmatore agli
zoccoli deve essere
lungo al massimo una decina di cm, questo vale anche
nel caso che detto
cavo venga usato per la programmazione in-circuit
(ICSP).
Software
di programmazione
Per adesso il funzionamento e' stato testato con Windows98 con i PIC 12F675, 16F84A, 16F628, 16F873, 16F876, 16F877 e 18F452, verificando anche la capacita' del programmatore di cancellare i chip protetti contro la lettura. Con Windows XP e' necessario installare il driver icprog.sys come indicato nella pagina: http://filrub.altervista.org/wp/?p=10 Non tutti i tipi di pic sono pero' risultati programmabili, in particolare sul mio programmatore non funziona piu' la programmazione dei seguenti PIC: 16F84A, 16F873, 16F876 e 16F877. Altre persone mi hanno comunque comunicato che a loro invece con ic-prog funziona tutto perfettamente. Ulteriori
informazioni
Usando questi due
programmi free,
e
costruendo
questo programmatore, si dispone di un completo
sistema di sviluppo
piu'
che adatto per usi non professionali, non velocissimo
ma sicuramente
funzionante,
completamente free ed economico. Altri siti in cui viene
trattato
questo programmatore (o sue piccole varianti) con
tanto di circuito
stampato, consigli sull'utilizzo e applicazioni molto
interessanti:
Nella lista dei programmatori supportati non compare il propic2, ma basta andare su "interfaccia" e selezionare: "Tait, 7407(driver)+ transistor PNP", il cui circuito e' quasi del tutto identico (d'altra parte tutti i programmatori ridotti all'osso finiscono per forza di cose con l'essere praticamente uguali). Anche con WinPic alcuni PIC sono risultati utilizzabili e altri no, in particolare in questo caso riesco a programmare il 16F84A e il 16F877, ma non il 18F452, mentre i 16F873 e 876 in versione non A non sono supportati. Un software piu' recente e decisamente meglio funzionante si puo' trovare in versione beta sul sito www.melabs.com Si chiama MeProg ed e' molto piu' veloce degli altri nella programmazione dei chip. Il suo uso richiede pero' una piccola modifica al circuito del programmatore come riportato nello schema seguente, si tratta in sostanza di interrompere il segnale proveniente dal pin 6 della parallela quando si vuole usare MeProg.
|