Università degli Studi Roma Tre - A.A. 2008/2009

Microprocessori e microcontrollori

Corso di progettazione su SoC ARM

prof. Nicola Masarone

L'insegnamento è inserito nel corso di Laurea Magistrale in Ingegneria Elettronica per l'Industria e l'Innovazione (LM 29) (ordinamento secondo il DM 270/2004) presso l'Università degli Studi RomaTre per i curricula: Elettronica di potenza, Microelettronica e Biomedica.


Presentazione corso - 2/10/2008

Scarica la presentazione del corso

Giovedì, 2 ottobre 2008

ore 17:30 - Aula N20

Dip. di Ing. Elettronica

Via della Vasca Navale, 109

00146 - ROMA.


Torna su


Architettura ARM - Lezione 7/10/2008

Scarica la lezione del 7/10/2008

Introduzione al processore ARM; sistemi embedded; storia del processore ARM; prodotti commerciali e partners ARM; processore MU0; set di istruzioni MU0; formato indirizzi delle istruzioni; architettura RISC; stato ARM e Thumb; modi di funzionamento; registri generali e di stato; esempi di set di istruzioni CISC e RISC.

Torna su


LPC2103 - Lezione 9/10/2008

Lezione del 9/10/2008

Introduzione al controllore LPC2103; aspetti importanti; schema a blocchi; pin; memorie; interrupt; porte I/O; adc; uart; i2c; spi; ssp; timer; watchdog; reset e wakeup timer; rtc; pll; controllo di potenza; caratteristiche statiche e dinamiche.

Torna su


Laboratorio - Lezione 10/10/2008

Scarica la lezione del 10/10/2008

Il sistema di sviluppo; Integrated Development Environment (IDE): prodotti proprietari e open source; Eclipse; Free Software Foundation; GNU; GCC; GBD; Open On-Chip Debugger; plug-in CDT; introduzione all'uso di Eclipse; creazione di un nuovo progetto; importazione di file; macro; compilazione; make; upload.

Scarica Nuovo progetto in Eclipse


Guida alla creazione di un nuovo progetto in Eclipse ver 3.2.



Installazione Software

scarica SDK_eng4arm
scarica workspace per SDK_eng4arm

Come requisito sul PC deve essere presente una versione di Java Runtime. In caso contrario dovete installare prima questo prodotto.

Una versione potete scaricarla da qui JRE 1.50

Torna su


Architettura ARM - Lezione 14/10/2008

Scarica la lezione del 14/10/2008

Sessione di domande e risposte sulla lezione precedente; Program Status Register (CPSR - SPSR_exc); istruzioni di movimento, esempi di codice in assembler; istruzioni di tipo aritmetico, esempi di codice in assembler; istruzioni logiche, esempi di codice in assembler; istruzioni di salto, esempi di codice in assembler.

Torna su


LPC2103 - Lezione 16/10/2008

Lezione del 16/10/2008

Indirizzamento di memoria: mappe di memoria, rimappatura della memoria e blocco di avvio, eccezioni prefetch abort e data abort; configurazione dei pin: pinout, descrizione dei pin; blocco di connessione pin: funzionalità, applicazioni, descrizione, registri; porta GPIO: funzionalità, applicazioni, pinout, GPIO, FGPIO, registri, note di utilizzo, esempi.

Torna su


Laboratorio - Lezione 17/10/2008

Scarica la lezione del 17/10/2008

creazione di un nuovo progetto in Eclipse: importazione di un progetto di base, compilazione e build di un progetto software; collegamento al target mediante JTAG: upload del progetto nella flash del dispositivo; utilizzo della porta GPIO in input e output; accensione di un LED su breadboard; lettura di un tasto su breadboard; modifica del codice per nuove funzionalità; confronto tra GPIO e FastIO.


Scarica il progetto led_button

Torna su


Architettura ARM - Lezione 21/10/2008

Scarica la lezione del 21/10/2008

