SCHEDE PER PROGRAMMAZIONE PIC

ultimo aggiornamento 20/11/2006


 

Indice

homotix

PCBONLINE


Descrizione

La scheda test "PIC Laboratory" prodotta dalla  INGENIERIA DE MICROSISTEMAS PROGRAMADOS S.L.  è pensata per l'apprendimento e il progetto di applicazioni, con i microcontroller PIC16F876/877 di Arizona Microchip.

Tenendo conto della loro appartenenza alla gamma media, questi microcontroller sono quanto di più potente e flessibile ci sia sul mercato, grazie alla grande quantità di risorse hardware interne di cui dispongono.

Eccone alcune:
 
  • Memoria FLASH di programma ed EEPROM dei dati. Possono essere cancellate e riutilizzate in numerose occasioni. Dispongono anche di 368 byte di RAM per dati di tipo variabile
  • Dispone fino a un massimo di 33 linee di ingresso/uscita (nel caso dell'utilizzo di un PIC1 6F877).
  • Permettono il controllo di grandi quantità di periferiche,
  • Dispongono di un circuito convertitore A/D, con sino ad 8 canali di ingresso e 10 bit di risoluzione che permette di processare variabili o segnali di tipo analogico.
  • Tre circuiti temporizzatori o "Timers" totalmente indipendenti fra loro e con diversi modi di funzionamento per ognuno di essi
  • Porta Seriale Sincrona Master (MSSP), che permette il controllo e la connessione con i dispositivi SPI e I2C opportunamente progettati.
  • Ricevitore/trasmettitore universale (USART) che permette la comunicazione seriale sia sincrona che asincrona.
  • Due circuiti CCP per la cattura, comparazione e modulazione di ampiezza degli impulsi che permettono il disegno di applicazioni, dove sono richieste generazioni di segnali, misure e regolazioni.
  • Porta parallela slave (PSP) di 8 bit che permette un rapido trasferimento di informazioni (solo nel PIC16F877).
  • Inoltre come gli altri membri della numerosa famiglia PIC, questi dispositivi dispongono di temporizzatori Watchdog, Power on Reset, Power Up Timer, ecc
  • Tutte le informazioni tecniche, "Data Sheets" e le note di applicazione. sono a disposizione nel sito web che Microchip dispone appositamente: www.microchip.com


Caratteristiche

Le caratteristiche più rilevanti della scheda di prova "PIC Laboratory" sono riportate di seguito:
 

  • Alimentazione unica tramite un trasformatore AC/DC da 12 V. la scheda dispone di un proprio sistema di raddrizzamento, filtraggio e stabilizzazione a +5 Vcc.
  • Sopporta il PIC1 6F876 o il PIC16F877. Il PIC1 6F876 viene montato di serie. Il PIC16F877 è opzionale e si può acquistare separatamente. Entrambi i modelli di PIC vengono memorizzati con il sistema operativo PICM0S'76 o PICMOS'77 che facilita l'interfaccia dell'utente con il PC.
  • Canale seriale RS232 a 38.400 baude per la connessione con il PC.  Quest' ultimo dotato dei software "Real_ PIC" incluso nel "PIC Laboratory", permette una comoda interfaccia con l'utente che potrà scrivere il PIC, eseguire il programma di applicazione. editare/modificare la memoria ecc.
  • L'utente dispone di 4 K di memoria FLASH di programma, 352 byte di RAM per i dati e 246 di EEPROM per i dati non volatili.
  • Alta velocità di lavoro controllata da un quarzo a 20 MHz. Il tempo di esecuzione e di 200 ns per istruzione (eccetto le istruzioni di salto che sono di 400 ns).
  • Sei ingressi digitali mediante commutatori a slitta, cui sono associate le linee RA0-RA5.
  • Due pulsanti permettono di generare il segnale RESET di inizio e di interrupt esterno INT.
  • Tensione di ingresso analogica variabile associata al canale AN0. Questa tensione è selezionabile mediante Jumper e può arrivare da un potenziometro oppure da un fototransistor sensibile alla luce ambiente.
  • Generatore logico a frequenza variabile mediante potenziometro, che permette di applicare impulsi di ingresso ai differenti temporizzatori/contatori dei PIC.
  • Tastiera matriciale da 4x4 pilotata dalle linee RB0-RB7 della porta B.
  • Otto uscite digitali associate a RB0-RB7 che sono rappresentate mediante dieci led a 7 segmenti.
  • Uscita a display LCD da 2x16 caratteri alfanumerici.
  • Connettore della serie Smart card a 8 contatti che permette l'inserimento di schede di memoria esterna per salvare le applicazioni e/o scheda di espansione via SPI, 12C, ecc.
  • Connettore di espansione PIC-BUS 2 a 40 pin che sopporta tutti i segnali dei PIC e che permette di collegare le periferiche esterne al "PIC Laboratory" secondo le necessità e le applicazioni dell'utente.
  • Tutti i dispositivi che contiene "PIC Laboratory" possono essere disabilitati mediante i corrispondenti Jumper. con l'obiettivo di non interferire con le periferiche esterne che possono essere collegate dall'utente tramite il PIC-BUS 2.
  • Il "PIC Laboratory" viene fornito completamente montato e provato: include un cavo seriale il microcontroller 16F876 programmato con il monitor PICMOS'76, un dischetto con gli esempi, e il programma di interfaccia Real_PIC. E' Inoltre allegato un manuale di utilizzo.


La sezione alimentatrice

Ha il compito di generare la tensione principale di + 5 Vcc con cui si alimenta la scheda test “PIC Laboratory”.
La scheda test “PIC Laboratory” lavora con un'unica tensione di alimentazione di più +5 Vcc. Questa è ottenuta all'interno della scheda stessa, a partire da una tensione alternata da 12 VAC o di +12 VDC.
Il ponte D13 formato da 4 diodi ha il compito di raddrizzare la tensione alternata d'ingresso.
Questa si filtra mediante C13 e si stabilizza a +5 Vcc mediante regolatore UA 7805 (U5) Il diodo led D10 monitorizza la tensione di lavoro ottenuta.

uA7805 Regolatore di tensione
Piedinatura Datasheet Foto dell'integrato


I microcontroller

La scheda può sopportare due modelli di PIC differenti: il 16F876 da 28 pin e il 16F877 da 40, sono presenti entrambi gli zoccoli per poter inserire uno o l'altro dei due microcontroller.
La scheda PIC Laboratory, monta di serie il PIC 16F876 che viene scritto con il sistema operativo PICMOS'76.
Nell'immagine possiamo anche vedere il connettore di espansione PIC-BUS 2, grazie al quale l'utente può collegarsi alle periferiche necessarie nelle diverse applicazioni.
Lo schema della figura mostra la piedinatura di entrambi i modelli dei PIC e la distribuzione dei segnali che porta il connettore di espansione PIC_BUS 2 (J4).
La piedinatura dei microcontroller PICMOS'76 e PICMOS'77 corrisponde esattamente con la piedinatura dei PIC16F876 e 16F877 rispettivamente.
La relativa documentazione si trova nei manuali e nei data sheet di Microchip.
Il connettore PIC-BUS (J4) è composto da un connettore maschio per cavo piatto da 40 fili.
Mette a disposizione dell'utente tutti i segnali dei microcontroller (eccetto OSC1 e OSC2). In questo modo é possibile sviluppare hardware dedicato all'applicazione, e farla funzionare tramite la scheda “PIC Laboratory”.


L'oscillatore

La sezione dell'oscillatore è composta da un cristallo di quarzo e da due condensatori.
Il suo schema elettrico è riportato nella figura.
E' composto da un cristallo di quarzo da 20 MHz e due condensatori da 27 pF che si collegano agli ingressi OSC1 e 0SC2 del microcontroller.
Il PIC viene programmato per default con la modalità HS del suo oscillatore.
Lavorando a questa velocità il ciclo di clock e di 50 ns. Sapendo che un'istruzione viene eseguita sempre in 4 cicli di clock, il tempo di esecuzione, a ciclo di istruzione. è di 200 ns per istruzione.
Tutte le istruzioni sono eseguite nello stesso periodo di tempo, ad eccezione di quelle che implicano qualche tipo di salto o di spostamento del PC.
In questo caso si utilizzano due cicli di istruzione, e il tempo di esecuzione totale è di 400 ns.


Gli ingressi digitali

Sostanzialmente sono costituiti da sei interruttori a slitta e da due pulsanti.
Come possiamo vedere nello schema gli interruttori SW1-SW6 sono associati rispettivamente alle linee RA0-RA5.
Il pulsante SW7 invece può essere utilizzato per provocare un interrupt esterno INT associato alla linea RB0/INT dei PIC.
Infine il pulsante SW8 provoca, premendolo, un RESET generale dei sistema
In questo caso il PIC inizia l'esecuzione dei sistema operativo PICMOS'XX con cui viene scritto di serie.
La linea RA0 può funzionare come ingresso analogico AN0, per fare questo si può agire mediante il Jumper JP5 se questo segnale arriva dall'interruttore SW1 (ingresso digitale), oppure dal generatore di tensione analogica (ingresso analogico AN0).Allo stesso modo l'ingresso RA4 può funzionare come ingresso di impulsi TIMR0 del PIC (TOCKI), in questo caso occorre agire sul jumper JP6 se questo Segnale arriva dall'interruttore SW5 (ingresso digitale) oppure dal generatore logico (ingresso degli impulsi TOCKI).
La linea RB0 può funzionare come ingresso/uscita digitale oppure come ingresso dell'interrupt esterno INT. In questo caso l'interrupt è sensibile al fronte di discesa ogni volta che si preme il pulsante SW7. Il jumper JP4 permette di selezionare una delle due modalità.   Le resistenze pull-up e pull-down associate agli interruttori SW1-SW6 permettono che i segnali RA0-RA5 possano arrivare ad altre periferiche esterne senza che lo stato logico di questi interruttori prevalga sui segnali generati per le periferiche.


Il generatore analogico

Per poter utilizzare il convertitore AD integrato nel PIC16F87X, la scheda “PIC Laboratory" dispone di due generatori di tensione variabile, che permettono lo studio, il progetto e la verifica delle applicazioni relative a misure e progetti di variabili analogiche.
Così come riportato nello schema elettrico si può vedere che è un circuito molto semplice.
Il segnale RA0/AN0 del PIC può, così come altri segnali, essere programmato con ingresso digitale (RA0) o con ingresso analogico (AN0). Inoltre si può e si deve selezionare l'origine di questo segnale mediante il jumper JP5.
Quando è posto nella posizione RA0 il segnale applicato ai PIC arriva dall'interruttore SW1 come già spiegato precedentemente.
Supponiamo che questo PIC sia stato programmato perché RA0 funzioni come ingresso digitale, se il jumper è collocato nella posizione AN0, il segnale che arriva al piedino 2 dei PIC arriva da uno dei due generatori analogici disponibili in “PIC Laboratory"
Uno dei due generatori analogici è formato dal fototransistor BPW40 (Q1), questi misura la luce ambiente che incide su di esso e genera una funzione analogica proporzionale (VA1).
L'altro generatore è un semplice potenziometro (P1) che fornisce la tensione VA2 in funzione della posizione dei suo cursore.
Mediante il jumper JP7 si seleziona fra VA1 e VA2 il segnale d'ingesso per il canale 0 dei PIC (AN0)

Fototransistor BPW40
Piedinatura Datasheet Foto del sensore


Il generatore logico

Alcune delle funzioni implementate nei PIC, richiedono che un segnale esterno si possa implementare come ingresso per i distinti circuiti contatori di capture e di comparazione.
La scheda “PIC Laboratory" dispone di un semplice, ma efficace, generatore logico che fornisce un segnale ad onda quadra asimmetrica, e con una frequenza variabile fra 1 e 150 Hz approssimativamente.
Grazie al suo utilizzo si possono realizzare numerose esperienze relative a contatori d'impulsi, misure dell'ampiezza degli stessi, periodi, ecc.
Lo schema elettrico del generatore logico della scheda “PIC Laboratory" è costituito attorno al popolare timer 555 che funziona come multivibratore astabile.
Mediante il potenziometro P2 si regola la frequenza dei segnale di uscita, presente sul piedino 3 dei NE555 (U4), in un range che va da 1 fino a 150 Hz approssimativamente.
Il diodo led D8 dà un'idea visiva della frequenza di uscita.
Questa frequenza si applica ai jumper JP6, JP8 e JP9 che l'utente imposterà a seconda delle esigenze.
Chiudendo JP6 sulla posizione TOCKI il segnale di uscita dei generatore si applica all'ingresso RA4/TOCKI.
Questo permette di sviluppare applicazioni in cui il TMRO dei PIC lavora come contatore di eventi esterni.
Se si chiude il jumper JP8 l'uscita dei generatore arriva all'ingresso RC0/TOCK1 il quale permette lo sviluppo di applicazioni in cui il TMR1 dei PIC funziona come contatore di eventi esterni oppure come base tempi esterna per la temporizzazione.
Mediante il jumper JP9 si applica, se chiuso, il segnale al piedino RC2/CCP1.
In questo modo è possibile utilizzare il modulo CCP1 dei PIC per realizzare applicazioni di capture e comparazione degli impulsi esterni, misure di ampiezze, dei periodo, ecc.
In ultimo bisogna ricordare che se i tre jumper menzionati rimangono aperti, l'uscita dei generatore rimane inutilizzata e i rispettivi piedini dei PIC restano liberi per altri tipi di applicazioni.

LM555
Piedinatura Datasheet Foto dell'integrato


La tastiera

La scheda “PIC Laboratory" è provvista di una tastiera matriciale da 16 tasti tipo SECME ECO 16250 06-2
Si tratta dei dispositivo d'ingresso per eccellenza, che ci permette di introdurre tutti i tipi di dati per essere successivamente elaborati.
Il controllo della tastiera presuppone l'utilizzo di una serie di tecniche e di concetti che si utilizzano nelle più diverse applicazioni di tipo industriale e commerciale.
Gestire concetti come esplorazione della tastiera, "pulsante premuto”, "interrupt all'attivazione", "rimbalzi" ecc., daranno la possibilità di risolvere ambiziosi progetti di carattere professionale.
Un dato interessante è che nonostante ci siano 16 tasti, sono sufficienti 8 linee del microprocessori per il loro totale controllo.
Questo grazie alla distribuzione matriciale dei tasti stessi.
Nel caso di cui ci occupiamo, la tastiera è collegata alle 8 linee della porta B (RB0-RB7) cosi come mostra lo schema elettrico.
La tastiera è organizzata in quattro file (F0-F3) che si collegano a RB4-RB7 e ad altre 4 colonne (C0-C3), che si collegano a RB0-RB3.
L'intersezione fila colonna, individua un tasto specifico.
In altre parole, premere ad esempio il tasto 4 suppone di unire elettricamente la fila F1 con la colonna C0.
Questo significa che linee RB0 e RB5 dei PIC sono unite.
La routine software è incaricata di scandire la tastiera e determinare quale tasto è stato premuto.
Per fare questo, ad esempio, configura le linee RB0-RB3 (le colonne) come uscite e RB4-RB7 (le file) come ingressi.
Successivamente attiva in modo sequenziale ognuna delle colonne, allo stesso tempo in cui legge lo stato delle file, quando rileva una fila attiva significa che è stato premuto un pulsante.
E’ sufficiente conoscere quale colonna era attiva in quel momento per arrivare alla relazione fila-colonna che definisce ogni pulsante.
Questo lavoro, conosciuto come 'scansione della tastiera", deve essere ripetuto in modo costante e periodico.
In questo modo, e alla velocità di lavoro dei PIC sarà possibile rilevare una pulsazione in qualsiasi momento.
Facendo uso di alcune delle prestazioni che offre un PIC è possibile sviluppare routines più sofisticate ed efficaci.
Effettivamente programmando i registri opportuni di un PIC possiamo fare in modo che gli ingressi RB4 e RB7 (le file), siano collegati a delle resistenze pull-up interne, che fanno in modo che queste linee in stato di riposo siano a livello '1'.
Inoltre possiamo abilitare l'interrupt per cambio di stato, in qualsiasi di queste linee di ingresso.
Allo stesso tempo le uscite RB0-RB3 (le colonne) le poniamo a livello "0".
Questa situazione di riposo si mantiene in caso non ci siano pulsanti premuti.
Il microcontroller si può dedicare ad altri compiti o restare in standby riducendo il consumo fino a che non si verifichi un evento.
Questo evento può essere l'attivazione di uno qualsiasi dei tasti.
In effetti dato che RB0 e R83 (colonne) sono a “0” e RB4-RB7 (file) sono a livello ”1” grazie alle resistenze di pull-up interne, quando si preme qualche tasto si produce un interrupt per cambio di stato su una qualsiasi delle linee RB4-RB7 (file).
Questo interrupt provoca la fine dello standby (wake-up) e l'immediata attenzione al programma di trattamento che sarà incaricato di verificare quale tasto è stato premuto.


Le uscite digitali

Sono formate da un insieme di 8 diodi tipo led che servono per rappresentare lo stato logico delle linee a cui sono collegati. Vedere la figura 1﷓16

Nella Scheda “PIC Laboratory" questi led sono collegati alle 8 linee della porta B (RB0-RB7) che sono linee di utilizzo generale. Nello schema si può vedere il collegamento elettrico.
Le linee di uscita di un PIC possono attivare direttamente carichi fino a 25 mA senza la necessità di una circuiteria addizionale, le linee della porta B attivano direttamente i led associati tramite le resistenze di assorbimento.
Un livello logico "1" per qualsiasi di queste linee provoca l'accensione dei led corrispondente. Un livello "0” lo spegne. E' una forma molto semplice ed economica per riflettere lo stato binario delle linee di uscita, dove ogni led simula il carico che si desidera controllare.
Aprendo il jumper JP1 tutti i catodi dei led rimangono collegati, in questo modo le linee della porta B rimangono libere e si evita un consumo extra, potendo comunque utilizzare queste linee per le periferiche che l'utente di “PIC Laboratory" desidera collegare tramite il PIC-BUS 2.
A seconda della posizione in cui si chiude il jumper JP4 la linea RB0/INT può essere utilizzata come linea di I/0 di utilizzo generale oppure come ingresso dell'interrupt esterno INT attivato tramite il pulsante SW7.


L'uscita sul display a 7 segmenti

Come periferica staccata, la scheda, “PIC Laboratory" include il classico display a 7 Segmenti, come quello che si mostra nella fotografia.
Si tratta di una periferica di uscita che permette la visualizzazione dei valori numerici.
Come si può vedere nello schema i segmenti dei display sono anche collegati alle 8 linee della porta B (RB0-RB7), si tratta di un display a catodo comune.
Ognuno dei segmenti che in pratica consiste in un diodo led necessita di un livello logico "1' sull'uscita corrispondente per la sua corretta illuminazione.
L'utente ha il controllo individuale di ogni segmento e può visualizzare qualsiasi tipo di simbolo che il display sia capace di rappresentane.
Inoltre si può progettare la classica routine di conversione BCD a 7 segmenti per poter eseguire delle rappresentazioni numeriche.
Sia le uscite digitali che i segmenti dei display sono collegati in parallelo alle stesse linee della porta B, e alle stesse resistenze di assorbimento. Mediante il jumper JP2 si può collegare il display quando non lo si vuole utilizzare, evitando così un consumo extra sulle linee RB0-RB7.

Display a 7 segmenti a catodo comune (SC43-11HWA)
Piedinatura Datasheet Foto


 

Il display LCD

Si tratta di una delle periferiche più versatili e interessanti di cui dispone la scheda “PIC Laboratory”, può visualizzare due linee di 16 caratteri alfanumerici cadauna.
Questa potente periferica di uscita permette di rappresentare qualsiasi tipo di messaggio composto da lettere, numeri e simboli, producendo inoltre effetti di visualizzazione come lo spostamento a sinistra e destra lampeggio, scorrimento, ecc.
Il trasferimento di informazioni tra il display LCD e il microcontroller si realizza in parallelo e a blocchi di 4 o 8 bit. Nella scheda "PIC Laboratory” i trasferimenti si realizzano su 8 bit, ed è per questo che le 8 linee dei dati dei modulo LCD, sono collegate con le 8 linee RB0-RB7 della porta B, cosi come si può vedere nello schema.
Tramite la porta B il PIC trasferisce sia i codici ASCII dei caratteri da visualizzare sia i codici delle istruzioni grazie ai quali si stabiliscono differenti modi di visualizzazione sul display. Lo stato interno di questo inoltre può essere letto tramite la stessa porta dei PIC. In questo modo il microcontroller può conoscere se il display è o no occupato, la posizione attuale dei cursore, il carattere che c'è in quella posizione. ecc.
Oltre alla porta B dei dati, si utilizzano altri 3 segnali di controllo, Mediante il segnale RS collegato a RA1. il PIC indica se si sta inviando un codice ASCII dei dati o un codice di istruzione. Con il segnale R/W collegato a RA2 il PIC stabilisce se si stanno scrivendo dati/istruzioni oppure se si sta leggendo il dato interno al display. Infine, mediante il segnale E collegato a RA3 tramite il jumper JP3, il PIC abilita o meno il funzionamento generale dei modulo.
Quando questo segnale si pone a livello "0" il modulo LCD rimane scollegato in stato di alta impedenza. In questa situazione tutte le linee possono essere utilizzate per altre periferiche.
Se l'utente lascia aperto il jumper JP3 il segnale E di abilitazione rimane permanentemente a livello “0” grazie alla resistenza pull-down R39. In questo caso il display rimane scollegato e in alta impedenza, indipendentemente dal livello logico presente in RA3.
Tramite i piedini 1 e 2 dei modulo si applica la tensione di alimentazione di +5 Vcc che alimenta tutta l'elettronica interna del medesimo. Tramite il piedino 3 (VEE) si può applicare una tensione variabile tra 0 e +5 Vcc che permette di regolare il contrasto del display.
Nel caso di "PIC Laboratory" è stato messo a massa tramite la resistenza R26 da 1 K con la quale si ottiene un buon contrasto. Variando il valore di questa resistenza si può variare il contrasto.

 

Si fornisce una breve descrizione dei funzionamento dei modulo LCD montato sulla scheda PIC Laboratory.
Si tratta di un modulo a microcontroller capace di visualizzare 2 linee di 16 caratteri ognuna.
Tramite le 8 linee dei dati si invia il carattere che si desidera visualizzare insieme ad alcuni codici di controllo, che permettono di realizzare differenti effetti di visualizzazione.
Inoltre, mediante le stesse linee, il modulo può restituire informazioni sul suo stato interno.
Con altri tre segnali addizionali, si controlla il flusso di informazioni, fra il modulo LCD e il microcontroller che lo governa.
Di seguito è riportata la descrizione dei segnali utilizzati per il modulo LCD insieme al numero dei pin a cui corrispondono.

 

 
RB0-RB7 Sono collegati alle linee dei dati D0-D7 dei modulo.
Tramite, quindi, la porta B, si inviano codici ASCII o di controllo al modulo, o si riceve da parte di esso lo stato interno dei medesimo.
La porta B dovrà essere programmata come uscita, quando si vogliono inviare dei codici ASCII di controllo, e come ingresso quando si desidera conoscere lo stato interno dei modulo.
RA1 Si collega con il segnale di controllo R/S.
Portando un livello logico "0" su questa linea, si seleziona il registro di controllo dei modulo, portando un livello logico "1" si seleziona il registra dei dati.
Questa linea deve essere programmata come uscita.
RA2 Si collega con il segnale R/W.
Impostandola al livello logico "0" il modulo è scritto con l'informazione presente in quel momento sulla porta B, che dovrà funzionare come uscita. Impostandola a "1" si legge lo stato interno dei modulo LCD.
Questo stato si riceve tramite la porta B che dovrà essere programmata come ingresso.
La linea RA2 deve essere programmata come uscita.
RA3 Si collega con il segnale E.
Quando si applica un livello logico "1", si abilita il modulo, rendendo possibile il trasferimento di informazioni fra la porta B e le linee dei dati D0-D7.
Applicando "0", il modulo si disabilita, e le linee dei dati D0-D7 passano ad alta impedenza. Anche RA3 deve essere programmata come uscita.

 

 

L'interfaccia fra questo modulo LCD e la scheda "Pic Laboratory", si realizza secondo lo schema sopra riportato e i segnali utilizzati sono i seguenti:

 

 

Descrizione connettore display LCD

Pin n°

Simbolo Descrizione
1 Vss Piedino di massa dell'alimentazione
2 Vdd Piedino di alimentazione di +5 V
3 Vo Piedino di contrasto del cristallo liquido. Normalmente è collegato ad un potenziometro tramite il quale si applica una tensione variabile fra 0 e +5 V che permette di regolare il contrasto dei display
4 RS Seleziona fra il registro di controllo e Il registro dei dati:
RS = 0 Selezione d el registro di e controllo
RS = 1 Selezione dei registro dei dati
5 R/W Segnale di lettura/scrittura:
R/W=0 Il modulo LCD è in scrittura
R/W=1 Il modulo LCD è in lettura
6 E dì attivazione del modulo LCD:
E=0 Modulo disabilitato
E=1 Modulo abilitato
7 DB0 Bus dei dati bidirezionale. Tramite queste linee si realizza il trasferimento delle informazioni fra il modulo LCD e il microcontroller che lo gestisce.
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 NC Non collegato
16 NC Non collegato

 


Il canale seriale RS232

La scheda “PIC Laboratory" incorpora i circuiti necessari per adattare i livelli logici ai livelli RS232, disponendo cosi di un canale seriale. è possibile quindi che l'utente possa progettare applicazioni relative alla comunicazione seriale e collegare un “PIC Laboratory" con un PC, un terminale, un modem, una stampante, cm.
Il microcontroller che contiene la scheda "PIC Laboratory" viene scritto dalla fabbrica con il sistema operativo denominato PICMOS'xx.
Questo sistema operativo utilizza il canale seriale, per comunicare con il PC dotato del software Real-PIC anch'esso incluso. Entrambi costituiscono un potente strumento con il quale l'utente potrà scaricare le sue applicazioni sul PIC, eseguirle, visualizzarle, modificare i registri di RAM, di EEPROM e altro ancora.
Lo schema elettrico è basato sul popolare MAX232 (U3).
Questo circuito, ad alimentazione unica e con pochi componenti esterni, è in grado di ottenere livelli RS232 di ± 12 V a partire da livello logico TTL viceversa.
Il connettore di comunicazione J2 consiste in un connettore DB9 femmina standard che si collega direttamente alla porta seriale dei PC mediante il corrispondente cavo.
Sul suo piedino 3 (TXD) si ricevono i dati che trasmette il PC.
Questi siano convertiti a livelli TTL e si applicano al PIC tramite il piedino RC7/RX.
Il PIC trasmette dati tramite il piedino RC6/TX che, convertiti a livello RS232, arrivano al PC tramite il piedino 2 (RXD) dei connettore J2.
Il programma Real_PIC dei PC può provocare un RESET alla scheda "PIC Laboratory” In effetti questo avviene quando si attiva il segnale dei piedino 7 di J2 (RTS).
Una volta convertito a livello TTL questo segnale si applica mediante D14 e R24 al piedino MCLR dei PIC reinizializzando tutto il sistema.
I diodi ed D11 e D12 si illuminano mostrando attività sul canale seriale sia durante la trasmissione che durante la ricezione dei dati.

MAX232  DUAL EIA-232 DRIVERS/RECEIVERS
Piedinatura Datasheet Foto dell'integrato


Il connettore di interfaccia Smart card

La scheda "PIC Laboratory" è dotata di un connettore Smart card standard da 8 pio che permette un'altra forma di espansione oltre al connettore PIC-BUS 2 già visto. Questo connettore è situato sotto la tastiera così come mostrato nella fotografia.
Si tratta di un connettore standard che accetta schede chip di dimensione normalizzata.
In pratica, si tratta di un'altra forma di espansione della scheda, che apre numerose possibilità e applicazioni:
Nello schaa è visibile il connettore per Smartcard J3.
Una semplice analisi dei segnali che trasporta, ci permette di notare che corrispondono alle 6 linee meno significative della porta C (RC0-RC5).
Queste linee, sostanzialmente, sono linee di I/O di utilizzo generale a disposizione dell'utente.
Se entriamo nel dettaglio possiamo notare che le linee RC3, RC4 e RC5 corrispondono ai segnali SCK, SDI e SDO utilizzati per lo standard del bus SPI, inoltre corrispondono alle linee SCL e SDA corrispondenti allo standard dei bus I2C.
Il controllo di entrambi i bus è implementato all'interno dell' hardware dei microcontroller PIC16F876 e 16F877 utilizzabili sulla scheda "PIC Laboratory”.
Se a questo aggiungiamo che la maggioranza delle schede chip esistenti, così come la maggior parte dei dispositivi, si governa mediante il protocollo SPI o I2C è facile intuire le grandi possibilità di espansione e di applicazione della scheda.
La distribuzione dei segnali sul connettore Smart card J3 è fatta seguendo la piedinatura delle schede più utilizzate.
Cosi sul piedino 1 si introduce la tensione +5 Vcc di alimentazione.
Questa tensione si applica tramite l'interruttore SW10 che è situato fisicamente sul corpo stesso dei connettore, i cui contatti si chiudono ogni volta che si introduce una scheda. Il piedino 5 corrisponde alla massa o GND.
Il piedino 3 è collegato con RC3/SCK/SCL Tramite questi piedini si applica il segnale di clock necessario alla maggior parte delle schede esistenti. Questo segnale di clock lo può generare il PIC lavorando nel modo SPI o I2C
Il segnale presente sul piedino 7 è collegato con RC4/SDI/SDA.
Corrisponde all'ingresso dei dati (SDI) per schede SPI può essere un segnale bidirezionale di ingresso/uscita dei dati (SDA) utilizzato per dispositivi con protocollo I2C.
Sul piedino 2 disponiamo dei segnale RC5/SD0 Corrisponde con l'uscita dei dati (SDO) delle schede controllate mediante protocollo SPI o similari.
Infine i piedini 8, 6 e 4 dei connettore Smart card trasportano i segnali RC0, RC1 e RC2 dei PIC.
In principio non hanno nessun tipo di assegnazione concreta, per cui l'utente li può utilizzare o meno secondo il proprio criterio. Comunque alcune schede chip possono avere necessità di segnali ausiliari come RESET, abilitazioni, busy, ecc. che possono essere generati facilmente, con un software adeguato, impiegando le menzionate RC0 RC1 e RC2.


La scheda di memoria Memory card

Con l'obiettivo di scrivere sopra una memoria esterna i programmi di applicazione dell'utente è presente una scheda di memoria 'Memory card " riportata nelle foto.
Basata sulla memoria EEPROM 24LC64 da 64 kbit di capacità.
In questa memoria è possibile scrivere i 4 K di memoria di programma disponibili per l'utente nei microcontroller PIC16F876 e 16F877 dotati dei sistema operativo PICIMOS7X e supportati dalla scheda “PIC Laboratory”.
Come visibile nello schema elettrico, il connettore J1 corrisponde al connettore Smart card della scheda e contiene i segnali RC0-RC6 dei PIC e le alimentazioni di +5 Vcc.
Alcuni di questi segnali si utilizzano sul bus I2C per il controllo della memoria 24LC64 (U1).
Sulla propria scheda si può aggiungere un connettore maschio da 2X5 vie (J2) con l'obiettivo che tutte le linee disponibili sulla Smart card (RC0-RC6 e alimentazione di +5 Vcc) restino a disposizione dell'utilizzatore.

Memoria tipo 24LC16B- 24C16A
Piedinatura Datasheet 24LC16B, Datasheet 24C16A, Foto dell'integrato


Programma di gestione

 

Con la scheda è fornito un disco dove sono presenti oltre ad esempi di programmi il programma necessario per il trasferimento delle applicazioni sulla scheda, questo si chiama Real-PIC.exe.

 

 

Questo programma possiede varie possibilità:
1) Scrivere il programma sorgente nell’area EDITOR, una volta scritto occorre salvare il file

 

 

