Skip to content

Microcontroller Circuits

Tom Moxon edited this page Feb 25, 2016 · 49 revisions
  • There are a wide variety of controller and computer architectures, as they have been refined and improved over time, and with changing technology. The two biggest drivers, IMHO were process technology (chips got smaller), and memory technology (memories got way bigger). In the beginning there was the Von Neumann computer architecture, which keep the programming information and the data itself in the same memory. This is because the amount of memory was small and very expensive (hundreds to thousands of bytes).

cc

  • These early computers were designed with VLIW or Very Long Instruction Words, also know as CISC or Complex Instruction Set Computers. The thinking at the time was memory was limited and expensive, so make each computer instruction do as much as possible with that limited amount of memory.

  • As memory started to become larger and less expensive, this spawned the RISC or Reduced Instruction Set Computers. The thinking behind RISC was to simplify the computer and reduce the number of instruction to make it go faster. This required slightly more memory for the computer program, but with the trend for increasing memory sizes, and decreasing memory costs, this now made sense.

  • The Harvard architecture is a computer architecture with physically separate storage and signal pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical relays. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the central processing unit could not initialize itself.

  • Today, most processors implement such separate signal pathways for performance reasons, but actually implement a modified Harvard architecture, so they can support tasks like loading a program from disk storage as data and then executing it.

harvard

  • Most of the computers, controllers, and micro-controllers we'll be talking about are Harvard Architecture, like the Arduino AVR, and the ARM Cortex microcontrollers. Raspberry Pi, Beaglebone, etc. are all Harvard Architecture processors.
  • There is not really a good distinction between a Microprocessor and a Microcontroller other than size and performance (Microcontrollers are generally smaller and less expensive). However, they both can run programs and interact with the real world using their input/output pins.

ARM

  • A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory (FLASH) is also often included on chip, as well as a typically small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips and having an order of magnitude more memory.

  • Since this is intended to primarily be an electronics hardware primer for programmers, I'm not going to get into the specifics of the microprocessor Instruction Set Architectures, and how to write programs, as I'm assuming that you have some familiarity with that. There are already several good Arduino IDE introduction videos out there to watch.

  • A system on a chip or system on chip (SoC or SOC) is an integrated circuit (IC) that integrates all components of a computer or other electronic system into a single chip. It may contain digital, analog, mixed-signal, and often radio-frequency functions—all on a single chip substrate. SoCs are very common in the mobile electronics market because of their low power consumption. A typical application is in the area of embedded systems.

  • The contrast with a Microcontroller is one of degree. Microcontrollers typically have under 1MB of RAM (often just a few kilobytes) and often really are single-chip-systems, whereas the term SoC is typically used for more powerful processors, capable of running software such as the desktop versions of Windows and Linux, which need external memory chips (flash, RAM) to be useful, and which are used with various external peripherals

zero

  • There are number of popular microprocessor architectures competing for market share in the embedded product and IoT space today, and we'll cover just a few of the most common ones.

    • AVR is a modified Harvard architecture, 8-bit, RISC, single-chip microcontroller, which is produced by Atmel. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time. When the Arduino IDE was first introduced, the only microprocessor that it supported was the AVR. For an example schematic using the Atmel AVR, have a look at the Arduino Pro Board, a minimal implementation for the Arduino IDE.
    • ARM Cortex is a modified Harvard architecture, 32-bit (and 64 bit now!), RISC, single-chip microcontroller, which is produced in a number of variations, by a number of chip manufacturers around the world; all of whom licensed the architecture from ARM limited. Atmel, TI, Freescale, Intel, and many others manufacture ARM microcontrollers. For an example schematic using an ARM Cortex, have a look at the Maple, a minimal implementation, and one of the very first for the Arduino IDE.
    • X86 is a modified Harvard architecture, of 8, 16, 32, and 64-bits, RISC, microprocessor, which is produced primarily by Intel and Advanced Micro Devices (AMD). It has been the basis for the IBM PC family, and used in later generation Apple MAC products as well. For an example schematic using the X86, have a look at the Original IBM PC, one of the most popular personal computers.
    • Quark is a modified Harvard architecture, 32-bit, RISC, microprocessor, which is produced primarily by Intel. The Quark lacks support for SIMD instruction sets (such as MMX and SSE) and only supports embedded operating systems. Quark powers the Intel Edison and Galileo boards. Intel has developed the MRAA for supporting the Arduino IDE with the Edison and Galileo boards. For an example schematic using the X86, have a look at the Edison, an Quark implementation for the Arduino IDE.
    • ESP8266 is a modified Harvard architecture, 32-bit, RISC, microprocessor, which is produced by the Shanghai-based Chinese manufacturer, Espressif Systems. ESP8266 is a low-cost Wi-Fi chip with full TCP/IP stack and a Tensilica Xtensa LX106 microprocessor. It is now supported in the Arduino IDE, as well as the Eclipse IDE. For an example schematic using the ESP8266, have a look at the TSOC-ESP8266, an ESP8266 implementation for the Arduino IDE.

Further (Links)

Clone this wiki locally