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
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
- 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
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
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
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
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
Teacher / Lecturer
Syllabus
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.