2) Assemblare il programma, finita la scrittura si può passare al suo assemblaggio premendo l’apposito tasto questo provoca il richiamo del programma di compilazione MPASMWIN il quale legge e traduce in codice macchina il sorgente scritto nell’area EDITOR, se non vengono trovati errori verranno creati 4 file con disverse estensioni : *.HEX, *.LST; *.ERR, *.COD.

 

 

3) Memorizzare il programma, Attivando l’area “Mem Programma” è possibile verificare il programma, e con l’apposito tasto è possibile trasferire il programma sulla scheda.

 

 

4) Editare la memoria RAM, attivando l’area “Mem RAM” è possibile inserire e modificare i valori di memoria, è anche possibile scrivere dei range di valori con un valore utilizzando l’apposita funzione

 

 

5) Leggere e modificare la memoria EEPROM, attivando l’area “Mem EEPROM” e possibile leggere e scrivere la memoria EEPROM interna al PIC

 


Sostituzione processore programmato originario

Come abbiamo visto con la scheda viene fornito di serie il PIC 16F876 che viene scritto con il sistema operativo PICMOS'76.
Per la sua programmazione è necessario utilizzare il programma fornito in dotazione.
E' possibile invece sostituire il processore originario con uno programmato con un diverso downloader.
Sarà così possibile programmare il processore con il nuovo processore.
Nelle prossime revisioni del presente documento fornirò maggiori dettagli della modigica.

 

 

PICloader per CPU 16F786 http://microchipc.com/PIC16bootload/

Features
PIC16F87x serial bootloader. Used successfully by thousands of users worldwide.
  • Compatible with the 16F870/1/3/4/6/7 and 16F87xA/6/7/.
  • 255 instructions long, fits into top of memory. 
  • Only uses two wires - TX and RX. This is unlike some bootloaders that need up to 5 wires! 
  • Example Hex files for 16F870/1/3/4/6/7 and the 'A' revisions. It is possible to run 16F73/4/6/7 .hex files on the appropriate 16F870/1/3/4/6/7 chip. 
  • Example Hex files for 3.6864, 4,16 and 20Mhz. 
  • Downloads at 19200bps. This takes a few seconds for a complete program. 
  • Writes to EEPROM. 
  • Supports any Hex file, including those from standard assemblers, Basic, C and Pascal compilers. 
    Circuit diagram supplied as a .gif or a Protel 99 .sch file. 
  • Full source code supplied for bootloader, in assembly and C. 
  • Compatible with any circuit - no trigger pins or jumpers needed to activate bootloader. 
  • Fits into memory locations that the MPLab-ICD (an InCircuit Debugger) would normally use, if present. 
  • Includes Petr Kolomaznik's excellent windows interface plus full Delphi source code. 
  • Supports DOS or Linux under a DOS emulator. See instructions at the base of this page. 
  • Source code in assembly provided. Many thanks to Petr Kolomaznik. See his bootloader page.

 

 

 


Indice revisioni documento

Elenco revisioni:
20/11/2006 Inserito riferimenti componenti utilizzati
26/07/2005 Inserito descrizione particolareggiata dello schema elettrico della scheda
02/04/2004 Emissione preliminare