The actual question is at the end. But reading that alone might not show you why am I confused. I wrote this post starting with some definitions, assumptions, and speculations and then asking the actual question.
I always think that I know the difference but when I get a question like: "if I put a transceiver with a uC, is that now an SoC?" I go all jumbled up and I don't know how to answer. I recall once I was told that a uC is essentially an SoC. But what proof do I have? But arduino is not on a single chip! I can take out the Atmeg processor off the "board" anytime!
When I check online I get all kinds of answers that confirm or contradicts what I just said directly or indirectly. This is always confusing to me and I blame none-other than marketing people who use these terms loosely and sometimes interchangeably, and the people who follow their lead.
So I decided to look for the fundamental meaning of these three terms: uC, SoC, and DSP. Because for example, when I get confused about voltages in circuits, I always go back to physics fundamentals, ground is not really zero it is just a "reference" and voltages are not "absolute", they a "relatives". This always points me to the right direction. But there is no base to go to when talking about uC. "micro" "controller" is a controller so small that it is in the micro meter scale. But we don't have the nanocontroller term, do we? So this way of thinking wouldn't help.
What I am trying to answer are the following is:
- uC is a processing unit with other peripherals and memory with it for general use, right?
- SoC is a full "system" on a "chip". So whatever system you put on a single chip, is an SoC, right?
DSP is a processing unit for specific use, mainly mathematical operations, right?
Does that mean that everything in a uC they are all required to be in one chip? because if yes, then uC is in fact a SoC. Maybe a small one, but it is. What about arduino. Probably uC "can" be an SoC if it is on a single chip, but doesn't have to (I am heavily using arduino as an example here).
So arduino is a uC, if I take all of its components and put them in another board and I add XBEE to the mix for example. It is still a uC, right? So when do we say that now it is an SoC? Only when the same stuff are put in a single chip rather than collected in a board?
Till now I think that the above questions somehow answer themselves, but I just want to confirm so I can move on. When I try to think "fundamentally", chip or board "can" be the same, it is just wires connecting the different components. and at this point, what do you define a component? Is it a single transistor or a circuit like an ADC? But I don't want to go there.
The next question is what this post is truly about:
- Is a uC essentially an SoC? A special case of an SoC which one of its requirements being that the whole system is for general purpose use.
- uC is general purpose (according to internet) and DSP is mainly to mathematically process signals collected from the real world. But DSP is still a "processor" and a uC contains a "processor". Can I just put a DSP with a bunch or peripherals (let's say ADC and DAC since these are usually used with it) and call the mix a uC? or is that an SoC (since now the mix is not general purpose and hence we cannot call it uC but it is still an SoC)