Is there any difference, fundamentally, between microprocessor (MPU) and microcontroller (MCU)?
"In theory, there is no difference between theory and practice. In practice, there is!"
Most of the differences are one of size. If you HAD a microprocessor with 16k of flash memory and 1k of RAM, that would be just like programming an ATmega168. But the last time a microprocessor system had only 1k of RAM was probably back around 1980 (Timex Sinclair ZX81!)
The other major difference is RAM vs ROM. Ancient microprocessor systems may have had 1MB or less of memory, but the memory a programmer actually USED was likely to be ALL RAM. Now, you can get microcontrolers with 1M of flash, but ... it's NOT RAM, and that changes the sorts of programs you can write. (in particular, it interferes with all those "systems" that had relatively minimal code but lots of data. We'd run ~50 "processes" on a 68k system with 1MB of RAM, and you just can't DO that if your microcontroller has 1MB flash and only 128k of RAM (like some of the SAM chips.)
(and those are "big" microcontrollers. People are still doing stuff with the microcontrollers that have 1K of flash and less than 100 bytes of RAM...)
Yes! In theory, both MPU and MCU are programmable controllers. They can be trained (by stored program) to do any task whatever a user mind can imagine.
Just a few years ago (before the advent of MCU especially the Arduino UNO), in academy, the title of the course at undergraduate class was "Microprocessor and Interfacing" and the delivery was around 8085 and 8086 and a moderate coverage on the PVAM Mode operation of 80286/80386.
Now, after the advent of MCU, the title has changed to "Microprocessor Microcontroller and Interfacing"; where, the institutes demand that the working principles of the MPU should still be covered along with greater/sole emphasis on "MCU Interfacing". The roles of MPU and MCU remain the same as both devices perform the following four basic tasks:
1. Take command (+, -, *, and /) from the user via Keyboard (input device);
2. Accept data from user via Keyboard
3. Modify data in a way the user wants, and
4. Deliver result to the user via Display Unit (output device).
The question that naturally comes form the pupils -- what is the difference between MPU and MCU? I have prepared an answer to the question in the form of two comparative hardware block diagrams to build Temperature Meter, which has been tested in the class room and would be posted soon in this thread. The presentation satisfied the pupils to a greater extend to visualize that the MPU and MCU mainly differ in practice rather than theory as @westfw has mentioned in post #27.
It's not always true by any means, but I expect a microcontroller to run a single program, whereas a microproceesor is likely to have infrastructure around it to allow it to run many, often (apparently) simultaneously.
Don't hijack OP's thread. If you're really interested in this (verses just wanting to veer off into one of your signature pedantic, off-topic discussions), then start your own thread.
Please stay on topic.
If you want to discuss a side issue please start a new thread !
is there a mechanism / moderator that can remove all this BS about mcu, et al which is not germain to anything but self-aggrandizment and certainly does not help me learn anything about my original questions?
Ron
Discussion split from a topic that was wandering away from its original question
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.