- Home
- Company
- Products
- Services
- Skills
- Technology Projects
- Signal Processing
- Speech Synthesis
- Speech Recognition
- Audio Technology
- Image Processing
- Electronics Design
- Microcontroller
- US and IR Sensors
- R&D Projects
- Support
Microcontrollers are processors with interfaces or hardware components already integrated. Examples include:
Currently available variants as CPUs in the microcontrollers feature 8-, 16- and 32-bit processing bandwidth. For our applications, we use 8-bit microcontrollers. When deciding which microcontroller to use, a number of factors are considered:
The two most important factors for the CPU in a micro-controller are architecture and clock frequency. As architecture can choose between "von Neumann" (eg Motorola/Freescale) or „Harvard“ (z.B. Atmel).
The Harvard architecture has the advantage that most commands will be processed within one or two clock cycles. Only a few commands require more than two cycles, e.g. special hardware features. CPU and bus work with the same clock frequency. Data and address space have a separate memory.
Within the von Neumann architecture the clock of the CPU ist twice as high as the clock of the Bus, e.g. the CPU-08 of Freescale. Most commands require four bus clock. The same memory is used for data and program. This technologie dues that the lower memory area is a RAM and the upper section is a FLASH. So the data are separated again.
For a description of the performance, an indication of the clock frequency not enough. Thus for example, an Atmel (Harvard) with a 16MHz processor clock (about 12MIPS) is more powerful than a Freescale HSC08 with 40MHz CPU clock (about 8MIPS).
In this context the available commands are also important, e.g. the Freescale controllers have a CISC-CPU and the AVRs a RISC-CPU. Therefore AVR have less commands than the Freescale Controller (slightly more than half - 131 to 250). The available commands must be accounted for when considering the controller performance because the program performance also depends upon it.
Of course, the number of data registers also plays a big role in the performance of the CPU. Atmel has controllers with 32 equivalent registers implemented and an accumulator. The CPU-08 from Freescale has only one accumulator and one index register. The execution of a 16-bit multiplication, or the comparison of two 16 bit figures is concluded faster with multiple registries than using an accumulator. Each of the two CPUs can process only 8-bit wide numbers and must therefore divide such activities. While Atmel preserves data directly in four of the 32 registers, the CPU-08 Freescale must first load the four 8-bit numbers from memory into the accumulator and and in between these must be written back to the memory or pushed onto the stack. The manner in which such operations are carried out naturally depends upon the compiler or programmer (when programming in takes place directly in the assembler).