CourseELECTRONIC ENGINEERING
Code192II
Credits6
PeriodSemester 1
LanguageItalian
Modules | Area | Type | Hours | Teacher(s) | |
SISTEMI ELETTRONICI PROGRAMMABILI | ING-INF/01 | LEZIONI | 60 |
|
- Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
- Architettura del processore ATMEL AVR mega 32. Flag del processore. Modi di indirizzamento. Stack e chiamata di subroutine. Set di istruzioni. Formato delle istruzione AVR: codice operativo e specifica degli operandi. Interruzioni. Istruzione LPM. Uso in assembler. Assemblatore del processore Atmel AVR: tabella dei simboli, direttive.
- Periferiche del processore Atmel AVR mega32. Porte GPIO processore. Timers 0 e 1 del processore. Timer 2. Modalita PWM dei timers. Generazione del Clock. Modi sleep. Reset. Watchdog. RS-232 e USART. EEPROM del processore AVR. Istruzione SPM e Bootloader. Bootloader e istruzione SPM. SPI. TWI: livello fisico e segnalazione. Condizione di start e di stop. Bus TWI (I2C). Esempi di comunicazione. Repeated start. Implementazione su processore AVR.
- Introduzione alla programmazione di microcontrollori in C (bare-metal). Toolchain: compilatore, assembler, linker, post-linker. Mappa di memoria e sezioni, rilocazione data segment. Linker script, uso avanzato delle sezioni. Libreria AVR, allocazioni di costanti in flash-memory. Uso delle librerie. Interrupt in C. Simboli "strong" e "weak". Puntatori a funzione e array di puntatori a funzione in C. Jtag: testing e debug.
- Processore ARM. Storia, peculiarità, modi di indirizzamento, set di istruzioni ARM, thumb e thumb2. Interruzioni e fault. make e makefile.
Students are expected to acquire: Deep knowledge of the operation of a modern microcontroller, its typical peripherals. Knowledge of the theory of operation of well known communication interfaces: rs-232, i^2C, SPI. Ability to develop and debug Assembly and C firmware.
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Scrivere un programma in Assembler o C in 30 minuti.
Rispondere ad una domanda sel programma esposto.
The student will have to demonstrate a) the ability to develop a short program in C or Assembly. b) The knowledge of the theory of operation of a subsystem of the processor.
Methods:
- Final oral exam
- Final written exam
- Final laboratory practical demonstration
- Laboratory
Further information:
Oral exam 60% Lab evaluation 40%
Sviluppare firmaware in Assembler e C. Utilizzare il software AVR studio, gli assemblatori Atmel Assemgler e GAS, il compilatore GCC.
Develop and test firmware for microcontrollers.
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Laboratory projects.
Lo studente dovrà essere in grado di progettare, programmare e testare un programma (Firmware) in C o assembler.
Develop and test firmware for microcontrollers.
Esercitazioni a gruppi: gli studenti dovranno sviluppare dei piccoli progetti in C o in assembler e
testarli con una scheda di sviluppo. Verranno valutato l'impegno profuso e i risultati ottenuti.
Laboratory projects.
Argomenti di reti logiche. Cenni all'assembler dei processori AVR.
Combinational and sequenzial logic circuits. Basic assembly language of AVR processors.
- lezioni frontali, talvolta con l'uso di un videoproiettore.
- Esercitazioni a gruppi, in un'aula dotata di PC desktop con software installato (è possibile usare un portatile personale)
- materilae forntito tramite il sito elearning del corso: free software, dispense, esempi di pragramma, datasheets.
- Il docente puo' essere contattato tramite la posta elettronica. È ovviamente disponibile per il ricevimento.
- Alla fine del corso viene oprganizzata una prova speciale (preappello).
Delivery: face to face
Attendance: Mandatory
Learning activities:
- attending lectures
- individual study
- group work
- Laboratory work
Teaching methods:
- Lectures
- laboratory
- Introduzione. Breve storia dei processori. Architetture di Von Neumann e Harvard. Endianess e allineamento dei dati in memoria.
- Architettura del processore ATMEL AVR mega 32. Flag del processore. Modi di indirizzamento. Stack e chiamata di subroutine. Set di istruzioni. Formato delle istruzione AVR: codice operativo e specifica degli operandi. Interruzioni. Istruzione LPM. Uso in assembler. Assemblatore del processore Atmel AVR: tabella dei simboli, direttive. Esercitazioni: Esempio di sviluppo di programma assembler: divisione a 16 bit; inserimento e simulazione con AVR studio 4. Radice quadrata e crivello di Eratostene.
- Periferiche del processore Atmel AVR mega32. Porte GPIO processore. Timers 0 e 1 del processore. Timer 2. Modalita PWM dei timers. Generazione del Clock. Modi sleep. Reset. Watchdog. RS-232 e USART. EEPROM del processore AVR. Istruzione SPM e Bootloader. Bootloader e istruzione SPM. SPI. TWI: livello fisico e segnalazione. Condizione di start e di stop. Bus TWI (I2C). Esempi di comunicazione. Repeated start. Implementazione su processore AVR. Esercitazione: tastiera musicale.
- Introduzione alla programmazione di microcontrollori in C (bare-metal). Toolchain: compilatore, assembler, linker, post-linker. Mappa di memoria e sezioni, rilocazione data segment. Linker script, uso avanzato delle sezioni. Libreria AVR, allocazioni di costanti in flash-memory. Uso delle librerie. Interrupt in C. Simboli "strong" e "weak". Puntatori a funzione e array di puntatori a funzione in C. Esercitazione: Esempio di programma C in due files.riproduttore musicale. Discussione esercitazione riproduttore musicale.
- Jtag: testing e debug.
- Processore ARM. Storia, peculiarità, modi di indirizzamento, set di istruzioni ARM, thumb e thumb2. Interruzioni e fault. make e makefile. Esercitazioni: Dimostrazione programmazione scheda di sviluppo ARM (Texas Instruments - Stellaris launchpad) con tools open source: gcc/gas/ld, gdb e openocd. Analisi file di avviamento e linker script.
Atmel AVR 8-bit processor (ATmega32) structure: memory map, core, instruction set, main on-chip peripheral devices. C language development tools: compiler, linker, libraries for microcontrollers. Development of simple and intermediate programs with the AVR Studio IDE and the STK500 prototyping board. Introduction to ARM Cortex-M processors.
- Dispensa: Programmazione di microcontrollori in C ed Assembly con strumenti open source.
- Datasheet ATmega32
- Manuale assemblatiore ATMEL
- Set istruzioni AVR
- Manuale GAS
1) Atmel ATmega32 datasheet. 2) Atmel Instruction set manual. 3) Gnu linker manual. 4) AVR C library reference manual. 5) A wirlwind tour of ARM assembly. Example source code is provided during the lessons. (All material are freely available through internet)
Prova pratica: sviluppo e testing di firmware con scheda stk500. (sostituisce le esercitazioni)
The laboratory activity can be replaced with a special lab assignament to be performed in 4 hours.
Esercitazioni con presenza obbligatorie e valutazione (37.5%)
Svolgimento esercizio programmazione (31.25%)
Orale (31.25%)
Evaluation of laboratory assignements. (37.5%)
Fast (30 min) written test.
Oral test.
Tutte le attivita pratiche saranno tenute solo se compatibili con le norme COVID.