Microprocessor Control
Holders: Prof. Diaci Janez, Prof. Podržaj Primož
Subject description
Content:
- Lecture: Introduction, course overview
- Lecture: Digital integrated circuits
- Specifications
- Open collector/drain outputs
- Buses
- Lecture: Development of Microcontroller Circuit Boards
- Demo and development boards - rapid prototyping
- PCB design tools (hardware)
- PCB manuf. technologies
- Hardware testing methods
- Lecture: Microcontroller architectures
- 8-bit MCUs (Atmel AVR)
- 16-bit MCUs (TI MSP430 or STM ST10)
- 32-bit MCUs (ARM Cortex-M)
- Comparing applications of different architectures in the same control application
- Lecture Direct access to MCU peripherals 1
- Digital I/O (with examples)
- Counters, timers (with examples)
- Lecture: Direct access to MCU peripherals 2
- A/D and D/A converters (with examples)
- Communication interfaces (with examples)
- Lecture: MCU interrupt system
- Interrupt sources (external, internal), their vectors
- Programming interrupt routines
- Interrupt priority
- Lecture: Serial communications with MCUs
- RS232, RS422, RS485
- SPI
- Lecture: Standard MCU buses
- I2C
- CAN, LIN
- Lecture: Low power microcontroller applications
- Battery power: characteristics, parameters, types
- Characteristics of states with reduced power consumption
- Hardware measures to reduce power consumption
- Software measures to reduce consumption
- Lecture: Operating systems for real-time processing
- Real-time operation and multitasking in embedded systems
- Example: FreeRTOS
- Tasks, scheduling algorithms
- Management: memory, queues, program timers, interrupts, resources
- Task communication services
- Lecture: Developing a control application with FreeRTOS (by example)
- Application layout
- FreeRTOS function calls
- Implementation
- Using debugging tools
- Lecture: Linux for Embedded Systems
- Features, distributions
- Setting up a selected distribution on a microcomputer (eg Raspberry Pi)
- Basic admin tasks, using CLI interface
- Application management
- Lecture Programmable logic: FPGA
- Structure and operation of FPGAs
- FPGA Programming Development Environment (Xilinx example; tools, procedures …)
- Implementing a MCU in a FPGA (Xilinx Microblaze example)
- Lecture: Programming FPGAs for control applications
- Fundamentals of programming in HDL (Hardware Description Language) (Verilog)
- Code simulations – writing test benches, signal visualization (Verilog)
- Developing a FPGA based embedded controller (microcontroller, peripherals, control program in language C) - example
Readings
- Valvano J. Embedded Systems: Real-Time Operating Systems for Arm Cortex M Microcontrollers – 2nd edition. CreateSpace Independent Publishing Platform, 2012.
- Johnson A. More to C - Advanced Programming with C in Linux and on Raspberry Pi – 1st edition. CreateSpace Independent Publishing Platform, 2017.
- Monk S. Programming FPGAs: Getting Started with Verilog – 1st edition. McGraw-Hill Education TAB, 2016.