One definition that I found stated that a microcontroller was for embedded systems whereas processors were not. But for many years I sold board level products that had Digital Signal Processors (DSPs) on them. These were commonly used in embedded systems.
Others seemed to define the difference based on price or power consumption, but again experience suggests that the range of those things must overlap the two device types. The most convincing definition is that a microcontroller is a system on chip, that contains memory, peripherals etc for you to make something function, whereas a processor needs you to add external memory, peripherals, clock management etc.
This seems to be quite close, but I believe that the difference is becoming quite blurred. Some processors have some memory on chip and some microcontrollers can connect to external memory and peripherals. It even seems that the actual processing engine in the two are getting more closely related – many processors use an ARM core (or several) and so do many of today’s microcontrollers.
Personally, I think that the name doesn’t really matter and that the important thing is to choose the right device for the job you have to do.
In the past, I designed processing boards (some with processors, others with FPGAs, but that is another discussion) that we wanted to monitor some aspects of. Commonly we monitored temperatures and current being drawn from various supply voltages.
Here we chose a microcontroller to be a monitor chip, but why?
We needed a small device – the microcontroller we chose provided everything we needed in one package. We were happily designing DDR memory interfaces for the main processor, where it was needed, but this monitor didn’t need more than could be found on chip.
We needed a device that has a fixed function – the processor was loaded with a customer specific program, but the monitor circuit needed to perform the same tasks in all cases. The microcontroller we chose had built in Flash memory that could start the device up automatically.
We didn’t need any high-speed interfaces – the results of the monitoring could be output over a slow serial bus. PCI Express, Ethernet or USB type interfaces we were designing for the main processor would have been overkill. So, when we were designing an off-the-shelf board for us to sell to many different customers to run their own programs, we had good reasons to combine two different devices to get the technical features that we wanted.
Now at Dotstar Design in Brent Knoll, we are offering custom electronics design and manufacturing services and have been asked by Rotalink, who supply Miniature Motors, Transmission & Control from its base in Crewkerne UK to develop a custom Motor Test System.