MI (1380) - INGEGNERIA DELL'INFORMAZIONE / INFORMATION TECHNOLOGY
054983 - MICROCONTROLLERS FOR EMBEDDED SYSTEMS
Programma dettagliato e risultati di apprendimento attesi
The course MICROCONTROLLERS FOR EMBEDDED SYSTEMS provides the hardware and firmware skills to develop embedded systems based on high-end 32-bit microcontrollers (ARM-Cortex M4), with hands-on laboratories employing a development system based on the Nucleo board by STMicroelectronics and a custom POLIMI expansion board.
The course provides all the concepts required to design an embedded system based on 32-bit microcontroller of the ARM-Cortex M family, through practical hands-on lessons.
The course is organized as follow:
Introduction on ARM-Cortex M cores and basics on STM32F4 family by STMicroelectronics, NUCLEO development board and its peripherals.
Theoretical basics of all the main microcontrollers peripherals such as General Purpose Input/Outputs (GPIOs), Timers (Pulse-Width-Modulator - PWM), Analog-to-Digital Converter (ADC), communication (I2C, SPI, UART), Direct Memory Access (DMA); Interrupts management and Real Time Operating Systems.
Hands-on practical activities on NUCLEO development board and on a POLIMI custom-designed expansion board, employing ST-CUBE interface and MDK eclipse environment.
The NUCLEO board and POLIMI expansion board will help students to become acquainted with the ARM-Cortex microcontrollers and their programming tools. In fact, during the hands-on labs, each students will practice with his own board and microcontroller, for developing both the firmware and the proper hardware configuration, to test the conceived embedded system.
The expected learning outcome is that the students become able to autonomously develop new projects, using the different microcontrollers peripherals. Students should become familiar with programming tool‑chain, microcontrollers manuals and components data-sheets.
Students will also learn how to present a project and how to work in small teams.
Basic knowledge of C-programming are considered prerequisites of the course. Students that deem it necessary to strengthen their C-programming knowledge, are strongly encouraged to contact the professor to receive indications before the beginning of the course.
Basics of electrical engineering are also required (fundamental analog and digital components, Kirkoff and Ohm laws, voltage dividers…).
Note Sulla Modalità di valutazione
Students will be asked to develop a microcontroller project in small teams (2 or 3 people) and to implement it on the real evaluation board provided. The project topic will be chosen by the students.
The students will present their project to the professor and the other students during the last class of the course. They should demonstrate familiarity with the programming environment and the microcontrollers peripherals. Furthermore, students should also demonstrate the ability to explain their project to the rest of the class in a clear way and with an appropriate terminology. All the members of the team must participate to the presentation pointing out their contribution.
Different skills will be evaluated, and in particular:
- knowledge and understanding of the theoretical basics of microcontrollers programming,
- ability to apply knowledge and understanding in practical examples
- communication skills
Intervallo di svolgimento dell'attività didattica
Calendario testuale dell'attività didattica
Jan. 14th 2020 (4 hours): Introduction to ARM-Cortex M cores, STM32F4 microcontroller by STMicroelectronics, NUCLEO development board and POLIMI expansion board.