I2C Bus con Master Synchronous Serial Port – Parte 1

Microchip

Il modulo Master Synchronous Serial Port di Microchip è utilizzato, nel nostro caso, per implementare due protocolli seriali utilizzati nella maggior parte delle applicazioni di tipo embedded: I2C bus e Serial Peripheral Interface, meglio conosciuto come SPI. In questo articolo, vediamo nei dettagli come il primo di questi diffusissimi protocolli sia stato integrato nella nuova famiglia di micro, l’Enhanced-Mi. L'articolo, tratto dal numero 107 di Firmware, anno 2014, rientra tra i contenuti della Rubrica Firmware Reload contenente approfondimenti e articoli tecnici della passata rivista cartacea Firmware.

Microchip ha sempre cercato, fin dall’inizio, di proporre soluzioni integrate in grado di assicurare al progettista hardware e firmware la maggiore flessibilità possibile, conciliando le esigenze prestazionali con quelle tecniche. Questa possibilità si è concretizzata con un ampio spettro di scelte progettuali che spaziano da microcontrollori con LCD controller a segmenti e grafici fino ad arrivare a soluzioni DAC o ADC a 12 bit, passando per PWM avanzati insieme a comparatori e timer multipli, EUSART e MSSP multipli, in grado di conciliare le esigenze più sofisticate con LAN o voltage detector. Non solo, Microchip ha anche l’obiettivo, così come la maggior parte dei costruttori di processori embedded, di ridurre, nel limite del possibile, la componentistica esterna al fine di ridurre l’ingombro. Grazie a questa tendenza tecnologica si è arrivati a definire una nuova famiglia di processori, l’Enhanced-Mid Range. Di questa famiglia esistono diverse varianti, partendo da quelle a 8-bit e coinvolgendo anche proposte da 16 bit. Infatti, come possiamo vedere in Figura 1, lo schema a blocchi riportato mostra una soluzione semplificata a 8-bit.

embedded

Figura 1: Schema a blocchi semplificato di configurazione a 8 bit

Dalla figura possiamo notare la presenza di due spazi di memoria separati per un massimo di 8K d’istruzioni di programma e 446 byte di dati. Non solo, notiamo anche la presenza di due bus separati, uno per ogni spazio di memoria, che possono anche essere attivi contemporaneamente. Pertanto, durante il recupero delle istruzioni sul bus programma, i dati possono essere letti o scritti sul bus dati. Inoltre, il bus per la memoria di programma è ottimizzato per una parola d’istruzione a 14 bit: per questa ragione le istruzioni, quando possibile, possono essere eseguite in un singolo ciclo migliorando così le sue prestazioni. Potendo riassumere le caratteristiche dei mid-range enhanced a 8 bit possiamo senza dubbio puntare sulla memoria (memoria programma Flash fino a 56k, RAM fino a 4k e 256 bytes di EEPROM), sui due puntatori indiretti, sulla tecnologia XLP (nelle versioni “LF”, con correnti di sleep di 90 nA, WDT corrente di 500 nA, oscillatore di Timer1 da 600 nA, tutto con alimentazione 1,8V con 5,5 V di massima), sul ruolo del suo oscillatore interno (frequenza tra 16 e 32 MHz), su un miglioramento sostanziale della latenza sotto interruzione (una riduzione a 3-4 cicli per interrupt sincroni), su un set di istruzioni studiato per sfruttare le nuove caratteristiche (con set di istruzioni esteso a 49 opcodes con enhanced shift, enhanced aritmetic, fast banking, relative branch). Nello specifico, questa nuova famiglia offre diverse nuove caratteristiche da un punto di vista software. È possibile, ad esempio, sfruttare il registro BSR o utilizzare la nuova tecnologia degli oscillatori, tanto da consentire al processore di lavorare senza ricorrere a componenti esterni, da 32 KHz a 32 MHz. E' anche possibile operare con i registri del processore da ogni banco, oltre a sfruttare un nuovo stack stratificato a diversi livelli con la possibilità di gestire l’overflow e l’underflow.

Microchip, oltre ad inserire le periferiche già ottimamente collaudate, ha deciso di offrire nuove periferiche in grado di assicurare un maggiore controllo delle criticità esterne o interne. Infatti, sono presenti elementi quali il ConFigurable Logic Cell (CLC), il Complementary Wave form Generator (CWG), Complementary Output Generator (COG), Numerically Controlled Oscillator (NCO), Programmable Switch Mode Controller (PSMC), Temperature Indicator (TI), Digital Signal Modulator (DSM), Timer1 Gate (T1G) e Set Reset latch (SR). In particolare, il modulo Temperature Indicator (TI) si occupa di controllare la temperatura del processore al fine di mitigare i rischi, aumentando l’efficienza dell’applicazione. Grazie a questa nuova possibilità, Microchip ha integrato un sistema per misurare la temperatura del microcontrollore, con intervallo da -40 a +85 gradi centigradi (grado commerciale). Il modulo è disabilitabile e programmabile, questo al fine di ridurre il consumo e adattarsi ai diversi modi di funzionamento: l’uscita del sensore termometrico è collegata direttamente ad un ingresso interno dell’ADC e non sottrae pin alle misure esterne. In questo caso, il sensore di temperatura è integrato nel silicio e misura la temperatura generando una tensione proporzionale. Il circuito si presta bene per essere utilizzato come un rilevatore di soglia di temperatura o come un indicatore di temperatura più accurato, perché è calibrabile.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend