There is no strict border between microprocessors and microcontrollers because certain chips can access
external code and/or data memory (microprocessor mode) and are equipped with particular peripheral
components.
Some microcontrollers have an internal RC oscillator and do not need an external component. However,
an external quartz or ceramic resonator or RC network is frequently connected to the built-in, active
element of the clock generator.
Clock frequency varies from 32 kHz (extra low power) up to 75 MHz.
Another auxiliary circuit generates the reset signal for an appropriate period after a supply is turned on.
Watchdog circuits generate chip reset when a periodic retriggering signal does not come in time due to
a program problem. There are several modes of consumption reduction activated by program instructions.
Complexity and structure of the interrupt system (total number of sources and their priority level
selection), settings of level/edge sensitivity of external sources and events in internal (i.e., peripheral)
sources, and handling of simultaneous interrupt events appear as some of the most important criteria
of microcontroller taxonomy.
Although 16- and 32-bit microcontrollers are engaged in special, demanding applications (servo-unit
control), most applications employ 8-bit chips. Some microcontrollers can internally operate with a 16-bit
or even 32-bit data only in fixed-point range—microcontrollers are not provided with floating point unit
(FPU). New microcontroller families are built on RISC (Reduced Instruction Set) core executing due to
pipelining one instruction per few clock cycles or even per each cycle
One can find further differences in addressing modes, number of direct accessible registers, and type
of code memory (ranging from 1 to 128 KB) that are important from the view of firmware development.
Flash memory enables quick and even in-system programming (ISP) using 3–5 wires, whereas classical
EPROM makes chips more expensive due to windowed ceramic packaging.
Some microcontrollers have
built-in boot and debug capability to load code from a PC into the flash memory using UART (Universal
Asynchronous Receiver/Transmitter) and RS-232C serial line. OTP (One Time Programmable) EPROMor ROM appear effective for large production series. Data EEPROM (from 64 B to 4 KB) for calibration
constants, parameter tables, status storage, and passwords that can be written by firmware stand beside
the standard SRAM (from 32 B to 4 KB).
The range of peripheral components is very wide.
Every chip has bidirectional I/O (input/output) pins
associated in 8-bit ports, but they often have an alternate function. Certain chips can set an input decision
level (TTL, MOS, or Schmitt trigger) and pull-up or pull-down current sources. Output drivers vary in
open collector or tri-state circuitry and maximal currents.
At least one 8-bit timer/counter (usually provided with a prescaler) counts either external events
(optional pulses from an incremental position sensor) or internal clocks, to measure time intervals, and
periodically generates an interrupt or variable baud rate for serial communication. General purpose 16-bit
counters and appropriate registers form either capture units to store the time of input transients or
compare units that generate output transients as a stepper motor drive status or PWM (pulse widthmodulation) signal.
A real-time counter (RTC) represents a special kind of counter that runs even in
sleep mode. One or two asynchronous and optionally synchronous serial interfaces (UART/USART)
communicate with a master computer while other serial interfaces like SPI, CAN, and I2
C control other
specific chips employed in the device or system.
Almost every microcontroller family has members that are provided with an A/D converter and a
multiplexer of single-ended inputs. Input range is usually unipolar and equal to supply voltage or rarely to
the on-chip voltage reference. The conversion time is given by the successive approximation principle of
ADC, and the effective number of bits (ENOB) usually does not reach the nominal resolution 8, 10, or 12 bits.
There are other special interface circuits, such as field programmable gate array (FPGA), that can be
configured as an arbitrary digital circuit.
Microcontroller firmware is usually programmed in an assembly language or in C language. Many
software tools, including chip simulators, are available on websites of chip manufacturers or third-party
companies free of charge.
A professional integrated development environment and debugging hardware
(in-circuit emulator) is more expensive (thousands of dollars). However, smart use of an inexpensive
ROM simulator in a microprocessor system or a step-by-step development cycle using an ISP programmer
of flash microcontroller can develop fairly complex applications.
No comments:
Post a Comment