Sessione di domande e risposte sulla lezione precedente; istruzioni di lettura singola da memoria; istruzioni di scrittura singola in memoria; esempi in assembler di load/store singoli; istruzioni di lettura multipla da memoria; istruzioni di scrittura multipla in memoria; esempi in assembler di load/store multipli; copia di registri con uso dello stack.

Torna su


LPC2103 - Lezione 23/10/2008

Lezione del 23/10/2008

Timer: modi di operazione, applicazioni, descrizione, mappa dei pin; descrizione dei registri interni: flag di interrupt, modalità counter, modalità timer, modalità capture, modalità match, modalità PWM; regole di utilizzo per la modalità PWM; esempi di utilizzo in modalità timer; architettura.

Torna su


Laboratorio - Lezione 24/10/2008

Scarica la lezione del 24/10/2008

Nozioni di base sulla tecnica PWM; definizione ed esempi di duty cycle; utilizzo del Timer1 in funzione di ritardo programmabile; accensione alternata di un led con periodo variabile mediante tasto; ispezione con breakpoint nel ciclo while principale; utilizzo del Timer0 come generatore PWM; accensione di un LED con due livelli d'intensità selezionabili con tasto; ispezione con breakpoint nel ciclo while principale; modifica del codice per una variazione continua dell'intensità luminosa.


Scarica il progetto timer_delay

Scarica il progetto test_pwm

Scarica The GNU C Programming Tutorial di Mark Burgess - Faculty of Engineering , Oslo College

Torna su


Architettura ARM - Lezione 4/11/2008

Scarica la lezione del 4/11/2008

Sessione di domande e risposte sulla lezione precedente; copia di registri con uso dello stack; animazione degli scambi tra registri e memoria; gestioni dello stack e relative istruzioni multiple; istruzioni di scambio, coprocessore e SWI; esempi in assembler di swap, semaforo e SWI; codici di condizione ARM; condizioni di branch; esempi di istruzioni condizionate; algoritmo del massimo comune divisore; algoritmo di ricerca del massimo; algoritmo di azzeramento di un vettore; architetture ARM.

Torna su


LPC2103 - Lezione 6/11/2008

Lezione del 6/11/2008

Analog-to-Digital Converter (ADC): caratteristiche funzionali, descrizione, mappa dei pin; descrizione dei registri; modalità di operazione: conversione con sincronismo hardware, interrupts, accuratezza.

Torna su


Laboratorio - Lezione 7/11/2008

Scarica la lezione del 7/11/2008

Nozioni di base sulla tecnica ADC; definizione ed esempi di utilizzo; condizionamento del segnale; misure di tensione e corrente; utilizzo del convertitore in software mode; pilotaggio LED in PWM regolato da potenziometro letto da ADC; misura di corrente tramite resistenza nota; misura di potenza dissipata.


Scarica il progetto test_ADC

Torna su


Architettura ARM - Lezione 11/11/2008

Scarica la lezione del 11/11/2008

Sessione di domande e risposte sulla lezione precedente; esecuzione di istruzioni in sequenza senza pipeline; esecuzione di istruzioni in pipeline a tre stadi; operazione della pipeline a tre stadi con istruzione a ciclo singolo; operazione della pipeline a tre stadi con istruzione multiciclo; differenza tra pipeline in stato ARM e stato Thumb; core ARM7TDMI-S; operazione di data processing da registro a registro; problemi nelle pipeline a più stadi; rischio read-after-write; comportamento del branch in pipeline.

Torna su


LPC2103 - Lezione 13/11/2008

Lezione del 13/11/2008

Vectored Interrupt Controller (VIC): caratteristiche, uso generale; descrizione dei registri; analisi dettagliata dei registri VIC; sorgenti di interrupt; falsi interrupt: studio di casi particolari, workaround, esempi di soluzione del problema; note di utilizzo del VIC; esempio di gestione VIC in linguaggio C.


Scarica il Technical Reference Manual del VIC

