Overordnede kursusmål
This course will focus on embedded hardware development for
low-power Internet of Things (IoT) using embedded C / bare-metal
firmware programming. The purpose of this course is to introduce
the student to advanced methods of developing firmware on
ARM-Cortex microcontrollers (MCUs) for IoT purposes. The student
will be working with low-level MCU configuration and firmware
development to enable communication with IoT relevant technologies
such as Lora/LoraWAN, SigFox, BLE and NBIoT/LTE-M as well as
digital and analog sensors. The Arduino IDE will not be used in
this course.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Describe the essence and challenges of Internet of Things.
- Evaluate networking protocols for different IoT
applications.
- Analyse and plan for implementation of optimal networking
technology.
- Implement embedded C code in an ARM based MCU.
- Configure clock and peripherals in a STM32 evaluation
board.
- Set up the GPIOs of an ARM-Cortex based microcontroller for
ADC/DAC.
- Develop embedded programs to transmit/receive data.
- Implement UART/SPI/I2C communication protocols in
firmware.
- Implement RTOS and multi-threading in an embedded system.
- Deploy and showcase a developed IoT system and
application.
- Document project work in scientific paper format.
Kursusindhold
The purpose of this course is to introduce the student to advanced
methods of developing firmware on ARM-Cortex MCUs for IoT purposes.
In particular, focus will be on setting up the MCU, for example
configuring the GPIOs, UART, interrupts and timers, SPI and I2C
communication and analog-digital (ADC/DAC) functionality.
The, Arduino-free, bare-metal approach to microcontroller firmware
development will provide the student with an understanding of the
capabilities of an embedded system for Internet of Things. The
student will be able to set up a Real-time operating system (RTOS)
environment and run multiple threads in the ARM processor.
The course is structured around lectures and exercises where the
student will gain hands-on experience within MCU firmware
programming. During the exercises, the student will learn to
configure UART/SPI or I2C peripherals to communicate with analog
sensors or digital sensors / modules. The course will have a focus
on IoT such that low-power communication, e.g. LPWAN communication
technologies (Lora/LoraWAN, SigFox, BLE and NBIoT/LTE-M) and BLE
will be utilized for wireless data transmission during the course.
During the course, the students will be planning and developing
their own projects in groups and evaluated from a report.
The course will run the first time in the spring of 2022.
Course keywords: Embedded systems, Low-power embedded firmware
development for IoT, bare-metal programming, STM32, Nucleo,
Bluepill, CubeIDE, FreeRTOS, tasks and semaphores, no-Arduino.
Sidst opdateret
28. april, 2021