Course detail

Microcontrollers for Advanced Applications

FEKT-GMIAAcad. year: 2019/2020

Students learn the advanced features of the C language, its use in microcontrollers programming, and the details of architecture and peripherals of Atmel AVR MCUs. They learn to design and program drivers for the most common peripherals such as button inputs, multiplex displays, graphic displays, shift registers, temperature sensors, etc. The course shows the procedures necessary for the design of complex applications with AVR microcontrollers, including the topics of source code management and documentation.

Language of instruction

English

Number of ECTS credits

4

Mode of study

Not applicable.

Learning outcomes of the course unit

The graduate is able: (1) describe different AVR microcontroller blocks including advanced functions, (2) create firmware in C language including AVR-GCC specialties, (3) discuss different types of displays for microcontroller applications, (4) discuss advantages and disadvantages of different busses for microcontrollers, (5) design connection of different microcontroller peripherals, (6) design and assemble own device with microcontroller including firmware.

Prerequisites

Attendant should be able to:
- describe main microcontroller blocks and their function
- design simple C program
- design program for setup of basic peripherals, interrupt control and separate functions and function calls
- analyze simple electronics circuits with passive parts and transistors and choose corresponding way of connecting to the microprocessor.
The subject knowledge on the Bachelor's degree level is requested.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Students can receive a maximum of 40 points for active work in computer labs. The final exam consists of a written test (up to 30 points) and a practical hands-on part (up to 30 points).

Course curriculum

Lectures:
1. Source code: Doxygen, Subversion; coding style.
2. C language: constants and operators, control structures, preprocessor, functions, memory classes, pointers.
3. C language: arrays, strings, struct, union, enum, bit operations, inline, volatile, naked, state machines.
4. Embedded systems design principles, RTOS: cooperative RTOS, preemptive FreeRTOS.
5. AVR core: core and memories, clock sources, power saving modes, WDT, BOR, interrupts, I/O ports; JTAG, ISP, bootloader, fuses, signature, calibration.
6. AVR peripherials and communication: counter/timer, RTC, ADC, UART, SPI, I2C, 1-wire.
7. Peripherals: buttons, normal LED, multiplexed LED, rotary encoder, text display, beeper, shift registers.

Computer exercises:
1. Subversion, C style, pointers, C for AVR, Makefile.
2. ISR, button dedouncing, timers.
3. LCD display and UART.
4. LED multiplexed display, rotary encoder.
5. LED shift register, snake game.
6. Cooperative RTOS, combining C with assembly.
7. A/D converter and bargraph, buzzer.
8. Temperature sensors DS18B20 and KTY81.
9. EEPROM and I2C bus.
10. Real time clock and sleep modes.

Work placements

Not applicable.

Aims

The aim of the course is to deepen students' knowledge of microprocessor technology and programming in C, to familiarize them with some advanced procedures for AVR microcontrollers, and learn to design the hardware and firmware for the most common peripherals.

Specification of controlled education, way of implementation and compensation for absences

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

GANSSLE, J.G. The art of designing embedded systems. 2nd ed. Boston: Elsevier / Newnes, 2008. (EN)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme TECO-G Master's

    branch G-TEC , 1. year of study, winter semester, optional specialized
    branch G-TEC , 2. year of study, winter semester, optional specialized

Type of course unit

 

Lecture

13 hours, optionally

Teacher / Lecturer

Syllabus

1. Source code: Doxygen, Subversion; coding style.
2. C language: constants and operators, control structures, preprocessor, functions, memory classes, pointers.
3. C language: arrays, strings, struct, union, enum, bit operations, inline, volatile, naked, state machines.
4. Embedded systems design principles, RTOS: cooperative RTOS, preemptive FreeRTOS.
5. AVR core: core and memories, clock sources, power saving modes, WDT, BOR, interrupts, I/O ports; JTAG, ISP, bootloader, fuses, signature, calibration.
6. AVR peripherials and communication: counter/timer, RTC, ADC, UART, SPI, I2C, 1-wire.
7. Peripherals: buttons, normal LED, multiplexed LED, rotary encoder, text display, beeper, shift registers.

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer

Syllabus

1. Subversion, C style, pointers, C for AVR, Makefile.
2. ISR, button dedouncing, timers.
3. LCD display and UART.
4. LED multiplexed display, rotary encoder.
5. LED shift register, snake game.
6. Cooperative RTOS, combining C with assembly.
7. A/D converter and bargraph, buzzer.
8. Temperature sensors DS18B20 and KTY81.
9. EEPROM and I2C bus.
10. Real time clock and sleep modes.