Torna su


Laboratorio - Lezione 14/11/2008

Scarica la lezione del 14/11/2008

External interrupt inputs: descrizione dei registri; utilizzo del Vectored Interrupt Controller: routine di servizio interrupt (ISR); uso di tasto per accensione e spegnimento LED in modalità polling; uso di tasto per accensione e spegnimento LED in modalità interrupt; gestione del debouncing; applicazione degli interrupt alle periferiche timer e ADC.


Scarica il progetto polling_vs_interrupt

Torna su


Architettura ARM - Lezione 18/11/2008

Scarica la lezione del 18/11/2008

Sessione di domande e risposte sulla lezione precedente; le eccezioni: possibili cause delle eccezioni; relazioni tra eccezioni e modi di funzionamento; gestione in ingresso e in uscita delle eccezioni in generale; dettagli sulla gestione delle eccezioni: l'eccezione SWI, l'eccezione Undefined, l'eccezione IRQ, l'eccezione FIQ, le eccezioni Data Abort e Prefetch Abort.


Scarica Using the GNU Compiler Collection - for gcc version 4.2.2 di Richard M. Stallman and the GCC Developer Community

Torna su


LPC2103 - Lezione 20/11/2008

Lezione del 20/11/2008

Real-time Clock (RTC): caratteristiche; descrizione; architettura; descrizione dei pin; descrizione dei registri; note di utilizzo del Real-time Clock; divisore del clock di riferimento; selezione dei componenti per l'oscillatore esterno a 32 kHz del Real-time Clock.

Torna su


Architettura ARM - Lezione 25/11/2008

Scarica la lezione del 25/11/2008

Sessione di domande e risposte sulla lezione precedente; eccezione di una periferica di tipo FIQ; eccezione di una periferica di tipo IRQ non vettorizzata; eccezione di una periferica di tipo IRQ vettorizzata; eccezione di una periferica di tipo IRQ senza l'uso del VIC PL 190; organizzazione della memoria: little-endian e big-endian; modello di spazio d'indirizzamento di programma C standard ARM; comportamento dello stack; sistema tipico basato su AMBA; sistema tipico di debug; organizzazione JTAG boundary scan; organizzazione ARM7TDMI; confronto caratteristiche e pipeline ARM7TDMI e ARM9TDMI.

Torna su


LPC2103 - Periferiche - Lezione 27/11/2008

Lezione del 27/11/2008

WatchDog Timer (WDT): caratteristiche; applicazioni; descrizione dei registri; diagramma a blocchi.
LCD HD44780: introduzione; registri istruzioni e dati; linee di controllo e dati; operazioni di lettura e scrittura; sequenza tipica di controllo. Inizializzazione, verifica della flag di busy, funzioni varie, set di istruzioni. Progettazione del modulo software; scrittura e lettura di un byte; modalità 4 bit; invio di comandi; salto a una riga; stringa di caratteri su LCD


Scarica HD44780-AppNote - di Duane Bala

Scarica LCD-HD44780 - della Hitachi Ltd.

Torna su


Laboratorio - Lezione 28/11/2008

Scarica la lezione del 28/11/2008

LCD standard HD44780: montaggio; programma per la stampa di una stringa; programma per la stampa di un numero formattato; programma per la lettura di un valore di tensione da ADC e presentazione su LCD; impostazione dell'interrupt di RTC attivato dall'incremento del contatore dei secondi; uso della periferica RTC per la visualizzazione dell'ora e della data completa.


Scarica il progetto lcd_acd

Scarica il progetto lcd_rtc

Torna su


Periferiche - Lezione 2/12/2008

Scarica la lezione del 2/12/2008

