Tips & Tricks - PIC

 

Come funziona un PORT


Queste pagine sono state scritte per fornire una visione di insieme, ma sufficientemente dettagliata, di come sono strutturate le logiche che stanno dietro ai pin del PIC.

Una conoscenza sufficiente di questa parte del microcontroller consente di poterlo utilizzare al meglio e di evitare banali errori.

 


Struttura generale di un GPIO

Usiamo senza problemi le funzioni di GPIO del microcontroller, come ingressi e come uscite, ma quanti si sono chiesti cosa c'è dentro al chip, dietro a questa apparentemente semplice funzione ?

Il foglio dati del microcontroller (PIC16F87x) riporta uno schema di quello sta dietro al pin.

Questo è un tipico port con la possibilità di assumere, sotto controllo del programma, le funzioni di:
  • uscita digitale
  • ingresso digitale
  • ingresso analogico

Microchip schematizza i circuiti che gestiscono le varie modalità con funzioni logiche standard (AND, OR, Tri-state, flip-flop D) per rendere comprensibile la logica di comando.

Questa circuiteria si ripete per ogni pin di I/O, con le variazioni dovute alla possibilità di collegare al pin i vari moduli interni (USART, TIMER, MSSP, HLDV, PWM, ecc).
Nel caso che vediamo qui, la funzione addizionale è quella di ingresso analogico per il modulo AD converter.

 
Possiamo evidenziare attraverso i colori le arre interessate dalle varie funzioni.
  • in ROSSO, l' area di uscita: il bit di dato, reso sul Data Bus, è condizionato dai segnali WR Port, WR Tris e RD Tris e reso al pin attraverso una totem pole di transistor MOS
     
  • In VERDE, l' area di ingresso. Il segnale in entrata nel pin è condizionato da un gate che seleziona la funzione analogica o quella digitale. Viene poi latchato in un flip-flop e inviato al bus dati
     
  • in MARRONE, l' area analogica. Il segnale in ingresso viene separato dal flip-flop dell' input digitale ed è istradato solo verso il modulo AD

Il bus dati è comune, quindi, sia per il dato in uscita che per quello in ingresso: la logica dell' I/O consente di applicare al bus correttamente una o l' altra delle funzioni. Invece, il segnale analogico arriverà sul bus dati solo dopo essere passato attraverso la conversione effettuata dal modulo AD.

Vediamo ora nei dettagli la logica delle varie sezioni

 


Il PORT come uscita

La sezione "di potenza" del pin configurato come uscita è costituita da un totem pole di transistor MOS.

Se confrontiamo un totem pole di transistor BJT con uno di transistor MOS possiamo rilevare che entrambi sono costituiti da due componenti complementari, ovvero un PNP e un NPN a cui corrispondono rispettivamente un MOS P e un MOS N.

La configurazione a lato ha in comune gli elettrodi di comando (basi o gates)

Il  totem pole bipolare è non-invertente e non aggiunge alcun guadagno in tensione, per cui, teoricamente, il suo tempo di commutazione è quello del pre-driver che li comanda. Invece fornisce un guadagno di corrente, anche ampio, che riduce l' impedenza di uscita e permette di azionare carichi capacitivi, sia come source che come sink. Offe una velocità di commutazione media e non è sempre adatto nel caso di alte frequenze.
Invece, alte frequenze di lavoro sono più facilmente raggiungibili utilizzando componenti MOSFET complementari a canale P e N. A differenza dei BJT, il totem pole MOSFET offre un guadagno di tensione che migliora il tempo di salita e di discesa del segnale applicato. Particolare dei MOS è l' avere il gate che presenta una caratteristica capacitiva, per cui viene richiesta un forte impulso di corrente agli istanti di commutazione per caricare/scaricare le capacità dei gates, dopo di che la corrente di mantenimento è praticamente nulla.

Nella configurazione a gate in comune, questo totem pole è invertente

Livello Gates N P Livello Pin
Vdd - H conduzione blocco L
Vss - L blocco conduzione H

