Embedded Systems - Real-Time Interfacing to ARM Cortex-M Microcontrollers

The best way to understand what you will learn in this class is to list the labs you will complete and the example projects we will build. After the successful conclusion of this course students should be able to design embedded systems from a systems level: including hardware/software interfaces for devices like LCD displays, motors, keyboards, analog sensors and speakers. Students will be able to connect their system to other systems using hard links like UART and SPI, and with wireless links like ZigBee and IEEE802.11.

Educational Objectives

  • Microcomputer Architecture ( review of Volume 1): An introduction to the microcomputer, architecture, The Cortex M4 Instruction Set, Cortex M4 Addressing Modes, I/O and Memory Organization, The memory map of the TM4C123 and TM4C1294.

  • Software Design: Data structures in C (arrays, tables, linked lists, stacks, and fifo queues), writing quality programs in C, passing parameters (conceptual and implementation levels), modular programming, verification and testing, documentation.

  • Microcomputer Interfacing: Digital hardware, modules and signals, drivers, registers, voltage/current/capacitance/inductance, voltage level conversion, timing equations, and timing diagrams.

  • Parallel and Serial Input-Output: Parallel I/O devices, device driver software, buffered input and output, table and linked list interpreters, synchronous and asynchronous serial input-output, synchronization in I/O devices, blind-cycle synchronization, busy-wait synchronization, interrupt synchronization, polled interrupts, vectored interrupts, interrupt priority, interthread communication, critical sections.

  • Component-level Interfacing: Keyboards, key debouncing, keyboard scanning techniques, LED scanning techniques, LCD interfacing, graphics drivers, microphones, speakers, compasses, accellerometers, GPS, ZigBee, and Wifi.

  • Data Acquisition Systems: Bridge circuits, op amps, low pass filters, instrumentation amplifiers, DAC, ADC, audio amplifiers.

  • Motor interfacing: Stepper motors, DC motors, pulse-width modulation, tachometers.

  • System-level Design: Requirements documents, Power sources, clock generation, PCB layout, low-power design, tolerance, testing, and ethics.

  • Internet of Things: Networks, wifi, smart objects, domain name system, TCP, UDP, sockets, and server/client.