Definizione di ingresso e uscita di DAC e ADC; codici binari unipolari; funzione di trasferimento di DAC e ADC unipolari ideali; codici binari bipolari; funzione di trasferimento di DAC e ADC bipolari ideali; concetto di quantizzazione: misura di un LSB; convertitori unipolari e bipolari; errore di offset e di guadagno nei convertitori bipolari; metodi di misura dell'errore di linearità integrale; funzione di trasferimento per un DAC e un ADC non ideale; dettagli della non linearità differenziale di un DAC e di un ADC; ADC non monotono con codici mancanti; errori associati ad ADC; sistema a dati campionati; funzione del Sample & Hold; criteri di Nyquist.

Torna su


LPC2103 - Periferiche - Lezione 4/12/2008

Lezione del 4/12/2008

Serial Peripheral Interface (SPI): aspetti; descrizione generale; trasferimento dati SPI; informazioni generali; modalità master; modalità slave; eccezioni; read overrun; write collision; mode fault; slave abort; descrizione dei pin; descrizione dei registri; architettura.
Microchip MCP4921: applicazioni; diagramma a blocchi; descrizione; tipi di contenitori; caratteristiche elettriche DC e AC; curve di prestazioni tipiche; descrizione dei pin; vista generale; interfaccia seriale; applicazioni tipiche; supporto allo sviluppo.


Scarica il datasheet MCP4921 - di Microchip

Torna su


Laboratorio - Lezione 5/12/2008

Scarica la lezione del 5/12/2008

DAC MCP4921: montaggio; comunicazione tramite interfaccia SPI; programma di impostazione ciclica di un valore di tensione sul DAC per il pilotaggio di un LED; modifiche al progetto per la misura tramite ADC della tensione ai capi della resistenza di limitazione usata come trasduttore di corrente; calcolo e visualizzazione della potenza dissipata nel LED.


Scarica il progetto mcp4921

Torna su


Periferiche - Lezione 9/12/2008

Scarica la lezione del 9/12/2008

Architetture DAC; DAC di base con riferimento esterno; DAC con riferimento e buffer; interruttore: DAC 1-bit; DAC a resistori pesati; rete ladder R-2R; DAC R-2R in modalità tensione; ADC di base con riferimento esterno; ADC con riferimento e buffer; il comparatore: ADC 1-bit; convertitore parallelo (flash); ADC ad approssimazioni successive; algoritmo ad approssimazioni successive; convertitore DATRAC; ADC ad inseguimento; ADC a doppia rampa; forme d'onda in uscita dell'integratore nell'ADC a doppia rampa; modulazione Delta e PCM differenziale; quantizzazione nella modulazione Delta.

Torna su


LPC2103 - Lezione 11/12/2008

Lezione del 11/12/2008

Universal Asynchronous Receiver / Transmitter 0 (UART0): funzionalità; descrizione dei pin; descrizione dei registri; architettura.
System control block: funzioni; descrizione dei pin; descrizione dei registri; oscillatore; registro di selezione GPIO / FGPIO; controllo della mappatura di memoria; Phase-Locked-Loop; controllo di potenza; reset; divisore Advanced Peripheral Bus (APB); timer di avvio; sicurezza del codice e debugging.

Torna su


Laboratorio - Lezione 12/12/2008

Scarica la lezione del 12/12/2008

Universal Asynchronous Receiver / Transmitter 0 (UART0): uso della periferica seriale asincrona; collegamento tra due schede BBeng4ARM; programmazione di una scheda come Master; programmazione di una scheda come Slave; ricetrasmissione con eco modificata; modifica del codice per visualizzazione dei messaggi su display.


Scarica il progetto uart0_Master

Scarica il progetto uart0_Slave

Torna su


Periferiche - Software - Lezione 16/12/2008

Scarica la lezione del 16/12/2008 Scarica la lezione del 16/12/2008

