Author Topic: Definitions: Microcontroller, Single Board Computer, et al.  (Read 1502 times)

0 Members and 1 Guest are viewing this topic.

Offline EPAIII

  • Regular Contributor
  • *
  • Posts: 161
  • Country: us
Definitions: Microcontroller, Single Board Computer, et al.
« on: October 27, 2021, 04:41:03 am »
There are a number of devices that incorporate all or most of the functionality of a computer in a single chip. There are PIC chips which can be programmed at a low level (machine code or assembly). Then there are various single chip devices that incorporate some kind of higher level programming like Basic or C. And there are single board computers that incorporate one of the above as well as the memory, various forms of advanced input and output, and on board sensors and readout devices (from single LEDs to displays). And sometimes part or all of this advanced functionality is incorporated in the single, central controller chip which is the heart of the single board computer.

What I would like to know is just what are the proper names for these and for any others that I may have left out? AND, what names or terms exist that cover two or more of these groups and most especially for all of them?

This question has been festering in the back of my mind for some time now. I have struggled to find a term that covers all of these devices and have often used "PIC based devices" but I do not know if that is correct or, more importantly, if it conveys my meaning well. If pressed, I might say that "PIC" is perhaps used synonymous with "microcontroller". But I really do not know if that is correct. I mean, why would a Propeller chip or a Basic Stamp or an Arduino or a Raspberry Pi or a PicAxe or any of the others not be called a microcontroller?

I looked at other boards here but this one seemed to be the one with the most traffic in this area. And, after reading the posting guidelines which seemed to discourage posts in this board on any of them except microcontrollers, I glanced at the first page of topic titles finding the Raspberry Pi, which is specifically mentioned in those guidelines as an example of what is not to be talked about here, as part of not one, but two different topic titles. So, apparently this board does discuss a wide variety of these devices. This is just an observation, not meant as a criticism. And part of my reason for posting this question here.
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 8374
  • Country: us
    • Personal site
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #1 on: October 27, 2021, 05:00:09 am »
Generally accepted terms:
Microcontroller - computing device with integrated program memory and peripherals.
Microprocessor - computing device that requires external memory and often peripherals.

SBC - a board or a module based on a microprocessor (most often) with required memories and peripherals.

Arduino and other boards like this are just prototyping/development boards. Calling them "a microcontroller" would be wrong and confusing.

