Electronic – Why do microcontrollers have so many functionalities at once

atmegachip-designmicrocontroller

Being fairly new in the field of electronics, and being a computer scientist, it strikes me as a bit odd that almost every single microcontroller that I've come across thus far is fitted with:

  • Multiple timers, with multiple trigger modes
  • Multi-channel PWM
  • Multi-channel ADC
  • Multiple hardware supported communication protocols
  • Multiple external interrupt pins
  • EEPROM
  • Sometimes DAC and analog comparators

It seems, at least to me, a bit wasteful to jam all of this specialized (even through commonly used) equipment inside the microcontroller, if I'm only using 1/50 of it. Even if I wanted to, I'd only be able to use, say, 1/10th of it, as pins are often mapped to many of these features at once.

  • Why are they jammed up, i.e. what's the argument of not just using external chips or even just software implementations?
  • Are there any ATMega-like processing chips, i.e. chips with a lot of processing power instead of PWM, ADC etc.?

Best Answer

Those peripherals are necessary for most real-world applications of microcontrollers, Not all of them, but leaving out any subset would decrease the market for the microcontroller. For example, the Scenix microcontroller family which was very fast but had very limited hard peripherals was a resounding market failure. That's really bad news for those of us charged with specifying microcontrollers- a complete redesign in order just to keep your products going (okay, maybe good news if you're brought in to replace the person who specified the oddball micro and subsequently paid to clean up someone the mess they left, but that's not great fun either). Much of the area on the chip is taken up by the memory and the bonding pad/drivers and the CPU so those little hardware peripherals are pretty minor.

If you need more processing power, leave the world of 8-bit micros behind and move to one of the 32-bit ARM cores which are generally used in microcontroller-like situations but have more of the chip area devoted to the processor and often to the memory. Or a DSP or FPGA can offer orders of magnitude more processing power, suitable for video processing, high end audio, high end instrumentation and data acquisition etc. As it is, the processing power of modern 8/16 bit micros is not all that bad, and often we 'waste' it by using a high-level language to gain other advantages (faster development and prototyping, use of commercially available libraries such as protocol stacks) rather than tediously hand-crafting bespoke code in assembly.