MCE 403
Microcontroller and Embedded Systems
2
Course Description
At the end of this course, the students should be able to:
1. provide examples of existing embedded systems-based products and describe the special
requirements placed in developing such systems;
2. use modern integrated development environments for microcontroller/processor
programming and their features for testing and debugging;
3. develop microcontroller programs for mechatronic applications, including the usage of
I/O and communication peripherals;
4. describe, explain, and apply some of the basic concepts of communication protocols,
particularly the Controller Area Network (CAN);
5. explain basic real-time resource management theory;
6. discuss and communicate intelligently about OS primitives for concurrency, timeouts,
scheduling, communication, and synchronisation; and
7. discuss I/O and device driver interfaces to embedded processors with networks,
multimedia cards, and disk drives.
Course Outline
Introduction to embedded systems, history, design challenges, optimizing design metrics, time
to market, applications of embedded systems and recent trends in embedded systems,
embedded design concepts and definitions, memory management, hardware and software
design and testing, communication protocols like SPI, I2C, CAN etc. RISC Design Philosophy,
comparison between CISC and RISC; PIC/AVR/ARM Design Philosophy; Embedded System
hardware, Embedded System software. PIC/AVR/ARM Processor fundamentals –
PIC/AVR/ARM core architecture, data flow model, Register, Current Program Status Register,
Pipeline, Exceptions, Interrupts and Vector Table, Core Extensions, PIC/AVR/ARM Processor
families. PIC16F18877/ATmega328P/ATSAM3X8E Cortex-M3 processors Block diagram and
pin diagram, operating modes: Study of on-chip peripherals like I/O ports, timers, counters,
interrupts, on-chip ADC, DAC, RTC modules, WDT, PLL, PWM and USB. Hardware interfacing
of PIC16F18877/ATmega328P/ATSAM3X8E Cortex-M3 using CCS C
Compiler/Flowcode/Embedded C language: LED, Switches, LCD Display & stepper motor. On-
chip programming: UART, Timer, Real-Time Clock & ADC. Others include Architecture of
kernel, task and task scheduler, ISR, Mutex, Semaphores, mailbox, message queues, pipes,
events, timers, Priority inversion problem, priority Inheritance, RTOS services in contrast with
traditional OS. Introduction to μcos II RTOS and its features, study of kernel structure of μcos
II. Case study of digital camera and automatic chocolate vending machine (without codes).