What are the topics you need to know to master microcontrollers?

Chuckt asked what goals important to master microcontrollers. There’s been some good suggestions so far, which are consolidated on the wiki:

Basic

  • Pins/port/direction (LED flashing)
  • PWM (LED intensity)

Advanced

  • UART communication (when and how to use max232 chip)
  • SPI communication
  • I2C communication
  • CAN communication
  • Interrupts (pin – detect button press, UART – communication)
  • Hardware timers
  • Interfacing an HD44870  display
  • Analog-Digital Conversion (ADC)
  • Digital-Analog Conversion (DAC)
  • EEPROM (store stuff)
  • Sleep/low power (battery operation)
  • Bootloaders (memory map, self-writing)

Broad concepts

  • Multiplexing (timers, pins)

Image by David Henry : CC BY-SA

Via the forum.

Join the Conversation

5 Comments

  1. The number one most important thing to master a microcontroller: How to read a datasheet! This is not meant to be insulting- each manufacturer writes theirs it a little differently, though there tends to be consistency within a single manufacturer’s parts, and 95 percent of the answers to the questions you have will be in the datasheet. And for those manufacturers that publish their errata in a timely fashion (they *ALL* have errata, just not all of them are shared with the public), this leads to the corollary- learn to read the errata- this will solve 4.9% of the rest of your problems.

  2. Writing decent code, people! Start with writing decent C code on a PC, because if you can’t do it (and diagnose and debug it) there, you’ll be SOL once you get down onto an MCU.

    I’d add to @Matt Bennett’s comment — learning to read and understand an API. Not R-ingTFM is like living your life with an opaque sack over your head. If you’re unwilling to read and try to *really* understand, consider a career in the fast food industry (but still be careful around the fryer).
    .

  3. Two important development subject that are seemingly always overlooked: (1) Simulation and (2) In circuit debugging.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.