Caratteristiche
I Frequenza operativa: 40 MHzI Memorie:
I Program FLASH memory: 32 KBytes, 16 K-istruzionimemorizzabili
I Data RAM memory: 1536 ByteI Data EEPROM memory: 256 Byte
I Porte di I/O: 5 (port A, B, C, D, E)I Comunicazioni seriali:
I USART (universal synchronous asynchronous receivertrasmitter)
I 3-wire SPI (serial peripheral interface)I I2C (inter integrated circuit)
Caratteristiche
I Comunicazioni parallele: PSP (parallel slave port)I Timers interni: 4I Convertitore A/D: a 10 bits con 8 canali analogici di
ingressoI Set di istruzioni: 75I Tensione di alimentazione: +5V stabilizzataI Moltiplicatore hardwareI Codice sorgente compatibile con i pic 16 e 17
Clock
Tre configurazioni differenti
1. Oscillatore a cristalli o ceramicoI LPI XPI HSI HS+PLL
2. Circuito RCI RCI RCIO
3. Clock esternoI ECI ECIO
Oscillatore esterno
I pin OSC1 OSC2 sono collegati ad un oscillatore esterno
LP low power crystal
XP crystal/resonator
HS high speed crystal/resonator
HS+PLL high speed crystal/resonator con PLL abilitato:quadruplica la frequenza di oscillazione
Circuito RC ed clock esterno
RC OSC1 → RCOSC2 fRC /4
RCIO OSC1 → RCOSC2 pin I/O
EC OSC1 → ECOSC2 fRC /4
ECIO OSC1 → ECOSC2 pin I/O
ALU
Moltiplicatore hardware 8×8
VANTAGGI
– 1 solo ciclo macchina per eseguire moltiplicazione
– maggior throughput
– codice macchina piu snello
Memoria
Tre blocchi di memoria in ogni dispositivo:
I Program memory (FLASH)
I Data RAM memory
I Data EEPROM memory
Program e data memory utilizzano bus separati(architettura Harvard)
Program memory
I 32 KB di FLASH memoryI 16 KB di istruzioni (1 istr = 2 Byte)I stack memory a 31 livelli
– il contenuto del PC e inserito nello stack (PUSH/CALL)– viene eseguita la subroutine o servito l’interrupt– il contenuto del PC viene ripristinato (POP/RETURN)– particolari registri indicano lo stack overflow
I 1 ciclo macchina × istruzioneI 2 cicli macchina × chiamate a subroutineI pipeline delle istruzioniI La FLASH program memory e leggibile, scrivibile e
cancellabile durante le normali operazioni,– lettura: 1 Byte alla volta– scrittura: 8 Bytes in parallelo– cancellazione: 64 Bytes contemporaneamente
Data memory
I 16 banchi da 256 Byte (4096 Bytes) di tipo RAMI indirizzabile tramite 2 bytes:
I BSR 4 lsb seleziona quale banco di accessoI 8 bit indirizzo all’interno del banco
I GPR General Purpose RegisterI SFR Special Function RegisterI Status Register
N negative bitOV overflow bit
Z zero bitDC digit carry (sui lsb)
C carry (sui msb)
Interrupt
I due livelli di priorita– HIGH– LOW
I Interrupt interni– Scadenza di timer– Convertitore A/D– Modulo CCP– Comunicazione seriale
I Interrupt esterni– Cambiamento di stato sui pin delle porte di I/O
I Bit di controllo– Flag– Enable– Priority
Gestione degli Interrupt
– Il registro che abilita gli interrupt di una certa priorita vienedisabilitato
– L’indirizzo dell’istruzione del programma che si staeseguendo viene inserito nello stack
– Il vettore degli interrupt e caricato nel PC
– ISR individua l’interrupt che si e attivato
– Viene gestito l’interrupt
– A fine esecuzione della routine di interrupt vengonoriabilitati gli interrupt della stessa priorita
Porte di I/O
I Cinque porte, che possono funzionare da ingresso o dauscita, per grandezze sia analogiche che digitali
A : 7 bit, bidirezionaleB : 8 bit, bidirezionaleC : 8 bit, bidirezionaleD : 8 bit, bidirezionaleE : 3 bit, bidirezionale
I Tre registriTRISx definisce il verso del flusso di dati sul pin
PORTx serve per la lettura livello del pinLATx mappato in memoria, serve per l’acquisizione
e l’invio dei datiI Alcuni pin sono legati anche a dispositivi interni e non
possono essere usati quando questi sono attivi
Timer0
I 8-16 bit di risoluzioneI Interrupt generato da overflowI Va reinizializzato dopo l’interruptI Prescaler a 8 bitI Puo essere usato come contatore, rileva i
cambiamenti di stato di un pin
Timer1/Timer3
I 16 bit di risoluzioneI Interrupt generato da overflowI Va reinizializzato dopo l’interruptI Puo essere usato come contatore
Sincrono: clock internoAsincrono: clock esterno
I Prescaler a 2 bitI Reset CCP
Timer2
I 8-bit di risoluzioneI Registro del periodo a 8-bitI Interrupt al raggiungimento di PR2I Prescaler 2 bitI Postscaler 4 bitI Definisce il periodo della PWM
Convertitore A/D
I 8 canali in ingressoI 10 bit di risoluzioneI Vmax e Vmin definibili via software
I tensione di alimentazioneI riferimenti letti da particolari pin
I qualsiasi piedino del convertitore puo essere un ingresso Ao D
I i campioni sono generati con successive approssimazioniI il tempo di conversione e dato da
TACQ = TAST + THCC + τ
dove TAST e il tempo necessario per amplificare l’invresso,THCC e il tempo di carica del condensatore di tenuta e τ e unparametro dovuto alla temperatura, che va considerato solo sequest’ultima supera i 25◦.
Modalit a Compare/Capture
Compare Memorizza il valore del Timer1 (Timer3) alverificarsi di particolari eventi sul piedinoRCx/CCPx
fronte di salitafronte di discesan-esimo fronte (n=4,16)
Capture Compara il valore del Timer1 (Timer3) con ilregistro CCPRX e al verificare dell’uguaglianzapone il piedino RCx
altobassoinvertitoinvariato
Modalit a PWM
PWM onda quadra di periodo prefissato TPWM all’internodel quale il segnale puo stare ad un valore alto perun tempo Tdc , detto duty cycle.
TPWM viene realizzato impostando il registro del periododel timer2 PR2 e si puo calcolare come
TPWM = PR2 · 4 · TOSC · Ptmr2
dove TOSC e determinato dall’oscillatore esterno ePtmr2 e il valore del prescaler del timer2
Tdc viene inserito in appositi registri del modulo PWMed ha una risoluzione di 10 bit