Although there seems to be a dedicated thing called Single-Board Microcontroller (https://en.wikipedia.org/wiki/Single-board_microcontroller) for stuff like Arduino. I'm not sure it makes sense to have this as a separate thing.

But then again, you can make a parallel with a programmable logic controller (PLC), which is essentially a Single-Board Microcontroller (as described in the article above) with rugged I//O and a dedicated programming language.
« Last Edit: October 27, 2021, 05:09:19 am by ataradov »
Alex
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 16936
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #2 on: October 27, 2021, 05:11:01 am »
The devices that support higher level languages are still microcontrollers, they just come already programmed with firmware that interprets the lower level language.
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 8374
  • Country: us
    • Personal site
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #3 on: October 27, 2021, 05:14:27 am »
The device (IC) itself, sure. But calling Arduino a "microcontroller" is strange. It is like calling a PC system block a "processor", which some people do.
Alex
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 16936
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #4 on: October 27, 2021, 05:18:52 am »
Yeah I'm not arguing that. I would call the Arduino a SBC or microcontroller development board. It is really nothing more than a microcontroller and the minimum "glue" to make it work. There is no interpreter there, just a bootloader.

There are or have been microcontrollers and SBCs that come pre-programmed with BASIC interpreters.
 

Offline Berni

  • Super Contributor
  • ***
  • Posts: 3875
  • Country: si
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #5 on: October 27, 2021, 05:31:27 am »
Well firstly there is the names of the actual chips only:
-Microprocessor: Just the CPU and some support logic for a computer inside a chip. These usually need external memory to even run and external peripherals to talk to the outside world. This is a 6502, 68000, Intel Pentium...etc

-Microcontroller: The entire computer on a single chip, however is typically used for embedded control applications(Hence the controller in the name). Due to this they tend to be low on performance but compact and power efficient as a result. They lack the features required to run a full OS such as Linux. This is a PIC16F, PIC32F, AVR, STM32, LPC...etc

-SystemOnChip(SOC): Half way between the two above. They are powerful CPUs with a lot of the peripherals and support circuity included on chip. They still need external memory to run, but do have things like UART, USB, HDMI...etc directly on its IO pins. This is the chip used on the RaspberryPi, Nvidia Tegra, Qualcomm Snapdragon..etc


But even this is a bit muddy since technically what we think of CPUs used in PCs are actually more like SOCs. Today they now have a built in memory controller and a GPU that outputs video signals directly out of its IO pins. Lots of other IO is still done trough the southbridge, but some low power mobile CPUs actually have a good deal of other peripherals on chip such as USB, Sound, Ethernet, SDIO...etc

Then for boards, you can argue the difference between a development board, evaluation board and SBC. There is no solid line between them. But a SBC tends to be a bit more specific as they tend to carry powerful SOC chips and feature fairly PC like IO (HDMI,USB,Ethernet,Audio). So something like a Arduino would not get called a SBC because its carrying a microcontroller with only very microcontroller like IO (GPIO,UART,I2C,SPI..etc)
 
The following users thanked this post: westfw

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 2583
  • Country: nz
  • Formerly SiFive, Samsung R&D
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #6 on: October 27, 2021, 06:18:38 am »
First of all, I agree with ataradov, with one addition:

SoC (System on a Chip): a microprocessor with all or most I/O integrated onto a single chip, the only external thing needed is usually DRAM, though that may also be internal, typically as multiple chips in a single package aka SiP.

Also, microcontrollers don't usually have an external memory bus. Any microcontroller with a sufficient number of GPIOs can of course have some of them configured to control and access external memory in an explicit way by having the program manipulate some IO ports as addresses and data. Some, such as the ATMega2560, allow normal memory addressing to be used to access such external memory, even to run code from it, but usually at a speed penalty. The 8051 also has such external memory, but modern versions of it incorporate the "external" memory on the chip itself, thus completing a circle.

There are a number of devices that incorporate all or most of the functionality of a computer in a single chip. There are PIC chips which can be programmed at a low level (machine code or assembly). Then there are various single chip devices that incorporate some kind of higher level programming like Basic or C.

I've never seen a microcontroller that "incorporates" C programming. The chip runs a binary machine code. You can write and download the program of your choice into the EPROM or flash on the chip, where it is stored permanently (or until you overwrite it).

The program you download is typically written in assembly language or C (or increasingly, Rust) but by the time it gets sent to the microcontroller it is binary machine code.

The program might do any number of things (infinite variety), but one option is to implement an interpreter for a language such as BASIC or MicroPython which you can enter code for interactively via a serial interface. Extremely simple languages such as FORTH or Scheme might compile the code you enter interactively into machine code which is then stored in RAM (or flash).

Quote
And there are single board computers that incorporate one of the above as well as the memory, various forms of advanced input and output, and on board sensors and readout devices (from single LEDs to displays).

I would not call something an SBC unless a significant amount of RAM (enough to run some kind of operating system and capacity to self-host a proper compiler), and some kind of mass storage with a file system. The boundary is a bit fuzzy. Now days people expect Linux and tens or hundreds of MB of RAM and hundreds of MHz of CPU clock speed. But a 1 MHz Apple ][ or C64 is of course an SBC and those only have 64 KB RAM.

Boards which merely bring the pins of a microcontroller out to convenient sockets or LEDs etc are not SBCs.

 And sometimes part or all of this advanced functionality is incorporated in the single, central controller chip which is the heart of the single board computer.

Quote
would a Propeller chip or a Basic Stamp or an Arduino or a Raspberry Pi or a PicAxe or any of the others not be called a microcontroller?

Raspberry Pi is certainly not a microcontroller. Far too capable.

May BASIC Stamp burn in hell. What an awful thing!  I'm so glad Arduino saved us from that. I hadn't heard of Propeller, but I see it's from the same company. Hardware threads are an interesting idea that have their place. But fixed-length 32 bit instructions and an interpreter in ROM for "more compact" bytecodes for "Spin" is just a terrible idea. Well designed modern RISC instruction sets such as ARM's Thumb and RISC-V with the C extension are more compact than any bytecode I've seen, and run at full speed.
 

Online David Hess

  • Super Contributor
  • ***
  • Posts: 14100
  • Country: us
  • DavidH
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #7 on: October 27, 2021, 06:59:51 pm »
Microprocessors require external memory and support chips to operate.  Microcontrollers have these built in.

Single board computers are literally built on a "single board", and do not require expansion cards.  In an earlier age, embedded computer systems were composed of separate cpu, memory, and interface cards.  *shakes fist*  There were several expansion bus standards for these systems like STD Bus.

A System on a Chip is a further integration of what would previously be on a single board computer onto a single chip.
 

Online Siwastaja

  • Super Contributor
  • ***
  • Posts: 4893
  • Country: fi
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #8 on: October 27, 2021, 07:07:13 pm »
Arduinos are not SBCs. I would think it's obvious because clearly it isn't a computer. But I guess it's not so obvious after all given all the confusion.

This is actually a terminology problem which I think is rather easy simply because of the market gap. The difficult borderline exists, but there are not too many products around that borderline as far as I know. What I mean, the difference between an Arduino and Raspberry Pi is just so massive in every possible regard that it's IMHO very hard to mislabel them.

Yet that's what people still do, calling Arduinos SBCs and Raspis Microcontrollers.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 8324
  • Country: fr
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #9 on: October 27, 2021, 07:25:11 pm »
Yet that's what people still do, calling Arduinos SBCs and Raspis Microcontrollers.

Haha, I stumbled upon a YT video lately which was titled something like "Arduino vs. Raspberry Pi, which is best" (and no they were not talking about the Pico). :-DD
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 2583
  • Country: nz
  • Formerly SiFive, Samsung R&D
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #10 on: October 27, 2021, 09:05:52 pm »
Arduinos are not SBCs. I would think it's obvious because clearly it isn't a computer. But I guess it's not so obvious after all given all the confusion.

Agreed.

Quote
This is actually a terminology problem which I think is rather easy simply because of the market gap. The difficult borderline exists, but there are not too many products around that borderline as far as I know. What I mean, the difference between an Arduino and Raspberry Pi is just so massive in every possible regard that it's IMHO very hard to mislabel them.

Yet that's what people still do, calling Arduinos SBCs and Raspis Microcontrollers.

There is some overlap.

Historical microcomputers running CP/M, Apple DOS (or the UCSD P-System) -- or modern retro-systems such as the Commander X16 -- are definitely SBCs because they have all the attributes of a computer. But their capacity and performance fall well into (or even below) that of modern microcontrollers.

And then there are microcontrollers with unusually high capability such as the 600-1000 MHz 1 MB NXP iMX RT1062 used in the $20 Teensy 4.0. Or the dual core 64 bit 400-800 MHz 8 MB SRAM Kendryte K210 which has supervisor and user modes and an MMU and can borderline run a really cut down (or old) Linux (or xv6).
 

Online rstofer

  • Super Contributor
  • ***
  • Posts: 8837
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #11 on: October 27, 2021, 10:02:56 pm »
I hadn't heard of Propeller, but I see it's from the same company. Hardware threads are an interesting idea that have their place. But fixed-length 32 bit instructions and an interpreter in ROM for "more compact" bytecodes for "Spin" is just a terrible idea. Well designed modern RISC instruction sets such as ARM's Thumb and RISC-V with the C extension are more compact than any bytecode I've seen, and run at full speed.

8 each 32 bit cores is definitely an interesting chip.  At a glance, Spin is no worse of an idea than MicroPython (or Python itself) in that neither are compiled to native code (generally).  The thing is, the Propeller has been around for a long time, long enough that there is a GNU C compiler variant that generates native code.  And there are a lot of other languages like Pascal, Forth, BASIC and Java.

https://en.wikipedia.org/wiki/Parallax_Propeller

https://www.parallax.com/propeller-2/#p2-specs

I played with the Propeller a long time back recreating some old style arcade type games.  I need to revisit this chip, it's kind of fun!


 

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 1132
  • Country: gb
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #12 on: October 27, 2021, 10:03:47 pm »
Arduinos are not SBCs. I would think it's obvious because clearly it isn't a computer. But I guess it's not so obvious after all given all the confusion.

Agreed.

Ironically, two weeks ago I put 18639.49 rubles (~ 192 UKP, ~264 USD) into the purchase of an "SBC".
VAT + S / H + customs duties all inclusive.

In 1993, someone at Motorola decided to sell the kit as "SBC", and so it is written on the PCB, but clearly it isn't a "computer" because it doesn't look like a RPI and it doesn't run Linux ...

so ... did they scam me? ....

... maybe yes, but I found 10Kg of books, precious and rare printed application notes and datasheet included so it was worth it  ;D
« Last Edit: October 27, 2021, 10:10:14 pm by DiTBho »
 

Offline ataradov

  • Super Contributor
  • ***
  • Posts: 8374
  • Country: us
    • Personal site
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #13 on: October 27, 2021, 10:13:32 pm »
In 1993
That things evolve over time, so are naming conventions.

On the Propeller - I don't get how they stay in business. It is neat that they can make custom silicon in small quantities like this and still stay afloat for such a long time. But I feel like there is so much more could be done if you have ability to make custom silicon. Right now I don't really see what is so special about them.
Alex
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 2583
  • Country: nz
  • Formerly SiFive, Samsung R&D
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #14 on: October 27, 2021, 10:30:51 pm »
8 each 32 bit cores is definitely an interesting chip.

And barrel processors are an interesting idea, but there are more modern implementations e.g. the XMOS xCore chips, or if you like a standard instruction set on your barrel processor the RISC-V GAP8 (with its GAPuino dev board) or it seems this newly announced thing:

https://www.hackster.io/news/risc-v-based-vega-brings-continual-learning-to-tinyml-with-an-order-of-magnitude-efficiency-gain-6189df9bb365

(where the "cluster" part *looks* a lot like a GAP8, but I haven't tried to dig deeper)
 

Online rstofer

  • Super Contributor
  • ***
  • Posts: 8837
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #15 on: October 27, 2021, 11:45:59 pm »
And barrel processors are an interesting idea, but there are more modern implementations e.g. the XMOS xCore chips, or if you like a standard instruction set on your barrel processor the RISC-V GAP8 (with its GAPuino dev board) or it seems this newly announced thing:

Control Data thought so back in the early years.  One central CPU served 10 Peripheral Processors in rotation.  They were the fastest computers in the world.

https://en.wikipedia.org/wiki/CDC_6000_series

2-3 MFLOPS (CDC 6600) got us to the Moon and back.  Today we can have multiple TFLOPS on the desktop (NVIDIA CUDA Cores).
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 2583
  • Country: nz
  • Formerly SiFive, Samsung R&D
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #16 on: October 28, 2021, 12:05:02 am »
Ironically, two weeks ago I put 18639.49 rubles (~ 192 UKP, ~264 USD) into the purchase of an "SBC".
VAT + S / H + customs duties all inclusive.

!!  eevblog thinks you are in the UK.

I just noticed your nick could be interpreted as "childishly".

It was a PITA getting hold of tech stuff when I lived in Moscow. I found onpad.ru out in Fili was not bad for dev boards, but I had a hell of a time getting hold of an Arty FPGA board. US stores wouldn't ship to Russia, and the Russian distributors were only set up to sell to businesses not individuals!

I found that if I took the advertised price in the USA (which always excludes sales taxes) and added 60% then it was usually very close to the final price in Russia.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3612
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #17 on: October 28, 2021, 02:46:11 am »
Quote
SoC (System on a Chip): a microprocessor with all or most I/O integrated onto a single chip
I think the things labeled "System On a Chip" usually include some sort of high-level function on the chip, but that usually doesn't include (much) memory, and it might not include things that we think of as "standard" peripherals.

ESP8266 is probably an SoC rather than a microcontroller, because of the Radio peripheral (there are a lot of these around.)  Single-chip MP3 players may also consider themselves SoCs, even with a lowly 8051 CPU.

 

Online Bassman59

  • Super Contributor
  • ***
  • Posts: 2236
  • Country: us
  • Yes, I do this for a living
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #18 on: October 28, 2021, 02:51:14 am »
SBC - a board or a module based on a microprocessor (most often) with required memories and peripherals.

Back when I worked for a company that designed and manufactured them, a "single board computer" was basically just that: everything you needed for a computer -- processor, memory, display and user-interface peripherals, expansion bus (PCI, etc) communications peripherals (RS-232, Ethernet, etc) and interfaces to mass storage -- on a single board. They were designed for standard backplane usage so they were VME and CompactPCI compliant and fit into those chassis, which provided power and connectivity to other processor boards and peripherals.

I think a Raspberry Pi fits that definition. An Arduino does not, as an Arduino is basically just a breakout board.
 

Offline PCB.Wiz

  • Frequent Contributor
  • **
  • Posts: 511
  • Country: au
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #19 on: October 28, 2021, 04:39:12 am »
Generally accepted terms:
Microcontroller - computing device with integrated program memory and peripherals.
Microprocessor - computing device that requires external memory and often peripherals.

Those were generally accepted delineations, but the first one is morphing a little these days with Microcontrollers that load from external flash, and run in RAM, or a combination of Internal RAM and Execute-in-place from external FLASH.
The ESP8266 is probably the highest usage example of that chip class.
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 3612
  • Country: us
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #20 on: October 28, 2021, 08:21:46 am »
Also seen recently (WRT RPi Zero 2): "System in Package" - rather like a SoC, but with multiple chips stacked inside a single package (usually memory chips...)
 

Online nfmax

  • Super Contributor
  • ***
  • Posts: 1395
  • Country: gb
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #21 on: October 28, 2021, 08:28:56 am »
Back in 1976, Intel introduced the SBC 80/10, which held an 8080 microprocessor, up to four 8708 1kB EPROMs, 1kB of static RAM, and serial & parallel I/O. This was labelled (on the PCB!) as SINGLE BOARD COMPUTER 80/10. This, I believe, is the origin of the term.
 

Online Siwastaja

  • Super Contributor
  • ***
  • Posts: 4893
  • Country: fi
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #22 on: October 28, 2021, 09:16:08 am »
Expectations what a "computer" is have obviously evolved, and it's worth remembering a "microcontroller" is a newer class, separated from "computers".

30-40 year old computers are quite close to a modern microcontroller in both processing power and number of available interfaces, but the big difference is the typical use case; the computer is used to run user-defined programs, and for that reason, there is some very simple (widely accepted) way of inputting the program; writing BASIC code, running a perforated tape, a C cassette with the binary, sudo apt-get install, go to web, download install.exe, whatever.

Now there are difficult corner cases like mentioned by brucehoult, some large MCU development board can be used like a computer, running a general purpose OS, installing user software and so on. But such use cases tend to be quite specialized, and by people who have no trouble labelling their tools.

Most of the confusion seems to be within the trivial extreme cases, like comparing Arduino (with ATMega328P) where UART is the fanciest interface it supports, to Raspberry Pi (with complete chipset of computer parts and interfaces, and a normal desktop OS).

Finally, if you have trouble deciding if something is "SBC", the only questions you need to ask are:
* Is this a single board?
* Is this a computer?
« Last Edit: October 28, 2021, 09:18:06 am by Siwastaja »
 

Offline DiTBho

  • Super Contributor
  • ***
  • Posts: 1132
  • Country: gb
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #23 on: October 28, 2021, 09:34:48 am »
!!  eevblog thinks you are in the UK.

I just noticed your nick could be interpreted as "childishly".

It was a PITA getting hold of tech stuff when I lived in Moscow. I found onpad.ru out in Fili was not bad for dev boards, but I had a hell of a time getting hold of an Arty FPGA board. US stores wouldn't ship to Russia, and the Russian distributors were only set up to sell to businesses not individuals!

I found that if I took the advertised price in the USA (which always excludes sales taxes) and added 60% then it was usually very close to the final price in Russia.

USA product, bought from a dude located in Russia.
Imported to the UK.
 

Offline brucehoult

  • Super Contributor
  • ***
  • Posts: 2583
  • Country: nz
  • Formerly SiFive, Samsung R&D
Re: Definitions: Microcontroller, Single Board Computer, et al.
« Reply #24 on: October 28, 2021, 09:57:09 am »
USA product, bought from a dude located in Russia.
Imported to the UK.

Fair enough.

It's just tooo much to be coincidence that your nick can be interpreted as волапюк
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf