Lesson 1Microcontroller families comparison: AVR, PIC, ARM Cortex-M (M0/M3/M4) — performance, peripherals, and ecosystemCompares main microcontroller families. You'll check AVR, PIC, and ARM Cortex-M chips for speed, peripherals, tools, support network, cost, and fit for comms-focused embedded designs.
AVR architecture, strengths, and use casesPIC families and typical application domainsARM Cortex-M cores: M0, M3, and M4 featuresEcosystem, tools, and community supportPeripherals, memory, and performance scalingCost, availability, and long-term lifecycleLesson 2Basic firmware safety: watchdog timer usage, fault reporting, and robust reset strategiesFocuses on basic firmware safety features. You'll set up watchdog timers, design safe reset and recovery paths, add fault reporting, and catch unexpected hangs or bad states.
Watchdog timer configuration and feedingDetecting and handling lockups and dead loopsBrown-out, POR, and external reset handlingStoring reset cause and fault contextNonvolatile logging of critical failuresSafe restart and degraded operation modesLesson 3GPIO and peripheral budgeting: ADC channels, UART/SPI/I2C ports, timers, interrupts and DMA planningCovers assigning GPIOs and on-chip peripherals to system needs. Plan ADC channels, serial ports, timers, interrupts, and DMA to dodge clashes, allow growth, and hit real-time limits.
Creating a complete signal and pin inventoryMapping ADC channels to sensors and referencesAllocating UART, SPI, and I2C for peripheralsTimer allocation for PWM, capture, and timebaseInterrupt priority and nesting considerationsPlanning DMA channels for high data throughputLesson 4Essential MCU hardware choices: supply voltage, clock source (internal RC, crystal, external oscillator), and power domainsGuides key MCU hardware picks. Evaluate supply voltage ranges, clock options, and power domains, thinking about speed, noise, analog precision, and match with sensors, radios, and outside logic.
Selecting core supply voltage and regulatorsI/O voltage levels and level shifting needsInternal RC oscillator pros and consCrystal and external oscillator selectionSeparating analog and digital power domainsDecoupling and ground layout implicationsLesson 5Clocking and timing: selecting clock source, configuring system tick, low-power modes and wake sourcesExplains clock tree and timing setup. Pick clock sources, set PLLs, configure system tick, and design low-power modes and wake sources while meeting timing, jitter, and power needs.
Clock tree overview and configuration stepsPLL, prescalers, and frequency trade-offsSystem tick configuration and timekeepingTimer usage for delays and schedulingLow-power sleep and stop mode selectionWakeup sources and latency managementLesson 6ADC driver design: sampling sequence, oversampling, averaging, and conversion timingDetails ADC driver design for true readings. Plan sampling order, set triggers, use oversampling and averaging, manage conversion timing, and cut noise with hardware and firmware tricks.
ADC reference selection and calibrationChannel sequencing and scan configurationSampling time and trigger source selectionOversampling, averaging, and filteringDMA-based ADC data acquisitionMitigating noise and crosstalk in readingsLesson 7Embedded power management: sleep modes, brown-out detection, RTC for wakeups, and battery considerationsAddresses embedded power strategies. Use sleep modes, brown-out detection, RTC wakeups, and think about battery type, capacity, and life for reliable low-power comms systems.
Sleep mode selection and entry criteriaRTC configuration for timed wake eventsBrown-out detection thresholds and actionsMeasuring and budgeting average currentBattery chemistry and discharge behaviorDesigning for long battery life and safetyLesson 8Firmware architecture and flow: boot, peripheral init, sensor read routine, error handling, data formatting, comms schedulingPresents full firmware structure from reset to normal run. Design boot flow, peripheral startup, sensor read loops, error paths, data formatting, and comms scheduling for predictable action.
Boot sequence and startup code overviewPeripheral and middleware initialization orderDesigning periodic sensor read tasksCentralized error handling and logging pathsData formatting, scaling, and unit handlingCooperative scheduling and main loop designLesson 9Communication driver design: UART, SPI, I2C stacks; polling vs interrupt vs DMA approachesExplains building reusable UART, SPI, I2C drivers. Compare polling, interrupt, DMA ways, define driver APIs, handle errors and timeouts, and fit into higher protocol stacks.
Layered architecture for serial driversUART driver: framing, buffering, and flow controlSPI driver: modes, chip select, and throughputI2C driver: addressing, arbitration, and retriesPolling versus interrupt-driven transfersDMA-based transfers and ring buffer design