The course allows the students to acquire the knowledge and the ability to apply design techniques for digital systems in general and in particular with programmable platforms. The course analyzes the typical structure and the technology of modern programmable electronic components, develops the ability to design a digital electronic system from specifications to implementation and experimental verification of the behavior, the ability to draft a technical report on the design and characterization of a component or digital electronic system.
Curriculum
teacher profile teaching materials
- Classification of programmable electronic devices and systems
- Main features of embedded systems
- Technologies and application fields
- Hardware–software design flow
Number systems and data representation
- Binary and hexadecimal number systems
- Conversions and arithmetic operations
- Binary representation of integers
- Floating-point representation of real numbers
- Data types and their representation in memory
Embedded programming in C
- Structure of a C program
- Compilation and code organization
- Variables, operators, and control structures
- Functions, pointers, and memory access
- Bitwise operations and register management
- Programming examples for embedded systems
ARM architecture and STM32 microcontrollers
- ARM Cortex-M processor architecture
- Memory organization and registers
- Exceptions and interrupts
- Main features of the STM32 microcontroller family
- STM32 Nucleo development boards
Development tools
- STM32CubeIDE integrated development environment
- STM32CubeMX configuration tool
- Compilation, programming, and debugging
- Use of datasheets, reference manuals, and technical documentation
Peripheral configuration and programming
- Hardware Abstraction Layer
- Clock system
- General-purpose input/output ports (GPIO)
- Interrupt management
- Timers and Real-Time Clock
- Direct Memory Access (DMA)
- USART serial interfaces
- Analog-to-digital and digital-to-analog conversion
- I²C and SPI interfaces
- CAN bus
Embedded-system design
- Definition of system specifications
- Hardware–software integration
- Experimental verification and debugging
- Laboratory exercises
- Development of an individual project
- 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.
Mutuazione: 20802093 ELETTRONICA DEI SISTEMI PROGRAMMABILI in Ingegneria elettronica per l'industria e l'innovazione LM-29 N0 SAVOIA ALESSANDRO STUART
Programme
Introduction to embedded systems- Classification of programmable electronic devices and systems
- Main features of embedded systems
- Technologies and application fields
- Hardware–software design flow
Number systems and data representation
- Binary and hexadecimal number systems
- Conversions and arithmetic operations
- Binary representation of integers
- Floating-point representation of real numbers
- Data types and their representation in memory
Embedded programming in C
- Structure of a C program
- Compilation and code organization
- Variables, operators, and control structures
- Functions, pointers, and memory access
- Bitwise operations and register management
- Programming examples for embedded systems
ARM architecture and STM32 microcontrollers
- ARM Cortex-M processor architecture
- Memory organization and registers
- Exceptions and interrupts
- Main features of the STM32 microcontroller family
- STM32 Nucleo development boards
Development tools
- STM32CubeIDE integrated development environment
- STM32CubeMX configuration tool
- Compilation, programming, and debugging
- Use of datasheets, reference manuals, and technical documentation
Peripheral configuration and programming
- Hardware Abstraction Layer
- Clock system
- General-purpose input/output ports (GPIO)
- Interrupt management
- Timers and Real-Time Clock
- Direct Memory Access (DMA)
- USART serial interfaces
- Analog-to-digital and digital-to-analog conversion
- I²C and SPI interfaces
- CAN bus
Embedded-system design
- Definition of system specifications
- Hardware–software integration
- Experimental verification and debugging
- Laboratory exercises
- Development of an individual project
Prerequisiti
Basic knowledge of analog and digital electronics, circuit theory, and computer programming is required. Familiarity with the fundamentals of computer architecture and the C programming language is also useful.Core Documentation
- 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.
Attendance
Attendance is not mandatory but is strongly recommended. The course includes two three-hour classes per week.Type of evaluation
Assessment is based on the individual development of a project concerning a programmable electronic system and on an oral examination. The project topic may be assigned by the instructor or proposed by the student and approved in advance. The project is developed during the final part of the course and normally involves the design and implementation of an embedded system, the experimental verification of its operation, and a critical analysis of the results. During the oral examination, students present their project and the related technical report. The discussion assesses their understanding of the design choices, their ability to interpret the obtained results, and the level of autonomy achieved. The oral examination also includes questions covering the entire course syllabus and therefore assesses the student’s overall knowledge and understanding of all the topics addressed during the course, including those not directly related to the project. The final assessment considers the correctness and completeness of the project, the quality of its implementation and experimental verification, the student’s command of the course topics, and the clarity of the technical report and presentation. teacher profile teaching materials
- Classification of programmable electronic devices and systems
- Main features of embedded systems
- Technologies and application fields
- Hardware–software design flow
Number systems and data representation
- Binary and hexadecimal number systems
- Conversions and arithmetic operations
- Binary representation of integers
- Floating-point representation of real numbers
- Data types and their representation in memory
Embedded programming in C
- Structure of a C program
- Compilation and code organization
- Variables, operators, and control structures
- Functions, pointers, and memory access
- Bitwise operations and register management
- Programming examples for embedded systems
ARM architecture and STM32 microcontrollers
- ARM Cortex-M processor architecture
- Memory organization and registers
- Exceptions and interrupts
- Main features of the STM32 microcontroller family
- STM32 Nucleo development boards
Development tools
- STM32CubeIDE integrated development environment
- STM32CubeMX configuration tool
- Compilation, programming, and debugging
- Use of datasheets, reference manuals, and technical documentation
Peripheral configuration and programming
- Hardware Abstraction Layer
- Clock system
- General-purpose input/output ports (GPIO)
- Interrupt management
- Timers and Real-Time Clock
- Direct Memory Access (DMA)
- USART serial interfaces
- Analog-to-digital and digital-to-analog conversion
- I²C and SPI interfaces
- CAN bus
Embedded-system design
- Definition of system specifications
- Hardware–software integration
- Experimental verification and debugging
- Laboratory exercises
- Development of an individual project
- 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.
Mutuazione: 20802093 ELETTRONICA DEI SISTEMI PROGRAMMABILI in Ingegneria elettronica per l'industria e l'innovazione LM-29 N0 SAVOIA ALESSANDRO STUART
Programme
Introduction to embedded systems- Classification of programmable electronic devices and systems
- Main features of embedded systems
- Technologies and application fields
- Hardware–software design flow
Number systems and data representation
- Binary and hexadecimal number systems
- Conversions and arithmetic operations
- Binary representation of integers
- Floating-point representation of real numbers
- Data types and their representation in memory
Embedded programming in C
- Structure of a C program
- Compilation and code organization
- Variables, operators, and control structures
- Functions, pointers, and memory access
- Bitwise operations and register management
- Programming examples for embedded systems
ARM architecture and STM32 microcontrollers
- ARM Cortex-M processor architecture
- Memory organization and registers
- Exceptions and interrupts
- Main features of the STM32 microcontroller family
- STM32 Nucleo development boards
Development tools
- STM32CubeIDE integrated development environment
- STM32CubeMX configuration tool
- Compilation, programming, and debugging
- Use of datasheets, reference manuals, and technical documentation
Peripheral configuration and programming
- Hardware Abstraction Layer
- Clock system
- General-purpose input/output ports (GPIO)
- Interrupt management
- Timers and Real-Time Clock
- Direct Memory Access (DMA)
- USART serial interfaces
- Analog-to-digital and digital-to-analog conversion
- I²C and SPI interfaces
- CAN bus
Embedded-system design
- Definition of system specifications
- Hardware–software integration
- Experimental verification and debugging
- Laboratory exercises
- Development of an individual project
Prerequisiti
Basic knowledge of analog and digital electronics, circuit theory, and computer programming is required. Familiarity with the fundamentals of computer architecture and the C programming language is also useful.Core Documentation
- 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.
Attendance
Attendance is not mandatory but is strongly recommended. The course includes two three-hour classes per week.Type of evaluation
Assessment is based on the individual development of a project concerning a programmable electronic system and on an oral examination. The project topic may be assigned by the instructor or proposed by the student and approved in advance. The project is developed during the final part of the course and normally involves the design and implementation of an embedded system, the experimental verification of its operation, and a critical analysis of the results. During the oral examination, students present their project and the related technical report. The discussion assesses their understanding of the design choices, their ability to interpret the obtained results, and the level of autonomy achieved. The oral examination also includes questions covering the entire course syllabus and therefore assesses the student’s overall knowledge and understanding of all the topics addressed during the course, including those not directly related to the project. The final assessment considers the correctness and completeness of the project, the quality of its implementation and experimental verification, the student’s command of the course topics, and the clarity of the technical report and presentation.