Se si applica la Vdd, si ottiene la chiusura dell' interruttore N, che collega il pin comune al GND; se si applica la Vss, si chiude l' interruttore P, che collega il pin alla tensione positiva.
Il gate in comune assicura che sia impedita la conduzione di entrambi i MOS, il che porterebbe ad un corto circuito tra la Vdd e la Vss, data la bassissima resistenza interna dei semiconduttori.
Si osserva, però,  che se i gate sono in comune, non esiste la possibilità di bloccare entrambi i commutatori, per cui il pin di uscita potrà solo seguire a livello basso o alto lo stato dei gates.

Poichè il pin deve poter supportare anche la funzione di ingresso, occorre fare in modo che il due MOS possano essere bloccati entrambi.
Altrimenti la Vss o la Vdd sarebbero sempre presenti sul pin, impedendo qualsiasi funzione di ingresso e con il rischio di danneggiare sia i MOS che il circuito esterno.
Immaginiamo che il MOS P sia in conduzione: questo collega il pin alla Vdd, limitando la corrente alla sola resistenza interna del MOS. Se applicassimo all' ingresso un segnale a livello basso, si creerebbe un corto circuito. E così pure se per il MOS N in conduzione con un livello alto applicato.

Questa possibilità di blocco di entrambi i commutatori è ottenuta con due gate, un AND e un OR.

Se torniamo allo schema iniziale, osserviamo che i gate dei MOS non sono in comune, ma sono comandati ognuna separatamente attraverso due funzioni logiche:
  • un OR comanda il MOS a canale P
  • un AND comanda il MOS a canale N

Che cosa è che deve impedire ai MOS di condurre ?
E' lo stato del bit di direzione contenuto nel registro TRIS.
Questo bit stabilisce se il pin è una uscita (MOS abilitati) o un ingresso (MOS bloccati).

Il livello logico del dato in uscita, preso da Data Bus, viene caricato nel Data Latch con il segnale WR Port, generato ad esempio da una istruzione BCF (dato = 0) o BSF (dato = 1). Osservare come venga impiegata l' uscita del latch Q negato, che presenta un valore opposto a quello del dato caricato.

Opcode Data Bus Data Latch segnale A
Q Q/
BCF PORTx, n 0 0 1 1
BSF PORTx, n 1 1 0 0

Il bit della direzione della porta arriva pure esso attraverso il Data Bus e viene caricato nel TRIS Latch a seguito del segnale WR TRIS, generato da una istruzione che scriva questo registro, ad esempio BCF TRISx, n. Osservare che qui sono utilizzate entrambe le uscirte del latch, dirigendo quello non invertita, Q, all' OR (segnale B) e quella invertita, /Q, all' AND (segnale C).

Opcode Data Bus TRIS Latch segnale B segnale C
Q Q/
BCF TRISx, n 0 0 1 0 1
BSF TRISx, n 1 1 0 1 0

L' uscita dell' AND comanda il gate del MOS a canale P; l' uscita dell' OR comanda il gate del MOS a canale N.
I bit di TRIS e Dato sono conservati nei latch relativi.

TRIS Latch Data Latch segnale A segnale B segnale C uscita OR
A | B
uscita  AND
A + C
MOS
P
MOS
N
pin
0 0 1 0 1 1 1 blocco conduzione L
0 1 0 0 1 0 0 conduzione blocco H
1 0 1 1 0 1 0 blocco blocco -
1 1 0 1 0 1 0 blocco blocco -

Il bit di TRIS, conservato nel TRIS Latch, a livello 1 blocca i MOS e abilita la funzione di ingresso. Se entrambi i MOS sono bloccati, la loro resistenza interna è estremamente elevata e nessuna corrente viene emessa sul pin, che può ricevere così un segnale dall' esterno.
Il bit di TRIS a livello 0 abilita i MOS e la funzione di uscita. In questo caso, il livello del bit di dato viene passato in uscita e manda in conduzione uno dei due MOS.



