FRM-201 · Firmware & MCU · Practitioner
I2C, SPI & CAN Protocol Firmware — full syllabus
Implementing and debugging the buses embedded systems communicate over, from the firmware side.
Who this course is for
Firmware engineers responsible for the buses an embedded product talks over — I2C and SPI on the board, CAN across the machine — who need them to work and to fail gracefully.
Prerequisites
- FRM-101-level bare-metal C
- Basic digital electronics: you can read a timing diagram
- Lab boards and logic analysers are provided
Course outline
Day 1 — I2C
- Open-drain signalling, pull-up sizing and rise time: the physics under the protocol
- Start/stop, addressing, ACK/NACK and repeated start
- Clock stretching: slaves that need it and masters that mishandle it
- Implementing master and slave firmware, polled and interrupt-driven
- Stuck-bus detection and recovery: nine clocks and a clean reset
Day 2 — SPI
- Modes 0–3, clock polarity and phase, and the mode-mismatch signature
- Chip-select behaviour, framing and daisy chains
- Full-duplex reality: what shifts in while you shift out
- DMA-driven transfers: descriptor setup and the throughput ceiling
- Multi-slave topologies and signal integrity at speed
Day 3 — CAN and CAN FD
- Dominant/recessive signalling, bit timing and the sample point
- CSMA/CR arbitration: why the lowest ID wins and what that does to latency
- Acceptance filtering, masks and reducing ISR load
- Error frames, error counters, bus-off and fault confinement
- CAN FD: the second bit rate, longer payloads and arbitration-phase limits
Hands-on labs
- Lab: bring up I2C master and slave firmware on two boards and decode the traffic on a logic analyser before trusting the analyser's decoder
- Lab: inject NACK, clock-stretch and stuck-bus faults into your I2C link and implement recovery for each
- Lab: drive an SPI peripheral in each mode, capture the waveforms, and diagnose a deliberately mis-configured mode/polarity combination
- Lab: move an SPI transfer path from polling to DMA and measure CPU load and throughput before and after
- Lab: build a two-node CAN exchange, force arbitration collisions, inject errors up to bus-off, and implement and demonstrate recovery
Capstone project
Implement a three-bus firmware subsystem: an I2C sensor network, a DMA-driven SPI peripheral and a CAN node with a documented message plan and worst-case latency budget — each with fault injection and recovery logic. The evidence is your logic-analyser captures, the fault logs, the recovery state machines and a bus-load calculation showing the design margin.
What you leave with
- Working master and slave I2C firmware, including clock-stretch and stuck-bus recovery
- SPI mode, framing and DMA-transfer skills proven on a logic analyser
- CAN/CAN FD arbitration, filtering and fault-confinement fluency
- A bus-debugging routine: capture, decode by hand, fault-inject, recover
- Documented recovery state machines reusable in production firmware
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 22 Nov – 24 Nov 20263 full days | RiyadhIn person · KAFD Conference Centre | 4 of 14 | SAR 7,090until 23 Oct | ||
| 29 Nov – 1 Dec 20263 full days | Kuwait CityIn person · Al Hamra Tower | 9 of 14 | KWD 580until 30 Oct | ||
| 29 Nov – 1 Dec 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 4 of 14 | OMR 730until 30 Oct | ||
| 6 Dec – 13 Dec 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 10 of 20 | US$1,350until 6 Nov | ||
| 7 Dec – 9 Dec 20263 full days | OttawaIn person · Kanata North Tech Park | 9 of 14 | CAD 2,570until 7 Nov | ||
| 7 Dec – 14 Dec 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 15 of 20 | US$1,350until 7 Nov | ||
| 14 Dec – 16 Dec 20263 full days | TorontoIn person · MaRS Discovery District | 4 of 14 | CAD 2,570until 14 Nov | ||
| 14 Dec – 16 Dec 20263 full days | LondonIn person · Shoreditch Works | 9 of 14 | GBP 1,480until 14 Nov | ||
| 14 Dec – 21 Dec 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 4 of 20 | US$1,350until 14 Nov | ||
| 21 Dec – 23 Dec 20263 full days | BerlinIn person · Factory Görlitzer Park | 4 of 14 | EUR 1,740until 21 Nov |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.