Academic Year 2020/2021 - 3° Year - Curriculum A
Teaching Staff: Corrado SANTORO
Credit Value: 6
Scientific field: INF/01 - Informatics
Taught classes: 24 hours
Exercise: 24 hours
Term / Semester:

Learning Objectives

  1. Knowledge and understanding. The course "Laboratory of Microcontrollered Systems" has the objective of providing the students with the knowledge on principles, models, techniques and tools for the programming of embedded systems equipped with microcontroller units (MCUs).
  2. Applying knowledge and understanding. By means of the analysis of various case-study and with many laboratory exercises, the course allows students to obtain the capability of applying the techniques learnt during classroom lessons in applicative contexts that use microcontroller units. Students will also able to unsterstand how to configure a MCU and its related peripherals for the specific application in which it will be employed.
  3. Making judgements. The lectures and, above all, the laboratory activities are organised in a way such as to include a critical analysis of some case-studies, with the relevant solutions considered with possibile variations, and pro and cons of them; the aim is to let the student acquire an adequate autonomy in the evaluation of technical choices.
  4. Communication skills. The communication skills will be considered above all during the exams, here the student will be asked to expose her/his implementation choices providing suitable motivations for them.
  5. Learning skills. Learning skills will be evaluated during the laboratory. The aim is to test how and how much students have understood the functioning of MCUs and whether they are able to design and develop software for such kind of systems. The evaluatin of the learning skills will be then exploited to elaborate (if needed) the arguments that are revealed as the hardest.

Course Structure

The course is carried out in classrooms by alternating frontal lessons with laboratory. All the lessons are carried out by using STMicroelectronics NUCLEO64 development boards, upon which all the examples provided are run. The course has thus a strong practical approach and all the lessons are characterised by live programming. Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.

Detailed Course Content

Contents are detailed at the link and summarised in the following:

  1. Definition of Microcontroller (MCU). Differences between CPU and MCU. MCU families. Overview of the peripherals of a MCU. Overview of MCU of the families STM32 and Microchip PIC.
  2. Basics of electronics. The Ohm's Law. The Kirchhoff's Laws. Examples of circuit analysis. Voltage divider. Computing of the limiting resistance for a LED.
  3. Digital I/O. Digital I/O configuration and programming. Input reading. Output writing. Examples.
  4. Timers of a MCU. Principles of a hardware timer. Timebase and prescaler. Using auto-reload. Events and interrupts. Timer as a generator of PWM (pulse width modulation) signal. Examples with Timers and Digital I/O.
  5. Programming Patterns for MCU systems. Finite-state machines. States and Events. Blocking and non-blocking polling. Examples.
  6. The UART. Principles and functioning of a UART. UART Programming. Interrupt and polling. Character transmission. Character reception.
  7. The analog-to-digital converter (ADC). Functioning principle. Sample-and-hold circuit. Programming of an ADC converter. Sensors and physical units conversions. Examples of problems with ADC.

Textbook Information