Read TRIS

Il valore del bit scritto nel TRIS Latch può essere riletto con un semplice meccanismo

Un gate tri-state riceve in ingresso il segnale B, che corisponde al valore negato del bit di TRIS conservato nel TRIS Latch.

Il gate è invertente e la sua uscita D è collegata al bus dati.

Abilitando il gate con il segnale RD TRIS, generato, ad esempio, a seguito di una istruzione

MOVF  TRISn, W

il livello B invertito passa sul Data Bus per essere letto dall' unità centrale.

 


 

Il PORT come ingresso

La logica di ingresso è molto semplice

Il segnale proveniente dall' esterno e applicato al pin viene condizionato da un gate AND.
Se è selezionato il modo Analogico, il gate impedisce al segnale di ingresso di proseguire verso il latch. Un livello Analog Input Mode arriva dal registro ADCON ed è applicato ad un ingresso invertente dell' AND.
Analog 
Mode
inv. input I/O pin TTL In buffer
uscita
0 1 1 1
0 1 0 0
1 0 1 0
1 0 0 0

Ovvero, se il bit di Analog Mode è a 0, il livello del pin di IO è applicato all' ingresso D del latch.
L' uscita Q del latch è abiltata dal segnale RD Port, invertito; questo segnale è generato, ad esempio, a seguito di una istruzione BTFSC PORTx, n.
Il RD Port ha anche la funzione di abilitare un gate tri-state che mette in comunicazione l' uscita Q del latch con il Data Bus, trasferendo così lo stato del pin all' unità centrale.

Se osserviamo lo schema complessivo iniziale possiamo notare che la funzione di ingresso digitale è sempre attiva in concomitanza con quella di uscita digitale. Questo permette di leggere lo stato effettivo del pin, sia che si tratti di un segnale esterno, sia che si tratti dello stato imposto dai MOS in uscita. La lettura dello stato del pin in condizioni di uscita digitale attivata è indispensabile per le operazioni di modifica dello stato del bit tramite una operazione di scrittura come ANDLW o ADDWF.
Questo perchè il sistema impiegato nei PIC è quello detto R-M-W


 

Il LATx dei PIC18

Per ovviare al problema dell' R-M-W, nei PIC enhanced è stata implementata una struttura leggermente diversa, ma fondamentalmente efficace.

Se osserviamo la differenza con lo schema iniziale, quello dei PIC mid-range, notiamo immediatamente che si è aggiunto un gate tri-state che mette in comunicazione l' uscita Q del Data Latch con il bus dati (evidenziato in rosso).

Questa connessione permette di leggere NON lo stato del pin, ma lo stato del latch e quindi evitare il problema dell' R-M-W.

L' abilitazione RD LATx viene fornita da una istruzione che legge il registro di LAT, ad esempio BTFSC LATx, n.

Si può osservare dallo schema la differenza tra la lettura di LAT e quella di PORT:

  • leggendo PORT si abilita RD Port come visto prima, quindi si collega al bus il livello fisico del pin in quell' istante determinato (circuito blu)
  • leggendo LAT, invece, si legge lo stato del Data Latch, prima del buffer di uscita (circuito rosso)

Per quanto riguarda la scrittura, una operazione diretta a LAT è in effetti diretta al Data latch, quindi:

BSF LATx, n è del tutto identico a BSF PORTx, n

Maggiori dettagli sul problema R-M-W sono presentati qui.


 

Ingresso Analogico

Da quanto abbiamo visto finora è facile capire come funziona il meccanismo dell' ingresso analogico.

Se ci rifacciamo a quanto detto prima a riguardo del PORT come ingresso, il segnale Analog Input Mode inibisce il gate AND del TTL Input Buffer e collega direttamente l' IO pin al modulo AD (circuito giallo).

V anno osservate alcune particolarità:

  1. la modalità di ingresso Analogico esclude quella di ingresso digitale, ma non quella di uscita digitale
  2. il canale di ingresso verso il modulo AD può essere in comune con altre funzioni, come ad esempio li moduli HLVD e i comparatori

