LearningYear 1

Year 1: microcontroller engineering

microcontroller graphic

Module aims

Microcontrollers serve as fundamental elements in embedded systems and the Internet of Things (IoT). This unit imparts a foundational understanding of microcontroller operations and acknowledges the architectural choices involved in their design. Its aim is to elucidate the architecture, programming, and interfacing of microcontrollers, employing specific examples for comprehensive coverage.

Module content

The module emphasises basic tenets of contemporary computer architecture and their application in modern (32-bit) microcontrollers. It utilises the ARM processor core as a representative model of current processor architecture, widely adopted in embedded systems. The course encompasses traditional architecture topics, including CPU and ALU structure, instruction sets, memory, and performance metrics. These metrics facilitate the comparison of different architectures such as RISC versus CISC, as well as VLIW, SIMD, MIMD, ASSP, and DSP devices.

Additionally, the course introduces the C and C++ programming languages for microcontroller-based systems. Topics covered include variables, data types, arithmetic expressions, strings, loops, arrays, functions, structures, pointers, bit operators, the pre-processor, I/O operations in C, debugging programs, object-oriented programming, and the Standard C Library.

The module also addresses issues like software testing and strategies, compiling and downloading code onto the mbed using commercial Integrated Development Environments such as Keil and IAR, and GNU-based toolchains for microcontroller development.

Module delivery

Typically, the module is delivered through lectures complemented by direct practical experiences in both lab settings and independent study. Assessments include quizzes and tests to ensure retention of information.

Module outcomes

Upon completion of this course, students we be able to:

  • Summarise the key components of a microcontroller, comparing them to microprocessors
  • Describe the operation of an ALU
  • Explain microprocessor Instruction Set Architecture and Microarchitecture
  • Develop microcontroller software for interfacing with external electronics
  • Utilise an Integrated Development Environment for programming and debugging

Module assessment

This course segment is typically assessed via a combination of written exams, coursework, and in-laboratory assessments. The typical weighting of these is 60% exam work, 40% a combination of other methods.