I PORT come ingresso
Siccome ogni pin ha corrispondenza in un bit di un
registro interno, applicando a quel pin un adeguato valore di tensione,
si potrà leggere questo valore come livello 1 o 0 del bit relativo.
E, dato che il bus è comune a registri di I/O e a memoria dati, il
valore contenuto in dato registro appare al processore come un dato e può
essere trattato di conseguenza.
Questo meccanismo permette di trasformare livelli di tensione in dati
logici elaborabili dall' unità centrale.
In ingresso i pin dispongono di un buffer ad alta
impedenza che ha tipicamente tre configurazioni:
Ingresso
|
Livello 1
|
Livello 0
|
Note
|
TTL |
> 2V @ Vdd= 5V |
< 0.8V @ Vdd=5V |
Un ingresso TTL riconosce una tensione inferiore al 16% della
tensione di funzionamento (< 0, 8V a VDD = 5V) come un livello
basso e una tensione di circa il 40% della tensione di funzionamento
(> 2, 0V a VDD = 5V) come un alto livello. L'area intermedia tra
questi due valori non è definito.
In realtà, gli ingressi non sono così esigenti, ma i valori
indicati sono quelli sono garantiti dal costruttore ed occorrerà
che il segnale in ingresso sia adeguato, con fronti di salita puliti
e privo di rumore sovrapposto. |
TTL con Pull-Up |
idem, con pull up circa 100k |
In alcuni PORT è possibile
attivare un resistore di pull-up. Questo garantisce che un ingresso
aperto
sia
a livello alto.
Questa situazione è utile quando sia collegato un pulsante o un
interruttore, senza
richiedere pull-up esterni.
Solitamente i PORTB
hanno tali resistenze pull-up con il bit di controllo RBPU.
Da notare che RBPU a 0
abilita i pull-up (default al POR) e viceversa.
Alcuni modelli hanno pull-up inseribili singolarmente. |
Schmitt Trigger |
> 80% Vdd |
< 20% Vdd |
L'ingresso di ST è considerato a livello basso quando la
tensione di ingresso è inferiore al 20% della Vdd.
Il livello alto è determinato da un ingresso > 80% della Vdd.
Valori intermedi tra questi due non sono considerati validi.
Gli ingressi ST sono adatti alla pre elaborazione di segnali che non
hanno un livello TTL perfetto, ad esempio non perfettamente
quadro o con rumore sovrapposto. |
Ai pin di ingresso corrispondono spesso delle protezioni
interne costituite da diodi collegati verso la Vdd e la Vss, allo scopo di
shuntare tensioni più elevate della Vdd o negative rispetto alla massa.
Anche per questo, i fogli dati sono la guida per informarsi su quali pin
hanno protezione o meno.
I PORT come uscita
Una trattazione dettagliata della struttura
generale hardware dei PORT la trovate in
queste pagine.
Qui ci limitiamo a dire che, in generale, l' uscita dei PORT
è configurata come un totem pole a MOSFET complementari.
Siccome ogni pin ha corrispondenza in un bit di un registro
interno, applicando a quel bit il valore voluto, si potrà comandare a
livello alto o basso il pin fisico.
E, dato che il bus è comune a registri di I/O e a memoria dati, il
valore contenuto in dato registro appare al processore come un dato e può
essere trattato di conseguenza.
Teoricamente i MOSFET collegano il pin alla Vdd o alla Vss;
tuttavia, il livello di uscita è influenzato dalla loro resistenza interna
e dalla corrente del carico applicato al pin.
In generale, si può dire che un PIC può comandare un
carico di 25 mA collegato o alla Vdd o alla Vss indifferentemente
Una trattazione più
dettagliata la trovate qui.
PIN particolari
Non si può terminare questa breve panoramica dei
PORT digitali senza ricordare alcuni punti chiave:
-
in molti chip, al POR, per default alcuni pin
sono programmati come ingressi analogici. Nel caso in cui si
vogliano utilizzare come I/O digitali occorre cambiare il
default
in molti chip, per default al POR, ai pin sono
applicate funzioni diverse da quelle digitali (ad esempio, i
comparatori). Anche in questo caso, se si vuole utilizzarli come
I/O digitali occorre cambiare il default
alcuni pin particolari possono essere utilizzati
solamente come ingressi. Ad esempio, questo è il caso del pin
MCLR che, in alcuni chip, può essere programmato come GPIO
digitale, ma solo con funzione di ingresso.
alcuni pin possono avere un buffer diverso dal
totem pole sopra citato. Ad esempio, PORTA4 (RA4) è tipicamente,
in uscita, un open drain e va impiegato di conseguenza
alcuni pin hanno funzioni specifiche che non sono
presenti in altri chip, come quelle relative all' USB o all'
Ethernet e quindi non sono utilizzabili come GPIO o lo sono con
limitazioni.
Come sempre, i fogli dati sono l' unica via per
venire a conoscenza delle particolari funzioni e prestazioni di un
particolare componente.
|
In ogni caso, una trattazione dettagliata della struttura
generale hardware dei PORT la trovate in
queste pagine.