Il primo punto indica che è possibile avere il pin configurato come out digitale e nello stesso tempo aver attivato l' ingresso del modulo AD.
Ovviamente questa configurazione è da evitare assolutamente sia perchè il modulo AD leggerebbe solo il livello alto o basso applicato dal buffer MOS al pin, sia perchè si rischierebbe di danneggiare sia il buffer che il circuito esterno se i livelli di tensione sono tali da far circolare forti correnti, limitate solo dalla resistenza di conduzione dei MOS.
Per cui è indispensabile configurare come input i pin che si vogliono usare come ingressi AD: la configurazione come input blocca il buffer MOS.

 


Evitare conflitti tra pin e periferiche

In generale, per evitare problemi di conflitti tra segnali di ingresso al chip e segnali in uscita è opportuno inserire, in fase di sviluppo, delle resistenze di basso valore (100 ohm o più) in serie ai pin del micro. Queste resistenze, se non in casi estremi, non disturbano il funzionamento del circuito, ma limitano la corrente nei casi in cui sia il PIC che il circuito esterno cerchino di inviare corrente o siano in condizioni da creare corti circuiti.
Questa situazione capita quando si utilizza, ad esempio, una comunicazione seriale a 1 filo verso una periferica e si richiede il cambio di direzione del pin da ingresso a uscita: in questa situazione è possibile che per istanti più o meno lunghi sia il PIC che la periferica cerchino di alimentare la connessione o si trovino a livelli opposti. La cosa può non avere effetto se i tempi di commutazione della direzione sono a livello di ciclo di istruzione, ma se per caso il debug viene arrestato in questa condizione o il firmware non perfetto la consente, sono possibili danni al port e/o alla periferica.
Una volta fissato il progetto e consolidato il firmware, queste resistenze possono essere eliminate.

Il secondo punto indica che è possibile attivare contemporaneamente sulla stessa linea linea di ingresso il canale AD e, ad esempio, l' HLVD, che ricevono entrambi lo steso segnale analogico.
Evidentemente sarà necessaria una sorgente del segnale analogico con impedenza molto bassa per poter pilotare entrambi i carichi nei termini che il foglio dati impone.


 

Altri PIN

Alcuni pin hanno anche altre funzioni applicabili e non tutti i pin hanno le stesse possibilità.
Ad esempio, nelle immagini usate per la descrizione precedente, si fa riferimento ad un PORTA, dove, nel caso di RA5, oltre alle funzioni digitale e analogica, esiste anche quella si Select per il modulo MSSP.
Sarà sempre necessario consultare il foglio dati per rilevare quali impostazioni sono possibili e su quali pin e port.


PORTA,4

Un cenno particolare si può fare a riguardo del pin RA4 (PORTA,4) che generalmente ha un buffer di uscita costituito dal solo MOS N, ovvero un Open Drain.

Qui vediamo il particolare del PORTA, 4 preso dal foglio dati di un mid-range (16F876/77), ma la descrizione è valida per i PIC in generale.

Si nota immediatamente la mancanza del MOS P, per cui la logica di comando è ridotta al solo gate AND e funziona come visto più sopra (circuito rosso).

Come visto prima, il livello logico imposto al bit di TRIS stabilisce se è attiva l' uscita oppure è bloccata per avere solo ingresso.
 
Qui, il pin supporta anche le funzioni di uscita del comparatore e del CCP1, per cui si è aggiunto uno switch che, programmato a livello 0 abilita la funzione digitale e a livello 1 abilita gli altri moduli di uscita.

Va da se che per usare le funzioni C1OUT e CMCON è necessario che il pin sia configurato come uscita: lo switch aggiunto isolerà il Data Latch.

Se il totem pole poteva comandare sia carichi collegati al positivo che carichi collegati alla massa, l' open drain può comandare solamente carichi collegati al positivo (sink current, indicata dalla freccia i).

