PROGRAM OF THE COURSE ===================== Part 1 (a and b): MCU bare metal and RTOS (3+3 cfu) --------------------------------------------------- This part aims at providing an introduction to microcontrollers (MCUs) and their IDEs for bare metal applications, and MCUs and CPUs with RTOS. Firstly, the HW organization of MCU and their main peripherals are presented. Several laboratory activities are envisioned, where some typical applications of embedded systems are developed, using, for what concerns the h/w, STM32 Nucleo, u-blox C030 and NXP FRDM-KL25Z boards, and, as IDEs, STM32CubeIDE, Keil uVision and VS Code. Then, the use of MCUs and CPUs for embedded applications using an RTOS is introduced. In particular, OS's such as FreeRTOS and Embedded Linux are presented, considering aspects such as base level programming (host-target, bootloader, kernel, device driver and fs, boot, toolchain for crosscompilation, boot from scratch and access to peripherals) and user space programming (git for versioning, cmake, access to some peripherals, graphics, debugging); typical applications are developed on STM32 Nucleo and/or BeagleBone boards. Part 2: High speed PCB design and instrumentation control (3 cfu) ----------------------------------------------------------------- This module focuses on some fundamental aspects of development and control of electronic instrumentation. In the first part the main techniques of "high speed" boards (PCB - Printed Circuit Bard) design will be described and some emblematic cases will be addressed. Starting from the electronic schematics, professionals in the sector will teach which are the steps to get to the files necessary to produce a PCB. Professional software (Altium Design) will be used and at the end of this section the students will have all the skills to make multi-layer PCB, in particular focusing on "high speed" and RF circuits. The second part of the module will deal with the issue of instrumentation control, data acquisition and data processing. We will start by giving the basics of the most used language for the management of scientific instrumentation (LabVIEW - the course is in fact equivalent to a "LabVIEW Base 1 course" of National Instruments and is taught by professionals certified as "NI developers") and a level will be reached for which students will be able to control and acquire data from various instruments (oscilloscopes, function generators, multimeters, power supplies etc, which will be made available) through the main communication methods (RS232, GPIB, Ethernet Socket TCP/IP, UDP, VXI-11). INFORMATION ABOUT THE EXAM ========================== The exam aims at verifying that the student is confident with MCUs, CPUs and, for the 9 ECTS version, advanced instrumentation for research. For the first part, the exam consists in one project (the student can choose between bare metal and rtos) and an oral/practical examination. For the second part, the exam consists in two practical exercises (4 hours: a practical exercise with Altium (2 hours) and a practical exercise with LabView (2 hours)), no oral examination. As in any exam, questions are related to what has been explained in the classroom, so for part I they might be about e.g. - (STM32CubeMX) the setup of a pin for a given task - (STM32CubeIDE) the use of a HAL for a given task - the use of a NUCLEO-H7A3 for a given task - e.g., the use of an external peripheral - an example of use of uVision or VS Code - freertos - embedded linux - ... Consequently, - students are requested to have their own PC with the necessary s/w - installation and setup of the necessary s/w are considered a fondamental part of this exam - the teacher will provide, if needed, - MCU board (with USB cable) - breadboard, wires, external peripherals, discrete components... The exams take place in lab. Zoldan (C2 building, first floor).