Microprocessors and Embedded Systems
IMP Acad. year 2019/2020 Winter semester 6 credits
Embedded systems, introduction, applications. Microcontroller architecture. Memory subsystem. Programmers model, programming of the ARM core. Stack. Interrupt subsystem and its programming. On chip peripheral devices and their programming: system clock generator, timer, communication interface UART, IIC and SPI, analogue and digital input and output, RTC module. Programming techniques for embedded systems in C language.
Language of instruction
Hodaň David, Ing. (DCSY FIT BUT)
Mrázek Vojtěch, Ing., Ph.D. (DCSY FIT BUT)
Nevoral Jan, Ing. (DCSY FIT BUT)
Růžička Richard, doc. Ing., Ph.D., MBA (DCSY FIT BUT)
Strnadel Josef, Ing., Ph.D. (DCSY FIT BUT)
Šimek Václav, Ing. (DCSY FIT BUT)
Wiglasz Michal, Ing. (DCSY FIT BUT)
Subject specific learning outcomes and competences
- Students are familiar with general structure of microcontrollers and with the techniques of embedded systems design.
- Students are capable to design and debug the routines and initialization routine for each peripheral device. They are skilled in utilizing of basic debugging techniques for the application programs written in C language.
Generic learning outcomes and competences
Understanding of design specificity of embedded systems using microcontrollers and techniques of application debugging.
To give the students the knowledge of architecture of different microcontrollers. To acquaint with performance of individual subsystems namely CPU- programming model, flash memory, timer, interrupt subsystem, communication interface, AD converter. Make students familiar with basic rules and programming techniques in a high-level language C as well as with embedded system design.
Why is the course taught
Embedded computer systems make up a large and vividly growing market, which is supposed to be expanding even further with the progressive deployment of the Internet of Things (IoT) concept. One aspect is comprising application of computers and their programming, just as those are generally known. But in the same time, it is also possible to distinguish certain specifics and particularities related to the application and programming of embedded computer systems which, from the perspective of traditional computers, are deemed to hold just some marginal importance or do not need to be addressed at all. Such an interpretation is essentially given by the strong binding of an embedded computer to the underlying hardware and surrounding processes in its vicinity. A typical embodiment of a computer for embedded applications is so called microcontroller, which is a device conceived as an entire computer available on a single chip where it's coupled with various interfaces and range of supporting hardware modules useful for simplification, speed-up or mitigation of the burdens otherwise connected with applications programming.
The overall volume of microcontrollers fabricated annually on a global scale falls into the range of tens of billions. It is important to highlight the fact that thanks to the flexibility of software solution the microcontrollers not only open a way how to carry out various innovations and achieve price reduction of wide range of existing systems and applications (from toys to home appliances, vehicles, manufacturing processes and industrial machines), but their utilization constantly unlock also new possibilities, products and entirely new market segments (e.g. previously mentioned IoT concept), which would be otherwise even hard to imagine without the existence of this type of computers. Within the framework of the IMP course students have the chance to make themselves acquainted with various principles behind the programming and deployment of contemporary microcontrollers. They will also become familiar with the typical modules available in those chips, their usage under various application scenarios. Finally, students should get an understanding of fundamental problems connected with embedded systems based on microcontrollers and learn about the approach to their solution.
Prerequisite kwnowledge and skills
To be familiar with the structure of CPU and other computer components, basics of electronics and machine-level programming. The basic knowledge of programming in C language.
- Materials for lectures, labs and exercises.
- J.W. Valvano, Embedded Systems: Real Time Interfacing to ARM Cortex-M Microcontrollers, ISBN 978-1463590154, 2017.
- K60 Sub-Family Reference Manual, available on-line: https://www.nxp.com/docs/en/reference-manual/K60P144M100SF2V2RM.pdf
- ARM Cortex-M4 Processor Technical Reference Manual, available on-line: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.100166_0001_00_en/index.html
- Materials at the NPX website.
- KL05 Sub-Family Reference Manual, available on-line: https://www.nxp.com/docs/en/reference-manual/KL05P48M48SF1RM.pdf
- Cortex-M0+ Devices Generic Users Guide, available on-line: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0662b/index.html
- Predko, M.: "Handbook of Microcontrollers", McGraw-Hill, ISBN 0079137164, 1998.
- J.W.Valvano, Embedded Systems: Introduction to ARM Cortex-M Microcontrollers, Volume 1, ISBN 978-1477508992, 2014.
Syllabus of lectures
- Introduction to Embedded systems.
- ARM Core for microcontrollers.
- Memory subsystem and interrupts.
- Programming in C.
- Communication interfaces.
- FITkit programming.
- Digital inputs and outputs, ports.
- Timers, counters.
- Analogue input and output.
- System clock and clock generation.
- Power supply and power consumption of embedded systems.
- Practical aspects of embedded systems design.
- Real-time system.
Syllabus of laboratory exercises
- Introduction to lab kit, serial communication.
- Digital input/output.
- Timer, PWM.
- Analogue input.
Syllabus of computer exercises
- Microcontroller programming.
- Lab kit - usage, structure, programming.
- Minerva Kit - how to use.
- Development tools for embedded systems with microcontroller.
- Microcontrollers' debugging interfaces.
- Development support for time-critical application.
Syllabus - others, projects and individual work of students
- Compulsory individual or team twelve-hour project.
- laboratory assignments with the defense
- mid-term written examination
Within this course, attendance on the lectures and group practice are not monitored. Laboratory practice and project are monitored.
Project designing with obligatory storing into IS and getting at least 5 points for the project.
|Mon||comp.lab||5., 6., 7., 8., 9., 10., 11., 12. of lectures||L306||08:00||09:50||3BIT|
|Mon||comp.lab||5., 6., 7., 8., 9., 10., 11., 12. of lectures||L306||10:00||11:50||3BIT|
|Fri||exam||2020-01-10||D0206 D0207 D105 E112||11:00||12:50||3BIT||řádná|
Course inclusion in study plans