Quindi un LED collegato tra il pin e la Vss non potrà accendersi. Sarà necessario collegarlo tra il pin e la Vdd.

Se si deve derivare un segnale logico dal pin, occorre inserire un pull-up tra il pin e la Vdd, altrimenti non si avrà livello logico.

Altra nota importante è che questo open drain non è previsto per avere applicata tensione superiore alla Vdd; quindi non è possibile azionare carichi a tensioni superiori.

 


 

Ingressi con Trigger di Schmitt

Nel caso esemplificato, il pin ha anche funzione di ingresso per il clock del Timer0 (TMR0 Clock Input).

A questo scopo si è aggiunto uno Schmitt Trigger per fornire livelli di commutazione adeguati ad un ingresso "sensibile".

La caratteristica del trigger è quella di commutare il suo stato di uscita solo a ben precisi livelli della tensione di ingresso (caratteristico diagramma di uscita con isteresi), fornendo un segnale quanto possibile "pulito" e senza incertezze al clock.

Dato che il trigger è inserito subito dopo al pin di IO (circuito verde), il trigger è efficace anche quando si utilizza il normale ingresso digitale, dato che la sua uscita comanda in comune sia il TMR0 Clock Input che l' ingresso D del latch di lettura.

 


 

PPS Port

Il PORTD solitamente supporta la funzione PPS

Paralle Port Slave è una modalità che permette di inserire il PIC come periferica (slave) del bus di un microprocessore.
I dati sono scambiati tra PIC e host su un bus a 8 bit, controllato dai classici segnali di Write negato, Read negato e Chip Select negato.

Diventa necessario gestire i segnali di sincronismo del bus dell' host, per cui alcuni pin di PORTE vengono dedicati ai segnali /RD, /WR e /CS, che , attraverso una semplice logica di AND abilitano al direzione dei dati sul pin.

/WR assieme a /CS abiliterà la scrittura dei dati e /RD con /CS la lettura.

Una logica OR deriva questi segnali per attivare, se abilitata, una chiamata di interrupt per una gestione non in polling.

Per una precisa commutazione, gli ingressi dei segnali di controllo del bus hanno un  Trigger di Schmitt in serie.

Il resto della logica del PORT è analogo a quanto finora visto.

 


Pin con pull-up e interrupt

Più complicata è la logica di controllo dei pin del PORTB che dispongono di:
  • pull-up programmabile (circuito verde)
  • interrupt al cambio di stato (circuito rosso)
  • funzioni di comunicazione per la programmazione (circuito giallo)

Si può capire facilmente la logica del Weak Pull-up: si tratta di un pull-up. ovvero di una resistenza che collega la linea alla Vdd, realizzata non con componenti passivi, ma con interruttori MOS costruiti con una resistenza interna elevata (attorno a 100 k).

