Easy Timer-PWM
Questa semplice realizzazione, davvero alla portata di chiunque, è in grado di risolvere praticamente tutte le problematiche di eventi temporizzati. La versione Base qui presentata è fornita come ritardo alla disinserzione, ma con semplici modifiche software, e un pizzico di "stravaganza" Hardware si può trasformare in qualsiasi cosa.
Personalmente l'ho sviluppata per diseccitare la marcia di un motore DC di media taglia controllato in PWM in maniera temporizzata, ma il circuito lo ho poi adattato al funzionamento come "luci scale" per il controllo di nuove potenti plafoniere a LED in cui il PWM, con la frequenza un po' riadattata, fungesse da controllo dell'intensità luminosa.
Contestualmente Al presente progetto viene pubblicato un episodio, in aticipo sui tempi del noto tutorial "Let's Go PIC!!!". Si tratta più che altro di una guida alla configurazione della piattaforma Micro-GT PIC verstaile I.D.E. per un processore diverso da quello di riferimento. Per questo motivo l'episodio viene presentato come numero 8 dato che il 6 (I segnali analogici) e il 7 (gli interrupt) sono ancora in fase di sviluppo.
Let's GO PIC
Configurazione della Micro-GT PIC versatile IDE per il processore a 18 pin.
L'obbiettivo è quello di creare un circuito "sempre valido" che permetta anche a chi non si intende molto di programmazione di entrare, almeno come utente, nel mondo dei PIC. Farò una descrizione dettagliata dei comandi software, tuttavia metterò a disposizione una serie di compilati ".hex" che abbiano le diverse temporizzazioni, così che il non esperto si possa scegliere quella più congeniale per flaschare il PIC ed ottenere la funzionalità desiderata.
Il circuito, nella versione base, si compone di cinque stadi:
Il disegno CAD del PCB è stato sviluppato sia in FidoCad che in Eagle, ma la realizzazione, al fine di minimizzare i costi, è stato realizzato solo homemade a partire dal disegno FidoCad.
La forma d'onda rettangolare a Duty cycle variabile, nota come PWM, è generata dal noto circuito integrato NE555.
Come si vede dalle immagini si tratta di un circuito integrato di tipo "dual in line" a 8 pin, il cui footprint lo troverete nella libreria di FidoCad sotto al nome "IC DIL WIDE PADS" ovvero piazzole ampie.
Internamente è costituito dalle seguenti sezioni:
Internamente possiamo osservare il noto schema nella prossima immagine:
Esternamente al circuito integrato NE555, vanno collegate delle configurazioni tipicamente resistive-capacitive aventi lo scopo di creare delle costanti di tempo utili alla creazione delle azioni astabili o monostabili tipiche di questo integrato.
La porta logica che vede e' in realta' una AND e non una OR, per ragioni grafiche ho inserito quella. Nel prossimo schema vedrete quella corretta.
Tali configurazioni sono note e didattiche, quindi reperibili in qualsiasi libro di testo, facciamo comunque una breve discussione a partire dall'immagine sottostante che rappresenta lo schema di un astabile che produce un'onda quadrata al pin 3.
Vediamo come risultano collegati i componenti esterni esterni alla circuiteria interna allo scopo di capire la generazione dell'oscillazione astabile.
All'accensione il condensatore C1 (supposto inizialmente scarico) inizia la fase di carica con la classica curva, a una velocita' dipendente dalla costante di tempo Tau1, composta da (R1+R2)*C1. La tensione ai capi del condensatore C1 e rilevata dai comparatori interni collegati come in figura tramite i pin 2 e 6 in corto tra di loro.
Dato che il partitore resistivo interno presenta tensioni fisse e non nulle gia' al momento dell'accensione viene generato un segnale di set per il FLIP FLOP interno che porta l'uscira Q al pin 3 alta accendendo il LED.
Quando la tensione arriva a 1/3 Vcc al primo transito viene spento il segnale di SET dato che il comparatore e' collegato con l'ingresso invertente mentre il secondo comparatore e' sotto la soglia di intervento, in questa condizione l'uscita del FLIP FLOP rimane invariata. Questa e' la fase di "latch" o di mantenimento dell'onda d'uscita al livello alto.
Quando la tensione raggiunge i 2/3 Vcc il secondo comparatore scatta portando la sua uscita alta, ma non ci sara' alcun effetto se il pin 4 non e' esternamente abilitato, ovvero a +Vcc. In questo caso l'uscita della porta logica va alta e avviene la commutazione del Flip Flop dato che e' stato generato il segnale di RESET.
Avviene lo spegnimento del LED.
Quando l'uscita del Flip Flop va alta viene pilotato il transistor interno che permettera', al condensatore C1 di cominciare la fase di scarica, ma con una costante di tempo diversa dato che la resistenza R1 si trova esclusa dal circuito in questione, quindi si ha Tau2 = R2*C1 diversa da Tau1.
La tensione comincia quindi a scendere secondo la caratteristica curva di scarica del condensatore, di coseguenza l'uscita del secondo comparatore e' alta soloper il tempo di intervento del transistor generando semplicemente un impulso genericamente chiamato "trigger".
Quando la curva di scarica raggiunge il valore 1/3 Vcc interviene il comparatore più in basso, generando un nuovo impulso di set che riaccende il LED.
L'azione astabile si perpetua quindi tra i valori di tensione 1/3Vcc e 2/3Vcc.
Da notare e' la presenza del condensatore sul piedino 5 verso la massa. Questo pin e' internamento collegato alla soglia di tensione 2/3 Vcc e può servire per il monitoraggio da pare di altri dispositive, anche un canale analogico di un microprocessore da usarsi in comparazioe tramite un alro canale analogico o capture e compare, ad esempiocon i pin 2 o 6, o entrambi quando posti in corto circuito come nell'esempio in questione. Quando questopiedino viene lasciato libero e' bene collegarlo ad un condensatore, compreso tra 1nF e 10NF allo scopo di evitare l'ingresso nel dispositivo di segnali perturbanti.
Alcuni calcoli fondamentali.
La frequenza di oscillazione e' data dalla fomula f=1/T dove con T si indica il periodo [s]
Il perido T vale 0,693*(R1+2*R2).
Il tempo in cui l'oscita e' attiva vale Ton= 0,693*(R1+R2)*C1
Il tempo in cui l'uscita e spenta vale Toff=0,693*(R2)*C1
Il rapporto tra il tempo in cui l'uscita e' alta e quello totale del periodo e' il ciclo utile pari a D=T1/T
Online e' possibile trovare degli abachi che permettono il calcolo della frequenza di oscillazione del multivibratore astabile eseguito nella modalita' che ho descritto, ovvero che suggeriscono il corretto valore di R1,R2, C1 in base alla frequenza che si desidera ottenere.
Consiglio ai volenterosi di inserire le formule soprascritte in un foglio excell e autocostruirsi questo abaco..
La generazione del segnale PWM, utile come regolatore della potenza trasmessa, e' ottenibile come variante di questa soluzione circuitale.
Si tratta di mantenere costante il periodo T (inverso del frequenza) e dare la possibilita' a un controllo manuale di variare il latch alto rispetto a quello basso, ovvero quello normalmente conosciuto come ciclo utile (D.C. duty cycle).
Il trucco consiste nel costringere le correnti di carica e scarica del condensatore C1 a transitare in porzioni di resistenza variabile diversa e manualmente regolata. Tale trucco si attua inserendo due diodi 1N4148 .
Ecco come diversificare i percorsi di carica e scarica della capacita':
La fase di carica, internamente soggetta alle comparazioni come precedentemente esposto, avviene nella maglia R1+R2 a cui si aggiunge la porzione di trimmer inserita. Si giunge al condensatore C1 tramite il diodo D2, l'altro ramo risulta interdetto a causa del diodo D1 in contropolarizzazione. Nella fase di scarica si interdice D2 e va in conduzione diretta D1 che permette la scarica tramite la porzione inserita del trimmer (anche nulla) attraverso il pin 7 dietro a cui abbiamo visto esserci il BHT, npn interno al chip comunemente chiamato discharge. Anche se non e' proprio vero il periodo e' pressoche' costante (all'oscilloscopio noterete delle piccole variazioni).
Rimane il probelma della frequenza di risonanza dell'eventuale motore DC collegato, questa e' specifica del motore in uso e andrebbe chiesta al costruttore perche' le misure i i calcoli da farsi non sono semplici.
Tipicamente tra i 12 e i 22 Khz si ha una buona resa.
Empiricamente si ha una frequenza accettabile quando il motore non emette strani rozii e fischi.
Quasi certamente si cade in errore nelle frequenze foniche attorno al chiloHertz.
Circuito di alimentazione.
La sezione di potenza è energizzata dal una tensione raddrizzata proveniente direttamente dal secondario di un trasformatore a 24 volt AC, quindi, una volta moltiplicata per radice di 2, si ottengono circa 33V D.C. molto poco stabili dato che gli spunti di coppia dell'eventuale motore rende il tutto piuttosto fluttuante. Il circuito è un classico quindi discutiamo solo brevemente sullo schema sottoriportato.
Il progetto dispone di due alimentazioni separate, una per la potenza e una per la logica. La sezione logica richiede una potenza piuttosto limitata dato che si compone del solo PIC e dell'NE555. Risulta ben dimensionato il circuito integrato LM7805 dato che è in grado di fornire circa 1A. La preoccupazione maggione, più che dalla corrente fornita e quindi dalla potenza fornita da questa sezione al circuito, viene dalla potenza che il componente si trova a dissipare dovuta al grande salto di tensione che deve eseguire. Siamo infatti molto vicini al limite di funzionamento per le tensioni accettate in ingresso (circa 36 volt). Dovendo fare tra monte e valle un salto di circa 25 volt anche i pochi milliampere necessari al funzionamento del PIC e dell'NE555 potrebbero generare sul case TO220 una certa quantità di calore. Sarà bene montare un piccola aletta di raffreddamento.
Il diodo indicato con 1N4004, che potrà essere un comunissimo 1N4007, posto in parellelo al regolatore di tensione con il catodo nel terminale di ingresso, protegge il circuito integrato dalle correnti di scarica inversa che si vengono a creare quando manca la tensione sul lato ponte, ovvero è stato spento il dispositivo. Una ulteriore sicurezza, che impedisce questa scarica, è assicurarsi che il condensatore elettrolitico C5 (lato ponte) abbia un valore maggiore di quello sul lato valle (lato circuito da alimentare ovvero l'uscita dell'LM7805), si ha quindi:
C5 > C6
ed i valori prescelti sono C5= 470uF elettrolitico 50VL , C6=220uF elettrolitico 50VL.
I condensatori C1 e C2, notoriamente sono ceramici ed hanno lo scopo di impedire le autoscillazioni del regolatore. Il valore da un certo margine di scelta, in caso di mancanza a magazzino di questi, vanno bene anche dei poliestere da 100nF (in molti casi analoghi neppure sono montati). Il ponte di diodi è il classico da un ampere con corpo tondo, facciamo attenzione a montare il piedino positivo sulla piazzola indicata con LSP1 (ovvero il pieinopiù lungo se usate un componente nuovo).
La resistenza R1, possiamo montarla di valore anche piuttosto alto dato che il diodo LED risulterà chiuso nella scatola del circuito è ha valore indicativo solo in fase di test e montaggio (vanno vene 1k5 o anche 2k2, ma se desiderate montare il led sul pannello frontale possiamo aumentare la luminosità diminuendo il valere fino anche a 330ohm.
In definitiva i morsetti X2-1 e X2-2 vanno connessi alla fonte alternata di alimentazione che può essere sia alternata che continua. Se disponete nei pressi del posto in cui montate il circuito di qualsiasi valore e forma di tensione compresa tra i 7 volt e i 35 potete collegarvi a questi morsetti anche in maniera non curante della polarità.
L'alimantazione di potenza, ovvero quella che energiza il motore o le plafoniere a LED è fornita ai morsetti X1-1 (tensione positiva) e X1-2 (massa) facendo attenzione alla polarità.
Le due alimentazioni della logica e di potenza rimangono separate così ne trae profitto la stabilità del sistema.
Come possiamo vedere dallo schema, compaiono 4 morsetti, X1 a due vie in cui si collega la tensione raddrizzata che perviene Al morsetto X1-1 al valore di 33Vdc (circa), mentre a X1-2 la massa. Hai morsetti X3-1 e X3-2, è inserito l'indotto del motore con il positivo su X3-2.
Benché molti, in applicazioni simili, colleghino due mosfet in parallelo, io preferisco la soluzione dell'unico elemento attivo, correttamente polarizzato.
IRFP460 (o equivalente) piedinatura da sinistra G-D-S
Il Mosfet è un canale N, come si vede anche dal simbolo grafico, del tipo ad arrichimento. L'applicazione di una tensione tra Gate e Surce, nel databook consigliata tra 2,5 e 5 volt, comporta la creazione del canale conduttivo tra Drain e Surce, che nel funzionamento "tutto chiuso come un interruttore", ovvero canale completamente formato, garantisce (fonte databook) una resistenza residua tra il terminale centrale (Drain) e il terminale di destra (Surce) di 0,27Ohm. Questo valore è molto buono dal punto di vista della dissipazione che alla fine verrà dissipata, ma non è difficile trovare dei Mosfet con questo parametro residuo di un'ordine di grandezza più basso. Il componente risulta quindi più freddo a parità di corrente che lo attraversa. Nel funzionamento impulsivo, come nel caso di controllo PWM la corrente può raggiungere anche gli 80 ampere.
Il foro centrale di fissaggio risulta isolato, quindi non sono indispensabili miche isolanti o materiali simili nella fase di montaggio dell'aletta.
Internamente è presente un diodo di ricircolo che in molti casi può salvaguardare la giunzione da solo potendo così eliminare i diodi schottky previsti esternamente.
La derivata rispetto al tempo della tensione mi da un tempo di recovery pari a circa 3,5 [V/ns], il componente quindi oltre assere molto potente è anche piuttosto veloce.
Scarica il databook del Mosfet prescelto -> UserFiles/ad.noctis/irfp460.pdf
In molte applicazioni dei mosfet, visibili in internet si può notare la mancanza della resistenza di Gate, personalmente preferisco ridurre lo stress al terminale di Gate mettendoci in serie una resistenza di piccolo valore anche minore del centinaio di Ohm, in questo caso solo 47Ohm.
In definitiva l'uso del Mosfet non è così complicato come potrebbe pensare un neofita, quindi consiglio a tutti un primo approccio con soluzioni circuitali come questa ovvero di tipo ON/OFF e non di sedimentare i propri studi solo sul BJT o Darlington
Il software.
Il software è molto semplice e altrettanto semplicemente modificabile per ottenere tempi e tipo di azione (ritardo all'eccitazione o ritardo alla diseccitazione) consoni alla propria specifica esigenza:
/******************************************
* Easy Timer PWM By ad.noctis *
* monostabile con 16F84a *
* dopo 15 minuti toglie un consenso *
******************************************/
#include <pic.h>
#include "delay.h"
#define ON 1
#define OFF 0
#define rele RB1
void main(){
TRISA=0xFF;
TRISB=0;
rele=1;
DelayS(25); // Questo ritardo monostabile è preassegnato a 25 secondi.
/* //Questo blocco commentato se liberato genera un
DelayS(255); //ritardo complessivo 15 minuti pari a 900 secondi
DelayS(255);
DelayS(255);
DelayS(135);
*/
rele=0;
while(1){
/*
//il programma non viene rieseguito se la scheda elettronica
//non viene spenta e riaccesa come da specifiche tecniche desiderate
if (RA0==1){
rele=1;
}
else{
rele=0;
}
*/
}
}
Scarica il file hex con ritardo prefissato 25 sec -> EasyTimerPWM_25s.zip
Nella tabella sottostante sono disponibili dei file .hex e il relativo sorgente .c delle temporizzazioni preassegnate allo scopo di aiutare quegli utenti che non sono esperti di programmazione o che non conoscono il linguaggio C per PIC16.
EasyTimer1s.zip | EasyTimer15s.zip | EasyTimer5m.zip | EasyTimer1ora.zip |
EasyTimer5s.zip | EasyTimer25s.zip | EasyTimer10m.zip | EasyTimer2ore.zip |
EasyTimer10s.zip | EasyTimer1m.zip | EasyTimer15m.zip | EasyTimer24ore.zip |
Il ritardo all'eccitazione è sostenuto fintanto che è presente il segnale di consenso, che nel caso del nostro progetto è costituito dalla semplice accensione della scheda rimane presente. La successiva versione, a fine pagina, attende invece la pressione di un pulsante di consenso per effettuare sia l'azione SE che l'azione SA.
Qualcuno potrà commentare che un PIC per svolgere la sola funzione di Timer è eccessivo, e in primo acchitto potrebbe anche avere ragione, ma quello che si vuole presentare è una scheda multiuso che potrà svilupparsi si più canali quando l'utente acquisirà nozioni di programmazione più approfondite. Tutte le uscite e ingressi del PIC sono disponibili sullo streepline maschio, così che il circuito si presta a funzionare anche come piccolo controllo programmabile. Più avanti nell'articolo presento una bozza di multicanale.
Scarica il PCB FidoCad. -> Easy_Timer.zip
Versione con pulsante autoritenuto.
Con semplici accorgimenti circuitali, di cui è stato realizzato il PCB, si può ottenere un timer multicanale, ed usando gli interrupt si possono anche impostare temporizzazioni parallele. Innanzitutto bisogna munire il controllo di canali di ingresso, che in questo caso saranno i pin del PORT A che saranno muniti di opportune resistenze di pullup (tipicamente 10k).
Per questioni di immunità al rumore è opportuno che i pulsanti siano normalmente a uno e pressati zero. Questa soluzione è genericamente considerata la più valida ed usata.
Lo schema funzionale è visibile nella prossima immagine.
Questo tipo di schema, detto funzionale, può risultare un po' ostico per gli informatici o per gli elettronici ma è il pane quotidiano degli elettrotecnici e gli addetti alle automazioni dato che rappresenta la logica funzionale che in un certo qual senso rispecchia anche l'automazione elettromeccanica. (si intende la logica cablata a relè) .Lo schema rappresenta la funzione OR tra il pulsante che viene premuto e l livello logico dell'uscita che si vuole ottenere. Questo OR è detto autoritenuta, infatti se premendo il pulsante il segnale giunge al nodo, dove poi raggiunge la bobina (uscita logica) tramite il contatto normalemente chiuso dell'evento che costituisce lo sgancio dell'autoritenuta stessa, comportando la chiusura del contatto "LUX" che è appunto l'autoritenuta. Si tratta in effetti di una sorta di retroazione positiva che ha un effetto memoria dell'evento.
Come vediamo nel sorgente sottoriportato i comandi decisionali logici trovano naturale implementazione nel costrutto "if" e negli operatori logici unari che sono:
una bozza del sorgente è il seguente:
/***************************************
* Luci scale con PWM *
* G-Tronic Robotics Marco Gottardo *
* 05/Maggio/2011 *
* *
*Temporizzazione 20 sec luci condominio*
****************************************/
#include <pic.h> //parentesi angolari perche' si trova in cartella
#include "delay.h" //apici se inserito nella cartella del progetto
//se mettiamo le delay in include vanno tra <>
#define LUX_on RA0
#define LUX RB0
void main(){
TRISA=0xFF;
TRISB=0;
//commentare le prossime due righe se non si usa
//il PIC 16F877A
ADCON1=0b00000111;
CMCON=0b00000111;
char timeout=0;
while(1){
//Nel caso si voglia usare il pulsante normal 1
//togliere dal commento queste due righe e commentare
//i successivi due if.
/* if (LUX_on==1) timeout=0;
if ((LUX_on||LUX)&&(!timeout)){
*/
if (LUX_on==0) timeout=0;
if ((!LUX_on||LUX)&&(!timeout)){
LUX=1;
}
else LUX=0;
if(LUX){DelayS(20);
timeout=1;
LUX=0;
}
}
}
scarica il sorgente .C e il file esadecimale .hex preset 20 sec -> luciscale.zip
La presenza della logica autoritenuta vanifica la classica tecnica di antirimbalzo con il doppio controllo "if" con delay. Il PCB, rielaborato per gestire più canli PWM temporizzati è il seguente, come possiamo vedere rispetto alla versione base è già munito delle resistenze di pullup negli ingressi e di un triplo canale di potenza. Il microcontrollore pilota anche un robusto canale a relè per l'inversione di marcia di un motore DC di media taglia.
scarica il PCB multichannel ->Multichannel.zip
I due relè montati sullo stampato, sono visibili sul lato destro del PCB. Come si può notare c'è bisogno di eseguire alcuni collegamenti in filo wrap, al fine di non complicare troppo il PCB o di espanderlo oltre le necessarie misure. La versione visibile nell'immagine ha ingombri 160mm x 48mm, consentendo la fotoincisone di due esemplari per ogni supporto fotosensibile standard di 160 per 100 millimetri.
Ecco un esemplare di Timer-PWM multiplo montato, la notevole quantità di cavi è dovuta al fatto che l'applicazione è dal punto di vista software molto più evoluta di quella presentata in questo articolo e titolo esemplificativo. per ogni canale sono presenti due segnali di fine corsa (acquisiti in modalità normal->1, pressed->0), oltre che i pulsanti di marcia e di consenso (presenza uomo).
Tuttii cavi dei finecorsa e dei potenziometri per la regolazione PWM vanno portati al bordo macchina o alla eventuale console di controllo tramite un connettore cannon DB15, mentre i pulsanti (o micro) di presenza uomo vanno portati fuori dallo chassy con dei connettori di tipo Weidmuller.
Sul lato destro è ben visibile il connettore che porta i 6 fili per i potenziometri di regolazione, 6 fine corsa, alcuni segnali di massa, mentre davanti, a penzoloni vediamo il pulsante di consenso, provvisoriamente saldato in testa ai cavi anziché sul connettore weidmuller. Il dissipatore sembra piccolo ma in realtà i mosfet lavorano quasi sempre freddi dato che sono davvero robusti (20 amper continui). qui in Italia costano un po di soldini , ma una fornitura straniera mi è arrivata per soli 70 cent IVA compresa ad esemplare. Questo prototipo pilota 4 motori, ed ha subito uno stress test involontario (abbiamo mantato male un finecorsa) e non ci siamo accorti che un motore ha lavorato a rotore bloccato fino a rovinare lo smalto dell'avvolgimento, ma il mosfet sta continuando tuttora a lavorare.
Nella prossima foto vediamo uno dei quattro motori collegati alla scheda, tre di essi regolati in velocità in un solo senso di marcia, mentre il quarto a velocità dei dati di targa ma con la possibilità di inversione del senso di marcia.
La foto non rende molto l'idea delle dimensioni di questo motore, ma tanto per avere un termine di paragone è circa una volta e mezza piùgrande di un comune motore per alzacristalli automobilistico a 12 volt. L'indotto di questo motore è a 24 ma, benche sconsigliato, in PWM sopporta bene anche i 24 raddrizzati e livellati, ovvero 33V DC. Anche facendoli lavorare in condizioni gravose non abbiamo mai riscontrato perdite di efficienza. Empiricamente ho riscontrato che la frequenza corretta di pilotaggio con PWM è circa 12 Khz, valore in cui è minima la rumorosità (il fischio di risonanza) e massima la coppia.
Sone necessari i seguenti interventi dopo l'assemblaggio: .
This opera is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Italy License.
Let's GO PIC
Configurazione della Micro-GT PIC versatile IDE per il processore a 18 pin.
Benché questo episodio del tutorial "Let's Go PIC", numero 8, sia molto succinto sarà a molti utilissimo, visto che per la prima volta mostriamo chiaramente come configuare la piattaforma di supporto, Micro-GT PIC versatile IDE per il pic a 18 pin quale ad esempio il 16F84A (e non solo).
Concetto importante, da non dimenticare mai, è che la versatilità della piattaforma impone la visione degli schemi elettrici al fine di poterne sviscerare di volta in volta le potenzialità.
Come detto nei precedenti episodi la scheda consente di programmare i PIC in due distinti modi tramite la porta seriale RS232. Il primo è quello diretto in cui in maniera classica viene portata la tensione a 13,5 volte sul piedino di programmazione tramite il cavetto ICSP (in circuit serial programming) mentre il secondo, forse più elegante, consente di programmare il PIC direttamente tramite un normale convertitore USB-RS232 in modalità a bassa tensione dato che nel chip viene precedentemente inserito il Bootloader (scaricabile dal mio sito personale). Questa seconda modalità avviene dopo avere spostato alcuni jumper, che bypassano l'integrato CD4069, e portano la porta direttamente all'UART del PIC, ovviamente tramite il traslatore di livello MAX232. Tale modalità, data la grande propensione alla cominicazine bidirezionale, consentirà a programmi sviluppati in vari linguaggi, ad esempio Visual Studio 2011, di inviare stringhe e leggere stringhe dando il comando dell'I/O del PIC al vostro personal computer, per questo motivo ho chimato questa modalità "supervisone", a cui dedicheremo un capitolo di Let's GO PIC.
Esiste una terza modalità, pubblicata dall'amico "CORMAS" su grix, che consente la trasformazione della Micro-GT in direttamente accessibile tramite porta USB, invito tutti a prendere visione di quanto propone nel suo articolo. Avendo eseguito dei test su un esemplare da lui fornito assicuro che è funzionante.
Vediamo subito la parte di schema che riguarda la corretta configurazione del cavetto ICSP.
Per potersi interfacciare a qualunque processore è necessario avere a disposizione la piedinatura, ricavabile dalla documentazione tecnica, che ci mostra dove si trovano i piedini per la programmazione ICSP, scopriremo che grossomodo sono divisi in famiglie quasi coincidenti con le varie piedinature DIL disponibili.
Nella Micro-GT troveremo due connettori indicati con ICSP1 e ICSP2, questi sono collegati in parallelo quindi potremmo collegare il cavetto indifferentemente sul primo o sul secondo.
cavetto ICSP, è importante rispettare colori e sequenza.
Per mantenere al compatibilità con il software PICPROG2009 suggerisco di tenere la stessa sequenza di cavi e colori della foto in cui il conduttore numero 1 è il marrone. Le varie configurazioni possibili sono suggerite dallo stesso software di programmazione picprog2009, nella sezione hardware test e comunicazione.
innesto del cavetto di programmazione in circuit.
Osserviamo la sequenza di colori a partire dal pin numero uno nel cavetto, questi sono:
Nello schema elettrico, predisposto per il PIC 16 F84A e piedinature equivalenti, si è proseguito lungo i cavi all'interno della scheda con i medesimi colori togliendo qualsiasi ambiguità di collegamento.
Attenzione che potrebbe essere necessario diversificare la fase di programmazione dalla fase di esecuzione, sarebbe infatti bene che non ci fosse nulla collegato ai pin del PIC durante la fare di scrittura del programma.
.
Collegamento dell'ICSP.
Vediamo con alcune foto il dettaglio della connessione del cavetto ICSP.
Sul lato sinistro, di fronte alla coppia di regolatori di tensione, c'è la partenza a 5 posizioni del connettore ICSP inserito nello slot1. Andando verso detra destra i cavetti si dividono in due gruppi con destina secondo lo schema elettrico visbile più sopra. Riassumendo si ha:
Un ottimo articolo di approfondimento sulla programmazione/conessione ICSP lo potete trovare su grix a questo riferimento:
http://www.grix.it/viewer.php?page=9663&bakto=%2F%3Ftab%3D0
Usando i suggerimenti di conessione su questo articolo il circuito EasyTimer qui presentato verra' in futuro modificato per consentire la riprogrammazione "incircuit".
Si può collegare o scollegare le parti interessate del circuito tramite i seguenti jumper:
configurazione di JP3 e SV2 per 16F84A.
Quando lanciato in esecuzione il programma di test fa accendere regolarmente i LED.
Come notiamo nella foto, i led collegati al PORTA del pic 16F84A sono statti deviati nella riga PORTB (quella centrale dell'I/O on board. Il quarto LED da destra, e' naturalmente accesso fisso ed indica che sul pin di alimentazione e' presente la tensione deviata con l'apposito jumper.
I led successivi, andando verso destra, sono RA0, RA1, RA2, poi si salta all'inizio della riga, quindi tutto a sinistra dove si prosegue con RA3 e RA4. I rimanenti due led della riga sono giustamente spenti perche' il PORTA del 16F84A dispone di solo 5 punti di collegamento su questo PORT, sarebbero invece 8 sul port B.
Nella fase di esecuzione è bene sganciare il cavetto ICSP dato che questo potrebbe conflittuare con qualche specifica applicazione. Va tenuto inoltre presente che le serigrafie riportate mediamente per il processore a 40 pin potrebbero non concidere con quella della propria applicazione in modo particolare quando si decida di usare la modalità freeport in cui ogni risorsa di I/O on board può essere agganciata/deviata su un punto a piacere del microcontrollore in virtù della grande disponibilità di pin e dipswitch.
This opera is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Italy License.
Appendice di fine pagina.
La piattaforma di supporto per il tutorial a puntate "Let's GO PIC" e' come gia' detto e' la Micro-GT PIC versatile I.D.E.
Con piccoli accorgimenti e' interfacciabile direttamente al PICKIT 3 e con la modifica proposta nell'articolo di cormas edito su grix, e' possibile collegarla direttamente al notebook tramite la porta USB.
Nella versione normalmente distribuita e' possibile il collegamento USB nella modalita' supervisione che consente la programmazione del pic di riferimento in LVP grazie all'utilizzo dei bootloader.
Dispongo a magazzino di esemplari del circuito stampato della scheda.
PCB Micro-GT size 155mm x 165mm
Chi fosse interessato ad avere un esemplare mi può contattare tramite messaggio privato in Grix o nella mia mail personale [email protected]
Fino ad esaurimento delle scorte la posso spedire a prezzo di costo più le spese di spedizione con rimborso su paypal.
Chi invece fosse interessato ad un esemplare montatao e collaudato mi contatti tramite la mail.
Attualmente la Micro-GT PIC e' l'unica scheda programmer/demoboard che integra le interfacce di potenza per il controllo diretto fino a tre motori DC oppure uno DC fiono a 8 ampere e uno passo/passo fino a 2 ampere per avvolgimento.
Le alimentazioni di potenza sono separate da quelle della logica.
Nota bene: I 16ingressi digitali sono configurabili tramite jumper nella funzionalita' normal->0, pressed->1 oppure normal->1, pressed->0 a gruppi di 4.