20802093 - ELETTRONICA DEI SISTEMI PROGRAMMABILI

L’insegnamento consente allo studente di apprendere e applicare le tecniche di progettazione dei sistemi digitali in generale e di approfondire in particolare gli aspetti che riguardano l’implementazione tramite piattaforme programmabili. Il corso analizza la struttura tipica e la tecnologia dei moderni componenti elettronici programmabili, sviluppa la capacità di progettare un sistema elettronico digitale dalle specifiche fino all’implementazione e alla verifica sperimentale del comportamento, la capacità di redazione di un rapporto tecnico relativo al progetto e alla caratterizzazione di un componente o sistema elettronico digitale.
scheda docente | materiale didattico

Mutuazione: 20802093 ELETTRONICA DEI SISTEMI PROGRAMMABILI in Ingegneria elettronica per l'industria e l'innovazione LM-29 N0 SAVOIA ALESSANDRO STUART

Programma

Introduzione ai sistemi embedded
- Classificazione dei dispositivi e dei sistemi elettronici programmabili
- Caratteristiche dei sistemi embedded
- Tecnologie e principali campi di applicazione
- Flusso di progettazione hardware–software

Sistemi di numerazione e rappresentazione dei dati
- Sistemi di numerazione binario ed esadecimale
- Conversioni e operazioni aritmetiche
- Rappresentazione binaria dei numeri interi
- Rappresentazione in virgola mobile dei numeri reali
- Tipi di dati e loro rappresentazione in memoria

Programmazione embedded in linguaggio C
- Struttura di un programma C
- Compilazione e organizzazione del codice
- Variabili, operatori e strutture di controllo
- Funzioni, puntatori e accesso alla memoria
- Operazioni bitwise e gestione dei registri
- Esempi di programmazione per sistemi embedded

Architettura ARM e microcontrollori STM32
- Architettura dei processori ARM Cortex-M
- Organizzazione della memoria e registri
- Eccezioni e interrupt
- Caratteristiche della famiglia di microcontrollori STM32
- Schede di sviluppo STM32 Nucleo

Strumenti di sviluppo
- Ambiente di sviluppo STM32CubeIDE
- Strumento di configurazione STM32CubeMX
- Compilazione, programmazione e debugging
- Consultazione di datasheet, reference manual e documentazione tecnica

Configurazione e programmazione delle periferiche
- Hardware Abstraction Layer
- Clock system
- Ingressi e uscite digitali (GPIO)
- Gestione degli interrupt
- Timer e Real-Time Clock
- Accesso diretto alla memoria (DMA)
- Interfacce seriali USART
- Conversione analogico-digitale e digitale-analogica
- Interfacce I²C e SPI
- CAN bus

Progettazione di sistemi embedded
- Definizione delle specifiche
- Integrazione hardware–software
- Verifica sperimentale e debugging
- Esercitazioni di laboratorio
- Sviluppo di un progetto individuale


Testi Adottati

- Joseph Yiu, *The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors*, 3rd ed., Newnes–Elsevier, 2014, ISBN 978-0-12-408082-9, DOI: 10.1016/C2012-0-01372-5;
- Carmine Noviello, *Mastering STM32 – Second Edition: A Step-by-Step Guide to the Most Complete ARM Cortex-M Platform, Using the Official STM32Cube Development Environment*, Leanpub, 2022.

Modalità Frequenza

La frequenza non è obbligatoria, ma è fortemente consigliata. Il corso prevede due lezioni settimanali, ciascuna della durata di tre ore.

Modalità Valutazione

La valutazione si basa sullo sviluppo individuale di un progetto relativo a un sistema elettronico programmabile e su una prova orale. L’argomento del progetto può essere assegnato dal docente oppure proposto dallo studente e preventivamente approvato. Il progetto viene sviluppato durante la parte finale del corso e prevede, di norma, la progettazione e l’implementazione di un sistema embedded, la verifica sperimentale del suo funzionamento e l’analisi critica dei risultati. In occasione della prova orale, lo studente presenta il progetto svolto e la relativa relazione tecnica. La discussione è finalizzata a verificare la comprensione delle scelte progettuali, la capacità di interpretare i risultati ottenuti e il livello di autonomia raggiunto. La prova orale comprende inoltre domande sull’intero programma dell’insegnamento ed è pertanto volta ad accertare anche la conoscenza e la comprensione complessiva degli argomenti trattati durante il corso, indipendentemente da quelli direttamente affrontati nel progetto. La valutazione tiene conto della correttezza e completezza del progetto, della qualità dell’implementazione e della verifica sperimentale, della padronanza degli argomenti del corso e della chiarezza della relazione e della presentazione.