Un gate AND riceve il bit  /RBPU e comanda il pull-up solamente se la funzione impostata è quella di ingresso (se l' uscita Q del TRIS Latch è a 1, il buffer tri-state -qui semplificato come un gate non invertente- in uscita è bloccato e il pull-up dipende da /RBPU. Se il Q è a livello 0, il buffer è abilitato mentre il pull-up non è inseribile, qualunque sia il valore di /RBPU).

Da notare che /RBPU entra in un terminale invertente dell' AND e quindi la sua logica è rovesciata, ovvero:

/RBPU pull-up
1 no
0 si

Una logca più complessa, che utilizza un latch e diversi gate (2 AND, un EXOR e un OR finale che mixa i segnali provenienti dai vari pin) consente di inviare sulla linea di interrupt una chiamata alla variazione di stato del pin.
I segnali Q1 e Q3 sono relativi alle transizioni di clock (4) che servono al completamento di un ciclo della CPU.

La funzione di In Serial Programming (ICSP/ICD), che ha un ingresso a trigger dedicato, viene selezionata non a livello di registri della porta, ma di configurazione iniziale (DEBUG= ON/OFF; LVP=ON/OFF).

 


 

Pin dell' MSSP

I pin di PORTC hanno funzioni speciali collegate al modulo MSSP e all' USART.

Se per quest'ultimo non ci sono particolari esigenze, a parte un trigger in ingresso per ripulire il segnale, l' uscita e l' ingresso dell' MSSP in modalità I2C richiede diverse variazioni.

In primo, luogo I2C è un bus con pull-up esterno sulla linea. Questo richiede  driver open drain.
A questo scopo, un gate addizionale (circuito rosso) trasforma il totem pole in uscita a singolo transistor, escludendo il MOS P.

In ingresso, invece, ci sono due trigger distinti, uno per i livelli I2C e uno per i livelli SMBus. Infatti le due modalità, pur essendo analoghe come protocollo, utilizzano livelli logici differenti che non sarebbero facilmente distinguibili da un trigger unico. Quindi Microchip ha optato per la realizzazione di due diversi.

I segnali di uno solo dei due canali, selezionati da uno switch comandato dal bit 6 di SSPSTAT, sono inviato al' ingresso SSP Input del modulo MSSP.
Questa connessione è in comune con l' ingresso Q del latch di lettura della modalità ingresso digitale.

 

Analoga la situazione dei pin RB7:5, dove è il bit Port/Peripheral Select ad effettuare il comando dello switch che seleziona tra dati digitali e uscita delle periferiche interne.

In aggiunta a questo, un bit Peripheral OE (Output Enable), assieme al TRIS Latch, abilita l' accesso all'uscita alle periferiche (circuiti evidenziati in giallo).

Anche qui, dato che si tratta di segnali di comunicazione seriale, l' ingresso prevede un Trigger di Schmitt.

Un appunto riguarda una nota (1) evidenziata in rosso, che appare vicino al quadrato barrato che rappresenta il pin.
Questa nota fa riferimento alla presenza di diodi di protezione del pin dalle tensioni inverse o superiori/inferiori alla tensione di alimentazione e che possono essere verso la Vss e la Vdd o solo verso la Vss.

 


Pin degli oscillatori

Più complessa è la struttura dei pin a cui fanno capo sia finzioni GPIO che oscillatore:

Questo è lo schema di principio del pin RA7 nel PIC18F1220/1320.

Questo pin fa parte del sistema dell' oscillatore esterno, in genere assieme a RA6.

Una maggiore complessità nell' abilitazione del port consente di indirizzare la funzione del pin all' oscillatore.

Per le modalità LP, XT, HS, la coppia RA7/RA6 è utilizzabile con componenti esterni (quarzo, condensatori, resistenze). 
Da notare come in modalità SLEEP il gate dell' oscillatore possa essere bloccato per minimizzare il consumo.

Sono poi possibili altre configurazioni dell' oscillatore, che interessano in modo diverso i due pin:

Modo RC.

Il clock è stabilizzato da un gruppo RC esterno applicato a RA7, mentre su RA6 è disponibile il clock / 4.

Modo RCIO.

Il clock è stabilizzato da un gruppo RC esterno applicato a RA7, mentre  RA6 può essere utilizzato come GPIO.

 

Modo EC.

Il clock arriva da una sorgente esterna. Deve avere le caratteristiche spcificate sul foglio dati. In questo caso la logica del port funge solamente da gate per trasferire il segnale al resto del circuito.
Il pin RA6 riporta all' esterno il clock/4.

Modo ECIO

Il clock arriva dall' esterno, come sopra e il pin RA6 è utilizzabile come GPIO.

Modo INTIO1.

Il clock è generato dall' oscillatore interno. Su RA6 è disponibile il clock/4 e RA7 diventa un GPIO.

Modo INTIO2.

Il clock è generato dall' oscillatore interno. RA6  e RA7 diventano  GPIO.

 


MCLR

Il pin del Master Clear può assumere varie funzioni:

  • Master Clear - reset esterno

  • GPIO - solitamente un port RE

  • Ingresso dalla Vpp durante la programmazione HV

La struttura della logica che sta dietro il pin è schematizzata a lato.

E' stata evidenziato in verde il percorso del segnale del reset esterno:

  • Il segnale, dal pin arriva ad un gate di rilevamento (Low-Level Detect) a cui fa seguito un filtro per attenuare eventuali disturbi;
  • dopo il filtro, un gate OR è abilitato dal segnale di configurazione MCLRE (invertito) e trasferisce il livello di reset alla logica successiva.
Durante la programmazione HV (con tensione superiore a quella di alimentazione), questa tensione viene applicata al pin MCLR.

Un gate di rilevamento dell' alta tensione permette a questo livello di passare alla logica di scrittura della memoria programma e della EEPROM.

Se la configurazione esclude la funzione di MCLR, portando a 1 il segnale MCLRE, il pin può essere impiegato come un GPIO, ma solo come ingresso.

In giallo è evidenziata la circuiteria interessata.

  • All' ingresso fa seguito un trigger di Schmitt che ripulisce il segnale e lo invia ad un latch.
     
  • Il latch viene letto abilitando il segnale RD PORTx, di cui il pin diventa parte.

Gli schemi qui sopra sono relativi al PIC18F1320, dove MCLR può diventare RA5. Per altri processori, MCLR solitamente diventa RE3.


Pin speciali

Alcuni pin sono programmabili come uscite o ingressi di moduli interni di comunicazione (UART, MSSP, ICSP-ICD, ecc.).

Questo è il pin RB7 del PIC18F1320.

In questo caso le funzioni associate sono molteplici:

  • GPIO
  • ECCP1
  • T1OSCEN
  • ICSP - PGD
  • RB Pull-up
  • Interrupt del PORTB

La logica permette di scambiare le varie funzioni a seconda delle impostazioni dei registri di controllo.

Va notato il trigger sull' ingresso PGD per ripulire il segnale.

Un altro esempio di port complesso è RB2, sempre dal PIC18F1320.

In questo caso al port convergono:

  • GPIO
  • EUSART (TX)
  • AD converter
  • RB Pull-up
  • CK input
  • interrupt INT1

Anche qui la logica permette di scambiare le varie funzioni a seconda delle impostazioni dei registri di controllo.

Si può osservare come i weak pull-up siano realizzati con componenti attivi (MOSFET a canale P a resistenza di conduzione elevata) e non con componenti passivi. 

Esiste poi un' ampia varietà di PIC con funzioni particolari, come driver per LCD, USB, ecc) con scehm più o meno complessi, che per analogia con quanto visto finora, non dovrebbe essere difficile interpretare.


 

NOTE

  1. Questa pagina vuole essere solamente una vista d' insieme della struttura tipica dei port di un PIC generico.
    Le particolarità specifiche di ogni port devono essere identificate leggendo con cura il foglio dati di ogni componente, in quanto non tutti i processori hanno le stesse disponibilità, configurazione e funzione dei port e tra processore e processore, sopratutto se di famiglie diverse, possono esserci differenze anche sensibili nelle funzioni supportate.
     

  2. Uguale necessità riguarda la situazione dei port al reset (default), che può variare a seconda delle famiglie. Il non considerare questi punti porta all'impossibilità di utilizzare correttamente i pin.
     

  3. Si ricorda di nuovo che normalmente RA4 è un open drain e quindi non può comandare carichi alla Vss, oltre a non sopportare tensioni superiori alla Vdd.
     

  4. Si ricorda che i pin utilizzati come ingressi analogici vanno settati come input nei TRIS corrispondenti
     

  5. I Weak Pull-up di PORTB sono pull-up attivi e, anche se raramente, possono trovare incompatibilità se gli ingressi sono pilotati da alcuni tipi di circuito esterno, in particolare se è richiesto dal pull-up una corrente ben determinata.
     

  6. Informazioni più dettagliate sul problema dell' R-M-W sono disponibili in altre pagine dei T&T

 

 

 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 09/12/10 .