Microprocessor Control

Holders: Prof. Diaci Janez, Prof. Podržaj Primož

Subject description

Content:

  1. Lecture: Introduction, course overview
  2. Lecture: Digital integrated circuits
    • Specifications
    • Open collector/drain outputs
    • Buses
  3. Lecture: Development of Microcontroller Circuit Boards
    • Demo and development boards - rapid prototyping
    • PCB design tools (hardware)
    • PCB manuf. technologies
    • Hardware testing methods
  4. 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
  5. Lecture Direct access to MCU peripherals 1
    • Digital I/O (with examples)
    • Counters, timers (with examples)
  6. Lecture: Direct access to MCU peripherals 2
    • A/D and D/A converters (with examples)
    • Communication interfaces (with examples)
  7. Lecture: MCU interrupt system
    • Interrupt sources (external, internal), their vectors
    • Programming interrupt routines
    • Interrupt priority
  8. Lecture: Serial communications with MCUs
    • RS232, RS422, RS485
    • SPI
  9. Lecture: Standard MCU buses
    • I2C
    • CAN, LIN
  10. 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
  11. Lecture: Operating systems for real-time processing
    • Real-time operation and multitasking in embedded systems
    • Example: FreeRTOS
      1. Tasks, scheduling algorithms
      2. Management: memory, queues, program timers, interrupts, resources
      3. Task communication services
  12. Lecture: Developing a control application with FreeRTOS (by example)
    • Application layout
    • FreeRTOS function calls
    • Implementation
    • Using debugging tools
  13. 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
  14. 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)
  15. 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

  1. Valvano J. Embedded Systems: Real-Time Operating Systems for Arm Cortex M Microcontrollers – 2nd edition. CreateSpace Independent Publishing Platform, 2012.
  2. Johnson A. More to C - Advanced Programming with C in Linux and on Raspberry Pi – 1st edition. CreateSpace Independent Publishing Platform, 2017.
  3. Monk S. Programming FPGAs: Getting Started with Verilog – 1st edition. McGraw-Hill Education TAB, 2016.

back to list