Bus I2C: applicazioni su bus I2C; terminologia del bus I2C; esempio di bus I2C con due uC; dispositivi con alimentazioni diverse sullo stesso bus; trasferimento del bit su bus I2C; condizioni di Start e di Stop; trasferimento dati su bus I2C; esempio di trasferimento dati completo; indirizzamento a 7 bit; lettura immediata da Master su Slave; modalità operative di I2C. Bus SPI: modalità di connessione; collegamenti diretti e in daisy-chain; tipologie di segnali SPI. Progettazione: ciclo di vita di un progetto; modello di sviluppo ricorsivo; modello di sviluppo a cascata; fasi del ciclo di vita di un sistema; librerie di base; scenari d'uso; infrastruttura principale; processi funzionali; stratificazione del progetto software: processo foreground e background; macchina a stati ed eventi; realizzazione di una macchina a stati in 'C'.

Torna su


LPC2103 - Lezione 18/12/2008

Lezione del 18/12/2008

Organizzazione e scrittura della memoria flash: boot loader, funzionalità, applicazioni, descrizione, suddivisione in settori, meccanismo di protezione del contenuto della flash, Code Read Protection (CRP), In System Programming (ISP), In Application Programming (IAP), interfaccia JTAG per la programmazione della flash.
Logica EmbeddedICE: caratteristiche, applicazioni, descrizione, stato dei pin multiplexati durante il reset, descrizione dei registri, diagramma a blocchi, debug.

Torna su


Laboratorio - Lezione 19/12/2008

Scarica la lezione del 19/12/2008

Progetto orologio: impostazione di una macchina a stati per la gestione di un orologio con regolazione delle ore e dei minuti mediante l'uso di una tastiera a tre pulsanti; attivazione dell'interrupt di RTC per l'aggiornamento dell'orario corrente e degli interrupt EXTINT per l'input di utente. Modifica del codice per l'attivazione di un allarme.


Scarica il progetto clock

Torna su


Laboratorio - Lezione 20/01/2009

Simulazione d'esame: la prova si svolgerà dalle ore 16:00 nell'aula Campus con l'uso di PC dell'Università o di PC personali. Nel corso della simulazione saranno date indicazioni sui punti da approfondire e al termine della stessa verrà fornita una valutazione sintetica.

Torna su


Laboratorio - Esame 13/02/2009

Prova pratica di progettazione a microcontrollore: la prova si svolgerà dalle ore 10:00 alle ore 13:00 nell'aula Campus con l'uso di PC dell'Università o di PC personali. E' ammesso l'utilizzo di manuali e di librerie firmware. Tutti i candidati sono invitati a portare l'hardware in loro possesso.

Torna su


Stanza 132 - Esame 18/02/2009

Colloquio: la prova si svolgerà dalle ore 15:00 alle ore 19:00 presso la stanza 132 (S2DEL – Solid State and Diamond Electronics Lab.)

Torna su


Laboratorio - Esame 20/02/2009

Prova pratica di progettazione a microcontrollore: la prova si svolgerà dalle ore 10:00 alle ore 13:00 nell'aula Campus con l'uso di PC dell'Università o di PC personali. E' ammesso l'utilizzo di manuali e di librerie firmware. Tutti i candidati sono invitati a portare l'hardware in loro possesso.

Torna su


Stanza 50 - Esame 15/07/2009

Esame di progettazione a microcontrollore: la prova si svolgerà dalle ore 10:00 alle ore 13:00 presso la stanza 50 (prof. Salvatori) con l'uso di PC personali. E' ammesso l'utilizzo di manuali e di librerie firmware. Tutti i candidati sono invitati a portare l'hardware in loro possesso.

Torna su


Stanza 132 - Esame 01/10/2009

Esame di progettazione a microcontrollore: la prova si svolgerà dalle ore 15:00 alle ore 18:00 presso la stanza 132 (S2DEL – Solid State and Diamond Electronics Lab.) con l'uso di PC personali. E' ammesso l'utilizzo di manuali e di librerie firmware. Tutti i candidati sono invitati a portare l'hardware in loro possesso.

Torna su


Creative Commons License
Microcontrollori e Microprocessori - Corso di progettazione su SoC ARM by Nicola Masarone Gabriele Di Nucci is licensed under a Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia License.