Checking date: 20/05/2022

Course: 2022/2023

Digital Systems and Applications
Study: Master in Internet of Things: Applied Technologies (356)

Coordinating teacher: SANCHEZ REILLO, RAUL

Department assigned to the subject: Department of Electronic Technology

Type: Electives
ECTS Credits: 3.0 ECTS


Requirements (Subjects that are assumed to be known)
In order to follow the subject, students are expected to have passed previously subjects on "Digital Electronics" and "Microprocessors". Furthermore, the student has to be able to program a microcontroller using C-language. Therefore, the student shall have, at least, a basic knowledge of C programming language. "Digital Electronics" covers combinational and sequential digital electronics, acquiring knowledge about the digital building blocks. If the student needs to revisit those concepts, the following link provides an OCW course on the subject: "Microprocessors" is a subject that teach the basic concepts of a Central Processing Unit and the associated peripherals. These concepts are applied to a Microcontroller, and are the basis of this course. If the student needs to revisit these topics, the following link provides an OCW course on the subject: Last, but not least, "Programming" teach how to solve problems in a structured way using programming languages. UC3M provides several OCW courses that can be used by students to revisit or improve those knowledges: - C-language programming: - Data Structures and Algorithms: - Advance Programming:
CB7: Students should know how to apply the acquired knowledge and to solve problems in new or little-known environments, and within a wider context. CB8: Students should be able to integrate knowledge and face the complexity to formulate judgements based on information that, even being incomplete or limited, include reflexions about social and ethical responsibilities, linked to the application of their knowledge. CB10: Students should get the learning abilities that will allow them to keep on learning in a way that they could become autonomous. CG8: Ability for the continuous and autonomous learning, in IoT related environments. CE1: Ability to program the development of digital systems, understanding the components and program as integral elements of a product.
Skills and learning outcomes
Description of contents: programme
The course follows the program shown below. The contents of the course will be practiced using an ARM Cortex-M4 microcontroller, embedded in a low-cost development board. There are two boards recommended for students: NUCLEO-L476RG and B-L475E-IOT. The boards will have to be acquired by the students. In order to select the board to buy, the following information might be helpful: - NUCLEO-L476RG: lower cost, but not including external peripherals, although they can be connected easily through an Arduino Uno interface. On the other hand, the support for mbed Operating System is limited. - B-L475E-IOT: a bit higher cost, but includes most (if not all) external peripherals that any IoT system may require (indeed, commercially this board is known as IoT-Node). It has also the possibility of connecting external peripherals, and the mbed Operating System support is complete. The program is as follows: 1. Introduction 2. Microprocessors and Microcontrollers 2.1. Internal Architecture 2.2. Microcontroller programming through registers 3. Development Environment 3.1. Microcontrollers and development boards 3.2. STM32CubeIDE 3.3. Hardware Abstraction and Debugging Functionalities 4. HAL-based Development (Hardware Abstraction Libraries): 4.1. General Purpose Pins 4.2. Interrupts and Callbacks 4.3. Timing 4.4. Analog Conversion 4.5. Serial Communication (synchronous and asynchronous) 5. Solution Design for IoT 5.1. Power consumption 5.2. Communication Protocols and Systems 5.3. Robustness 6. Real Time Operating System (RTOS)-based Development 6.1. Introduction to Operating Systems 6.2. FreeRTOS 6.3. mbed The program will be completed with the development of an IoT project by the student, which will be presented on-site for being marked.
Learning activities and methodology
The above course competences and skills provide skills within the program outcomes, through different activities. For each program outcome, we briefly describe the activities provided within the course: - In the course, exercises are held where students have to complete/develop their programs to meet requirements. They are asked to interpret electronic circuit schematics, block diagrams and flowcharts. - The course includes practical exercises to be developed as homework, and presented at the end of the term. The problem is a manageable version of an electronic system design, where the students must solve using the proposed resources (Microcontroller Development Board, Debugger, peripherals). - Design and analysis examples are presented to the students as guidance on good programming practices and electronic design techniques, showing how to apply specific peripherals to solve different problems. - The students are required to work using engineering tools such as a Microcontroller Integrated Development Environment (IDE) program, use a Development Board, as well as a Debugger.
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50
Calendar of Continuous assessment
Basic Bibliography
  • Development system manufacturer. Development system manual. Development system manufacturer.
  • Lecturers. Collection of exercises. UC3M - Electronics Technology Department.
  • Lecturers. Collection of notes, slides and additional documentation. UC3M - Electronics Technology Department.
  • Microcontoller Manufacturer. Microcontroller datasheet. Microcontoller Manufacturer.
Additional Bibliography
  • Ariel Lutenberg, Pablo Gomez, Eric Pernia. A Beginner's Guide to Designing Embedded System Applications on Arm Cortex-M Microcontrollers. ARM Education Media. 2022

The course syllabus may change due academic events or other reasons.

More information: