Embedded System





Microcontroller Architecture


What is Architecture ? You might have heard often when people are talking about building. But, Of course, I am not anything about designing a building here. Then what does it mean here ?


The literal meaning of Architecture is 'Structure of Anything'. That's it, the term Architecuture is a fancy expression for 'Structure'. So if you heard of 'Architecture of an Operating System', it simply mean 'Structure of an Operating System'. If you say 'Architecture of a Microcontroller', it means 'Structure of a Microcontroller'.


Even though the definition sound simple, understanding the real meaning of an Architecture of Anything is not that simple because the description of Architecture of something sound (or looks) very abstract (not tangible). If you just see the documentation of something (e.g, documents of a microcontroller), you would just see a bunch of diagram with a lot of boring / dry description. So those document would not give you much concrete understanding. However, if you revisit the document/diagrams over and over while you are doing some hands on with those microcontroller, you would start making more and more sense out of those abstract documents.


Whatever Micontroller you get, you would find a bunch of Architecture diagram of the chip almost at the beginning of the technical document of the chip. For some people, those diagrams would look like 'a bunch of retangles connected each other by messy arrows' but for some people it would give you almost full details of the microcontroller'. The more you have practical experience with the chipset, more meaning would show up from the diagram. So, your goal is to try to reach such a status where you can get the most of the chipset just by looking at a couple of architecture diagram.


Before I buy any Embedded board or chipset, I usually search for datasheet or user manual for the microcontroller being used on the board and check the architecture diagram first. I would try to find answers to following questions from the architecture diagram and one/two pages of feature summary in the datasheet.

  • How many GPIO ports are available ?
  • How many Digital I/O pins are available ?
  • How many Analog I/O pins are available ?
  • What kind of communication interface are available ? (I2C, SPI, UART, CAN, Ethernet etc)
  • What is I/O voltage for GPIO pins ? (5V ? or 3.3 V?) // You should see the datasheet for this kind of information
  • What is max current for GPIO pins ? // you would need to search through a little further in the document
  • What is driving voltage for the communication interface ?



Examples of Microcontroller Architecture


I will put down example architecture of some of the well known microcontrollers. As I mentioned above, if you haven't played with any of microcontroller on your own, these diagram would not make much sense to you. However, you will gradually get more intuition from these as you play with real hardware.  You can find this kind of Architecture diagram for almost any chipset from the datasheet (or user manual) of the chipset (Microcontroller). The original document from which these diagram came from are linked under Reference section.

As you see here, different manufacturers provide a little bit different level of details in the architecture diagram. So in many cases, you would not be able to get full details from the architecture diagram only. However, it is always good idea to take a quick look at this high level diagram and look into the manufacturer datasheet when you need to get more detailed information.


< PIC Architecture >




< AVR Architecture >




< STM 32 (STM32 F20x) Architecture>




< Quark Architecture >




< 8051 Architecture >




< LPC 1768 Architecture>




< Z8 Architecture >






Reference :


[1] List of Common Microcontrollers (Wikipedia)

[2] PIC16F87XA Data Sheet


[4] Atmel 8051 Microcontrollers Hardware Manual

[5] Z8 Family of Microcontrollers - User Manual

[6] Intel® Quark™ Microcontroller D2000

[7] STM32F205xx/STM32F207xx Datasheet