Although ARM 7 (LPC2148) and ARM cortex-m series is controller. But when someone asks about ARM, we use the word Processor not controller why??
Well, a microcontroller is normally defined by a CPU + hardware in one package.
The silicon vendors get the CPU core from ARM (but as far as I understand, also additional technologies, which integrates smoothly with the core; for instance the AHB and APB).
Thus a microcontroller is more than just the CPU core.
Most of the time, a microcontroller has some memory embedded inside it (for instance SRAM and Flash), plus functionalities like interfaces (SPI, I2C, I2S, CAN and U(S)ART to mention a few).
On the other hand, a Microprocessor can be seen as the bare core with pins; it does nothing but process instructions and requires external memory and peripherals to function. This allows the engineer more flexibility, perhaps he wants to use a certain memory range for reading/writing to a harddisk controller.
The LPC2148 is a microcontroller, so is any Cortex-M (this far).
Farnell calls some of Freescale's Cortex-A "Microprocessors", even though they have embedded features.
ARM1 on the other hand, is a microprocessor; it was designed for a computer and required external memory and peripherals.
I do not know if there are any recent implementations of the ARM architecture, which is a microprocessor, though; but if there is, then I believe it would be Cortex-A based.
Normally, microcontrollers are thought of as slow devices, which are used to turn on electricity or turn off electricity (using electronic switches, such as relays or MOSFETs. But that's not the case, when we speak about ARM microcontrollers.
These are *very* fast, compared to most other microcontrollers. It's very common to have 72MHz and above. The STM32F4 series easily runs at 168MHz, and can turn things on/off up to 90 million times per second.
Microcontrollers that are this fast allows you to connect TFT displays, they can communicate via Ethernet or WiFi and can do precise control of motors, plus measure rotation speed (using encoders) and more.
It won't pay to buy a slower microcontroller today. You don't get a lower price, even though the speed is a fraction of the ARM microcontroller.
Cortex-M based microcontrollers are very good at saving power, in addition to being fast. If you need to run from a 3V Li-Ion battery, you might want to use a Cortex-M0+; but sometimes it might pay to use a Cortex-M3 or Cortex-M4, in case you need it to do a lot of work. This is because the Cortex-M4 does the job much quicker and thus can go to power saving mode a lot sooner. STMicroelectronics recently developed a low power Cortex-M4 family called STM32L4; they also have a Cortex-M3 based low-power family called STM32L1.
Hello,I think ARM7 and Cortex-M (and even Cortex-A/R) are CPUs for either microprocessors and microcontrollers. However AMR clearly announces Cortex-M series are CPUs for microcontrollers after appearance of Cortex-M3.As jens says the differences of microprocessor and microcontroller are their configurations. The main point would be whether program memory is included or not.That is, an ordinary microcontroller includes flash memory as a program memory.But as flash memory access speed is too slow, the microcontroller cannot increase its clock speed. On the other hand, the microprocessor can be made high speed as the fast memory exists out of the chip.
Best regards,
Yasuhiko Koumoto.
Personally I prefer that it is a processor, and not a controller
The reason I do not distinguish microcontrollers by whether they have flash memory or not, is because there are flash-less microcontrollers as well
Example: LPC4310 ... LPC4370 (the ones ending in zero do not have on-chip flash memory, but those ending in 3, 5 or 7 do).
A microcontroller has a microprocessor built-in.
It's like computers have CPUs (Central Processing Units). A CPU is not "the harddisk" or "the cabinet" as modern people start to call them. The CPU is the chip that's runs the software and is connected to the RAM and peripherals via bridges.
Hello jens,
I think there is no rule without exceptions.
If a vendor calls it a microcontroller, it would be a microcontroller.
If a vendor calls it a microprocessor, it would be a microprocessor.
I think that is an actual thing.
yasuhikokoumoto wrote: If a vendor calls it a microcontroller, it would be a microcontroller. If a vendor calls it a microprocessor, it would be a microprocessor.
yasuhikokoumoto wrote:
I am convinced that there must be somehow that a vendor determines whether it's a microcontroller or microprocessor.
-Hopefully not by flipping a coin, that is.
So far, I've only seen the Cortex-M being called a microcontroller.
-But it someone were to implement the ARM core alone on a chip, without any bus, peripheral interfaces (such as SPI, I2C, etc..), without any on-chip RAM and without any on-chip program memory, I would say it's a microprocessor (as it will require external RAM and program-memory in order to do its jobs).
According to Techopedia, the definition is as follows:
A microcontroller is a computer present in a single integrated circuit which is dedicated to perform one task and execute one specific application. It contains memory, programmable input/output peripherals as well a processor. Microcontrollers are mostly designed for embedded applications and are heavily used in automatically controlled electronic devices such as cellphones, cameras, microwave ovens, washing machines, etc.
A microcontroller is a computer present in a single integrated circuit which is dedicated to perform one task and execute one specific application.
It contains memory, programmable input/output peripherals as well a processor. Microcontrollers are mostly designed for embedded applications and are heavily used in automatically controlled electronic devices such as cellphones, cameras, microwave ovens, washing machines, etc.
Wikipedia also specifies that program-memory may optionally be included:
A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of Ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM.
On the same page, the first microcontroller created is mentioned:
The Smithsonian Institution says TI engineers Gary Boone and Michael Cochran succeeded in creating the first microcontroller in 1971. The result of their work was the TMS 1000, which became commercially available in 1974. It combined read-only memory, read/write memory, processor and clock on one chip and was targeted at embedded systems.
Since Texas Instruments was the first company to create a microcontroller, they might be the ones to best define what makes a microprocessor differ from a microcontroller.