Interfacing to Microprocessors
Chapter 12
introduction
• What constitutes a “controller” will vary from
application to application.
• It may be no more than an amplifier or a switch.
• It may be a complex system that may include
computers and other types of processors such as
data acquisition and signal processors.
• Most of the time, it is a microprocessors.
• We shall therefore focus the discussion here on
microprocessors.
introduction
• Focus on microprocessors as general purpose,
flexible and reconfigurable controllers and the
ways sensors and actuator relate to these.
• Microprocessors are often called microcontrollers
• What is a microprocessor? What is the different
between a microprocessor and a computer or a
microcomputer and how a distinguishing set of
features is arrived at are all difficult and subjective
issues. What is a microprocessor to one is a full
fledged computer to another
The microprocessor
• A microprocessor is a stand alone, self contained
single chip microcomputer.
• It must have as a minimum:
– a central processing unit (CPU)
– nonvolatile and program memory
– input and output capabilities.
• A structure that has these can be programmed in
some convenient programming language
• can interact with the outside world through the
input/output ports.
The microprocessor
• Other important requirements:
• must be relatively simple
• reasonably small
• necessarily limited in most of its features – memory,
processing power and speed, addressing range and, of
course in number of I/O devices it can interact with.
• The designer must have access to all features of the
microprocessor – bus, memory, registers, all I/O ports,
• In short, Microprocessors are components with
flexible features that the engineer can configure
and program to perform task or a series of tasks.
The microprocessor
• Two limits on the tasks microprocessors can
perform:
• The limitations of the microprocessor itself
• The imagination (or capabilities) of the
designer.
The 8 bit microprocessor
• We will narrow down to 8 bit microprocessors
– these are the most common in sensor/actuator systems
– they are simple and representative of all microprocessor
• 16 and 32 bit microprocessors exist
• There are a number of architectures being used.
• We will emphasize the Harvard architecture
because of its simplicity, flexibility and
popularity.
The architecture
• There are about two dozen manufacturers of
microprocessors
• All based on a few architectures.
• We shall only briefly describe here one
architecture – the Harvard architecture
• used in many microprocessors
• Simple and efficient
• The choice in smaller microprocessor
• Example: Microchip and Atmel microprocessors
The architecture
• Main features:
• Separate busses for program memory and operand
memory.
• Pipelined architecture
• Allows fetching data while another operation
executes.
• Each cycle consists of fetching the (n+1)th
instruction while executing the nth
• Integer arithmetic
• Limited instruction set
The architecture
• Bus widths vary depending on manufacturer and
on the microprocessor size.
• Example: Figure 12.1, bus architecture for a
PIC18F452 from Microchip.
• The instruction is 16bit
• Program address is 15bit wide.
• Data is 8bits and
• Operand address is 12 bits.
• These vary from device to device.
Bus architecture
The architecture
• Example, the smallest microprocessors
available (PIC10FXX) are 6 pin devices
• Summarized in Table 12.1.
• The architecture for this device is shown in
Figure 12.2.
• Here the program address bus is only 9 bits
while the instruction buss is 12 bits.
PIC10FXX microprocessors
PIC10FXX microprocessors
The architecture
• Example: one of the largest, is the
PIC18FXX20
• Has an address bus 21 bits wide.
• The processor and its variants are shown in
Table 12.2
• Its architecture in Figure 12.3.
The architecture
• Architecture supports:
• Direct addressing for the first 8 bits of address
space
• Indirect addressing (variable pointer addressing)
for all memory space.
• Includes a CPU with associated status bits and a
set of special functions registers.
• I/O ports, other peripherals (such as comparators,
A/D converters, PWM modules, etc.)
• Timers, status indications and much more,
The architecture
• All modules available to the user.
• User writable registers are also provided.
• Microprocessors have been designed to respond to
specific needs: common to find modifications that
respond to these needs
• Example: various processors from the same family
may have a different instruction sets
– PIC10FXX has 33 instructions
– PIC18FXX20 has 77 instructions
– ATmega128 (from Atmel) has 133 instructions.
The architecture
• Memory varies from 256 bytes to over 256
kbytes
• Number of peripherals, ports, etc vary from
as few as 4 to over 100
• Physical size: from 6 pin to 100 pins
• Various chip configurations (DIP, surface
mount, dies etc.)
Addressing
• 8 bit microprocessors have word length of 8 bits.
• Integer data from 0 to 255 may be represented
directly.
• To address memory, usually a longer word is
needed.
• Most microprocessor have a 12 bit (4k) 14 (16k)
or 16 bit (64k) memory address but longer address
words are also used.
Speed
• Most microprocessor operate at clock
speeds between 1 and 40 MHz.
• Since often the clock is internally divided,
the instruction cycle is slower than that
• Typical values are up to about 10 MHz
cycle clock or 0.1 µs per instruction
Instruction set
• Microprocessors have a small instruction set –
• sometimes no more than 2-3 dozen simple
instructions.
• Varies from a minimum of about 30 to a
maximum of about 150 instructions.
• These are selected to cover the common
requirements of programming a device
• Allows one to perform almost any task that can be
physically performed within the basic limitations
of the device.
Instruction set
• Instructions include:
– logical instructions (AND, OR, XOR, etc.)
– move and branching instructions (allow one to move
data from and to registers and conditional and
unconditional branching)
– bit instructions (operations on single bits in an operand)
– arithmetic instructions such as add and subtract,
– subroutine calls
– other instructions that have to do with the performance
of the microprocessor such as reset, sleep and others.
• Some are bit oriented, some are byte (register)
oriented, some are literal and control operations
Input and output
• Input and output is defined by the availability of
pins on the package.
• Usually limited to less than about 100 pins (6, 8,
14, 18, 20, 28, 32, 40, 44, 64 and 100 pins are
common).
• Two pins are used to power to the device
• For example, an 18 pin device can have no more
than 14 I/O pins.
• Of these, some may be used for other purposes
such as oscillators or communication
Input and output
• All microprocessor will have a number of pins
available as I/O.
• Example, a 6 pin microprocessor may have as
many as 4 I/O, a 64 pin processor can have in
excess of 48 I/O pins.
• I/O pins are grouped into ports, each addressable
as an 8 bit word (each group has up to 8 I/O pins).
• Different ports may have different properties and
may be able to perform different functions.
Input and output
• I/O pins are tri-state enabling an I/O pin to serve
as input, output or to be disconnected.
• Most I/O are digital but some may be configured
as analog as well.
• I/O pins can supply or sink considerable current –
usually in the range of 20-25 mA.
• This is not sufficient to drive many actuators but it
can drive low power devices directly or indirectly
through switches and amplifiers.
Clock and timers
• Microprocessor must have a timing mechanism
that defines the instruction cycle.
• This is done by an oscillator
• Oscillators may be internal or external.
• Usually and RC oscillator is used for internal
oscillation
• A crystal is the most common way of setting the
frequency externally (this requires either dedicated
pins or the use of two I/O pins).
Clock and timers
• The oscillator frequency is usually divided
internally to define the basic cycle time.
• Microprocessors have internal timers
– under the control of the user
– used for various functions requiring counting/timing
– At least one counter is available
– larger microprocessors can have 4 or more timers
– some are 8 bit timers and some 16 bit timers.
– a watchdog timer is available for the purpose of
resetting the processor should it be “stuck” in an
inoperative mode.
Clock and timers
• Registers
• Used for
• Execution of commands
• Control over the functions of the microprocessor,
• Addressing
• Flagging
• Status indication
Memory
• Modern microprocessors, contain three
types of memory:
• program memory, in which the program is
loaded,
• data memory (RAM),
• EEPROM memory
• Note: EEPROM not available on some very
small microprocessors.
Memory
• Program memory is usually the largest
• From less than 256 bytes to over 256kBytes.
• In most cases, flash memory which means that is
rewritable at will and is nonvolatile (program is
retained until rewritten or erased).
• Data memory (RAM) is usually quite small and
may be a small fraction of the program memory
• Does not retain data upon removal of power.
• EEPROM is nonvolatile rewritable memory used
mostly to write data during execution
Power
• Most microprocessor operate from 1.8V to 6V.
• Some have a more limited range (2.7-5.5V).
• Based on CMOS technology: This means that:
– power consumption is very modest.
– power consumption is frequency dependent.
• The higher the frequency the higher the power
consumed
Power
• Power is also dependent on
• What the processor does
• Which modules are functioning at any given time.
• The user has considerable control over power
consumption through:
– Choice of frequency
– Mode of operation
– Special functions such as interrupt wakeup and sleep.
Other functionalities
• Microprocessor must have certain modules (CPU,
memory and I/O)
• They can have many more modules
• Add functionality and flexibility
• Many microprocessors include
– comparators (for digitization purposes),
– A/D converters,
– Capture and Compare (CCP) modules,
– PWM generators
– Communication interfaces.
Other functionalities
• One or two comparators are provided on many
microprocessors.
• Depending on the microprocessors 8 or 10 bit A/D
converters are provided, usually in multiple
channels (4 to 16).
• PWM channels (up to 8) are common on some
processors.
• Serial interfaces such as UART, SPI, two wire
interface (I2
C), synchronous serial and USB ports
are available
Other functionalities
• Many microprocessors provide multiple
interfaces, all under the user’s control.
• Other functions such as analog amplifiers and
even transceivers are sometimes incorporated
within the chip.
• The I/O used for these functions are either digital
I/O (for communication for example) or analog
I/O (for A/D for example)
Programs and
programmability
• A microprocessor is only useful if it can be
programmed.
• Programming languages and compilers have been
designed specifically for microprocessors.
• The basic method of programming
microprocessors is through the Assembly
programming language
• Can be, and very often is done through use of
higher level languages with C leading.
Programs and
programmability
• These are specific compilers, adapted for a class of
microprocessors.
• They are based on a standard C compiled (such as
ANSI C) and modified to produce executables that
can be loaded onto the microprocessor.
• Most microprocessors can be programmed in
circuit allowing changes to be made, or the
processors to be programmed or reprogrammed
after the circuit has been built.
Programs and
programmability
• Instruction sets for microprocessors are small and
based on the assembly language nomenclature.
• Microprocessors have been designed for integer
operations.
• Programming for control, especially sequential
control is simple and logical.
• Floating point operations and, are either not
practical or difficult and tedious.
• They also tend to require considerable time and
should only be attempted if absolutely necessary.
Programs and
programmability
• There are both integer and floating point
libraries freely available.
• Floating point operations are only practical
on the larger microprocessors because they
require much memory.
Examples of microprocessors
• PIC10FXXX (low level, 6 pin),
• PIC16F62X (midrange, 18 pin),
• PIC18FXX20 (high level, 64 or 80 pin),
• Atmega128 (high level, 64 pin).
• A comparison of these typical processors
will reveal most of the properties and
capabilities of microprocessors.
Interfacing Issues
• Three basic modes:
– 1. Continuous dedicated monitoring of the
sensor by the microprocessor
– 2. Polling the sensor
– 3. Interrupt mode
Continuous mode
• Microprocessor is dedicated for use with
the sensor
• Its output is monitored by the
microprocessor continuously
• The microprocessor reads the sensor’s
output at a given rate
• Output is then used to act
Poling mode
• Sensor operates as if the microprocessor
did not exist.
• Its output is monitored by the
microprocessor
• The microprocessor reads the sensor’s
output at a given rate or intervals -
poling
• Output is then used to act
Interrupt mode
• Microprocessor is in sleep mode
• Outputs of the sensor are not being
processed
• Upon a given event, microprocessor
wakes up through one of its interrupt
options
• The sensor activates the interrupt
Notes:
• Interrupts can be timed
• Interrupts can be issued by sources other
than the sensor
• The microprocessor may be involved in
other functions, separate from the sensor,
such as control of an actuator
• Feedback from actuators may also be
used to perform interrupts
General Interfacing
Requirements
• Microprocessor input interfacing
requirements
• Microprocessor output
requirements
• Errors introduced by
microprocessors
Input interfacing
requirements
• Signal level
• Impedance and matching
• Response, frequency
• Signal conditioning
• Signal scaling
• Isolation
• Loading
Output interfacing
requirements
• Signal levels
• Power levels
• Isolation
Input signal levels
• Basic level: zero to Vdd
– Must scale signals if necessary
• No dual polarity signals
– Must translate/scale as necessary
• Direct reading or A/D
• Can read voltages only
– AC or DC
– Limitations in frequency
Impedance
∀ µP are high input impedance devices
– ~ 1 - 10 MΩ
– Input current - < 1 µA.
• Ideal for direct connection of low
impedance sensors (magnetic,
thermistors, thermoelectric, etc.)
• High impedance sensors (capacitive,
pyroelectric, etc.) must be buffered
– Voltage followers
– FET amplifiers
Response and frequency
• Most sensors are slow devices
– Can be interfaced directly
– No concern for response and frequency
range
• Some sensors are part of oscillators
– Frequencies may be quite high
– Need to worry about proper sampling by the
microprocessor
Response and frequency
• Example: 10 mHz µP, cycle time of 0.4
µs. (most processor divide the clock
frequency by a factor - 4 in this case)
• Any operation such as reading an input
required n cycles, say n=5
• Effective frequency: 0.5 MHz
• Sampling cannot be done at rates
higher than 250 kHz
• Any sensor producing a signal above
this frequency will be read erroneously
Response and frequency
• Some solutions:
– Divide the sensor’s frequency
• Reduces sensitivity
• Must be done externally to the µP
– F-V converter
• Introduces conversion errors
• Must be done externally
– Frequency counter at input
• Use output of the counter as input to mP.
• Expensive
– Faster microprocessors
Input signal conditioning
• Offset
– Primarily for dc levels
– Can be offset up or down
– Usually done to remove the dc level
– Sometimes needed to remove negative
polarity.
– AC signals may sometimes be coupled
through capacitors to eliminate dc levels
Offset
• Example
– Thermistor: 500Ω at 20ºC
– Varies from 100 to 900Ω for temp. between 0
and 100ºC
Offset
• At 500ºC
– V = (12/1500)*500 = 4 V
• At 0ºC
– V = (12/1400)*400 = 3.428 V
• At 100ºC
– V = (12/1900)*900 = 5.684 V
• V varies between 3.428V and 5.684V
– 5.684V is above the 5V operating voltage of
the microprocessor
Offset
• Some solutions
– Remove 3.428V through an inverting amplifier
– Reduce the source voltage from 12V to, say
6V. This will change the range from 1.714V to
2.842V
– Increase the resistor from 1000W to, say,
1500 W. This will reduce the output and will
vary from 2.526V to 4.5V
Offset - other solutions
• For ac signals
– Rectification
• Only appropriate if signal is unipolar
– Bi-polar signals produce negative signals
• Cannot be used with microprocessors
Offset - other solutions
• Bridge connection
– Battery must be floating
– Output: 0V at 0ºC to 2.3V at 100ºC.
– Offset of arbitrary value can be added
• Done by decreasing the value of lower-left resistor
• 1V offset with 285.7Ω resistor
Scaling
• By amplification
– Operational amplifiers
• By attenuation
– Operational amplifiers
– Resistance dividers
– Transformers (for ac)
• Amplifiers are preferrable
• Dividers introduce errors
• Transformers are noisy and big
Isolation
• Two basic methods
– Transformers
– Optical isolation
Loading
• Microprocessors load the sensor
• Not an issue with low impedance sensors
• Must be buffered for high impedance
sensors
• Solution: voltage followers with FET input
stages
• An error due to loading should be taken into
account
Output Interface
• Most microprocessors:
– 1.8 to 6V
– 20 to 25 mA per output pin
– Can power small loads directly (LEDs, small
relays)
– Protection diodes on all outputs
Output Interface
• Large loads:
– Must add circuitry to boost current, power
– MOSFETS are ideal for this purpose
– Inductive loads: must add protection against
large spikes
– Often necessary to isolate output
– Very often necessary to translate voltages for
output
Output pins
• MOSFETS:
– Driven
Output pins connection of
loads
• Sourcing current
• Sinking current
• The two are somewhat different:
Errors and resolution
• Errors introduced by the
microprocessor:
– Due to resolution of A/D, D/A
– Sampling errors
• These come in addition to any errors
in the sensor/actuator
Resolution
• Digital systems have an inherent
resolution:
• LSB - least significant bit
– Any value smaller than the LSB cannot
be represented
– This constitutes an error
– LSB is inherent in any module as well as
in the CPU itself
Resolution of modules
• A/D - n bits resolution, meaning:
a 10 bit A/D, digitizing a 5V input has a resolution
of:
5V/1024 = 4.88 mV
• The A/D can resolve down to 4.88 mV
• Can represent data in increments of 4.88 mV
• (a 14 bit A/D resolves down to 0.3 mV)
• For a 1V span on a sensor, this is approximately
0.5% error
Resolution of modules
• PWM (Pulse Width Modulator)
• Given a clock frequency fosc, the PWM resolution
is:
PWM res . =
log ( f osc / f
PWM
)
log (2)
CPU errors
• Most microprocessors are 8 bit
microprocessors
• Integer arithmetics
• Largest value represented: 256
• Roundoff errors due to this representation
• Special math subroutines have been
developed to minimize these errors
(otherwise they would be unacceptably
high)
Sampling errors
• All inputs and outputs on a microprocessor
are sampled. That is:
– Inputs are only read at intervals
– Outputs are only updated at intervals
– Intervals depend on the frequency of the clock, operation
to be executed and on the software that executes it
– Sampling may not even be constant during operation
because of the need to perform different tasks at different
times
– Errors are due to changes in input/output between
sampling to which the microprocessor is oblivious
– Errors are not fixed - depend among other things on how
well the program is written

Chapter12

  • 1.
  • 2.
    introduction • What constitutesa “controller” will vary from application to application. • It may be no more than an amplifier or a switch. • It may be a complex system that may include computers and other types of processors such as data acquisition and signal processors. • Most of the time, it is a microprocessors. • We shall therefore focus the discussion here on microprocessors.
  • 3.
    introduction • Focus onmicroprocessors as general purpose, flexible and reconfigurable controllers and the ways sensors and actuator relate to these. • Microprocessors are often called microcontrollers • What is a microprocessor? What is the different between a microprocessor and a computer or a microcomputer and how a distinguishing set of features is arrived at are all difficult and subjective issues. What is a microprocessor to one is a full fledged computer to another
  • 4.
    The microprocessor • Amicroprocessor is a stand alone, self contained single chip microcomputer. • It must have as a minimum: – a central processing unit (CPU) – nonvolatile and program memory – input and output capabilities. • A structure that has these can be programmed in some convenient programming language • can interact with the outside world through the input/output ports.
  • 5.
    The microprocessor • Otherimportant requirements: • must be relatively simple • reasonably small • necessarily limited in most of its features – memory, processing power and speed, addressing range and, of course in number of I/O devices it can interact with. • The designer must have access to all features of the microprocessor – bus, memory, registers, all I/O ports, • In short, Microprocessors are components with flexible features that the engineer can configure and program to perform task or a series of tasks.
  • 6.
    The microprocessor • Twolimits on the tasks microprocessors can perform: • The limitations of the microprocessor itself • The imagination (or capabilities) of the designer.
  • 7.
    The 8 bitmicroprocessor • We will narrow down to 8 bit microprocessors – these are the most common in sensor/actuator systems – they are simple and representative of all microprocessor • 16 and 32 bit microprocessors exist • There are a number of architectures being used. • We will emphasize the Harvard architecture because of its simplicity, flexibility and popularity.
  • 8.
    The architecture • Thereare about two dozen manufacturers of microprocessors • All based on a few architectures. • We shall only briefly describe here one architecture – the Harvard architecture • used in many microprocessors • Simple and efficient • The choice in smaller microprocessor • Example: Microchip and Atmel microprocessors
  • 9.
    The architecture • Mainfeatures: • Separate busses for program memory and operand memory. • Pipelined architecture • Allows fetching data while another operation executes. • Each cycle consists of fetching the (n+1)th instruction while executing the nth • Integer arithmetic • Limited instruction set
  • 10.
    The architecture • Buswidths vary depending on manufacturer and on the microprocessor size. • Example: Figure 12.1, bus architecture for a PIC18F452 from Microchip. • The instruction is 16bit • Program address is 15bit wide. • Data is 8bits and • Operand address is 12 bits. • These vary from device to device.
  • 11.
  • 12.
    The architecture • Example,the smallest microprocessors available (PIC10FXX) are 6 pin devices • Summarized in Table 12.1. • The architecture for this device is shown in Figure 12.2. • Here the program address bus is only 9 bits while the instruction buss is 12 bits.
  • 13.
  • 14.
  • 15.
    The architecture • Example:one of the largest, is the PIC18FXX20 • Has an address bus 21 bits wide. • The processor and its variants are shown in Table 12.2 • Its architecture in Figure 12.3.
  • 18.
    The architecture • Architecturesupports: • Direct addressing for the first 8 bits of address space • Indirect addressing (variable pointer addressing) for all memory space. • Includes a CPU with associated status bits and a set of special functions registers. • I/O ports, other peripherals (such as comparators, A/D converters, PWM modules, etc.) • Timers, status indications and much more,
  • 19.
    The architecture • Allmodules available to the user. • User writable registers are also provided. • Microprocessors have been designed to respond to specific needs: common to find modifications that respond to these needs • Example: various processors from the same family may have a different instruction sets – PIC10FXX has 33 instructions – PIC18FXX20 has 77 instructions – ATmega128 (from Atmel) has 133 instructions.
  • 20.
    The architecture • Memoryvaries from 256 bytes to over 256 kbytes • Number of peripherals, ports, etc vary from as few as 4 to over 100 • Physical size: from 6 pin to 100 pins • Various chip configurations (DIP, surface mount, dies etc.)
  • 21.
    Addressing • 8 bitmicroprocessors have word length of 8 bits. • Integer data from 0 to 255 may be represented directly. • To address memory, usually a longer word is needed. • Most microprocessor have a 12 bit (4k) 14 (16k) or 16 bit (64k) memory address but longer address words are also used.
  • 22.
    Speed • Most microprocessoroperate at clock speeds between 1 and 40 MHz. • Since often the clock is internally divided, the instruction cycle is slower than that • Typical values are up to about 10 MHz cycle clock or 0.1 µs per instruction
  • 23.
    Instruction set • Microprocessorshave a small instruction set – • sometimes no more than 2-3 dozen simple instructions. • Varies from a minimum of about 30 to a maximum of about 150 instructions. • These are selected to cover the common requirements of programming a device • Allows one to perform almost any task that can be physically performed within the basic limitations of the device.
  • 24.
    Instruction set • Instructionsinclude: – logical instructions (AND, OR, XOR, etc.) – move and branching instructions (allow one to move data from and to registers and conditional and unconditional branching) – bit instructions (operations on single bits in an operand) – arithmetic instructions such as add and subtract, – subroutine calls – other instructions that have to do with the performance of the microprocessor such as reset, sleep and others. • Some are bit oriented, some are byte (register) oriented, some are literal and control operations
  • 25.
    Input and output •Input and output is defined by the availability of pins on the package. • Usually limited to less than about 100 pins (6, 8, 14, 18, 20, 28, 32, 40, 44, 64 and 100 pins are common). • Two pins are used to power to the device • For example, an 18 pin device can have no more than 14 I/O pins. • Of these, some may be used for other purposes such as oscillators or communication
  • 26.
    Input and output •All microprocessor will have a number of pins available as I/O. • Example, a 6 pin microprocessor may have as many as 4 I/O, a 64 pin processor can have in excess of 48 I/O pins. • I/O pins are grouped into ports, each addressable as an 8 bit word (each group has up to 8 I/O pins). • Different ports may have different properties and may be able to perform different functions.
  • 27.
    Input and output •I/O pins are tri-state enabling an I/O pin to serve as input, output or to be disconnected. • Most I/O are digital but some may be configured as analog as well. • I/O pins can supply or sink considerable current – usually in the range of 20-25 mA. • This is not sufficient to drive many actuators but it can drive low power devices directly or indirectly through switches and amplifiers.
  • 28.
    Clock and timers •Microprocessor must have a timing mechanism that defines the instruction cycle. • This is done by an oscillator • Oscillators may be internal or external. • Usually and RC oscillator is used for internal oscillation • A crystal is the most common way of setting the frequency externally (this requires either dedicated pins or the use of two I/O pins).
  • 29.
    Clock and timers •The oscillator frequency is usually divided internally to define the basic cycle time. • Microprocessors have internal timers – under the control of the user – used for various functions requiring counting/timing – At least one counter is available – larger microprocessors can have 4 or more timers – some are 8 bit timers and some 16 bit timers. – a watchdog timer is available for the purpose of resetting the processor should it be “stuck” in an inoperative mode.
  • 30.
    Clock and timers •Registers • Used for • Execution of commands • Control over the functions of the microprocessor, • Addressing • Flagging • Status indication
  • 31.
    Memory • Modern microprocessors,contain three types of memory: • program memory, in which the program is loaded, • data memory (RAM), • EEPROM memory • Note: EEPROM not available on some very small microprocessors.
  • 32.
    Memory • Program memoryis usually the largest • From less than 256 bytes to over 256kBytes. • In most cases, flash memory which means that is rewritable at will and is nonvolatile (program is retained until rewritten or erased). • Data memory (RAM) is usually quite small and may be a small fraction of the program memory • Does not retain data upon removal of power. • EEPROM is nonvolatile rewritable memory used mostly to write data during execution
  • 33.
    Power • Most microprocessoroperate from 1.8V to 6V. • Some have a more limited range (2.7-5.5V). • Based on CMOS technology: This means that: – power consumption is very modest. – power consumption is frequency dependent. • The higher the frequency the higher the power consumed
  • 34.
    Power • Power isalso dependent on • What the processor does • Which modules are functioning at any given time. • The user has considerable control over power consumption through: – Choice of frequency – Mode of operation – Special functions such as interrupt wakeup and sleep.
  • 35.
    Other functionalities • Microprocessormust have certain modules (CPU, memory and I/O) • They can have many more modules • Add functionality and flexibility • Many microprocessors include – comparators (for digitization purposes), – A/D converters, – Capture and Compare (CCP) modules, – PWM generators – Communication interfaces.
  • 36.
    Other functionalities • Oneor two comparators are provided on many microprocessors. • Depending on the microprocessors 8 or 10 bit A/D converters are provided, usually in multiple channels (4 to 16). • PWM channels (up to 8) are common on some processors. • Serial interfaces such as UART, SPI, two wire interface (I2 C), synchronous serial and USB ports are available
  • 37.
    Other functionalities • Manymicroprocessors provide multiple interfaces, all under the user’s control. • Other functions such as analog amplifiers and even transceivers are sometimes incorporated within the chip. • The I/O used for these functions are either digital I/O (for communication for example) or analog I/O (for A/D for example)
  • 38.
    Programs and programmability • Amicroprocessor is only useful if it can be programmed. • Programming languages and compilers have been designed specifically for microprocessors. • The basic method of programming microprocessors is through the Assembly programming language • Can be, and very often is done through use of higher level languages with C leading.
  • 39.
    Programs and programmability • Theseare specific compilers, adapted for a class of microprocessors. • They are based on a standard C compiled (such as ANSI C) and modified to produce executables that can be loaded onto the microprocessor. • Most microprocessors can be programmed in circuit allowing changes to be made, or the processors to be programmed or reprogrammed after the circuit has been built.
  • 40.
    Programs and programmability • Instructionsets for microprocessors are small and based on the assembly language nomenclature. • Microprocessors have been designed for integer operations. • Programming for control, especially sequential control is simple and logical. • Floating point operations and, are either not practical or difficult and tedious. • They also tend to require considerable time and should only be attempted if absolutely necessary.
  • 41.
    Programs and programmability • Thereare both integer and floating point libraries freely available. • Floating point operations are only practical on the larger microprocessors because they require much memory.
  • 42.
    Examples of microprocessors •PIC10FXXX (low level, 6 pin), • PIC16F62X (midrange, 18 pin), • PIC18FXX20 (high level, 64 or 80 pin), • Atmega128 (high level, 64 pin). • A comparison of these typical processors will reveal most of the properties and capabilities of microprocessors.
  • 43.
    Interfacing Issues • Threebasic modes: – 1. Continuous dedicated monitoring of the sensor by the microprocessor – 2. Polling the sensor – 3. Interrupt mode
  • 44.
    Continuous mode • Microprocessoris dedicated for use with the sensor • Its output is monitored by the microprocessor continuously • The microprocessor reads the sensor’s output at a given rate • Output is then used to act
  • 45.
    Poling mode • Sensoroperates as if the microprocessor did not exist. • Its output is monitored by the microprocessor • The microprocessor reads the sensor’s output at a given rate or intervals - poling • Output is then used to act
  • 46.
    Interrupt mode • Microprocessoris in sleep mode • Outputs of the sensor are not being processed • Upon a given event, microprocessor wakes up through one of its interrupt options • The sensor activates the interrupt
  • 47.
    Notes: • Interrupts canbe timed • Interrupts can be issued by sources other than the sensor • The microprocessor may be involved in other functions, separate from the sensor, such as control of an actuator • Feedback from actuators may also be used to perform interrupts
  • 48.
    General Interfacing Requirements • Microprocessorinput interfacing requirements • Microprocessor output requirements • Errors introduced by microprocessors
  • 49.
    Input interfacing requirements • Signallevel • Impedance and matching • Response, frequency • Signal conditioning • Signal scaling • Isolation • Loading
  • 50.
    Output interfacing requirements • Signallevels • Power levels • Isolation
  • 51.
    Input signal levels •Basic level: zero to Vdd – Must scale signals if necessary • No dual polarity signals – Must translate/scale as necessary • Direct reading or A/D • Can read voltages only – AC or DC – Limitations in frequency
  • 52.
    Impedance ∀ µP arehigh input impedance devices – ~ 1 - 10 MΩ – Input current - < 1 µA. • Ideal for direct connection of low impedance sensors (magnetic, thermistors, thermoelectric, etc.) • High impedance sensors (capacitive, pyroelectric, etc.) must be buffered – Voltage followers – FET amplifiers
  • 53.
    Response and frequency •Most sensors are slow devices – Can be interfaced directly – No concern for response and frequency range • Some sensors are part of oscillators – Frequencies may be quite high – Need to worry about proper sampling by the microprocessor
  • 54.
    Response and frequency •Example: 10 mHz µP, cycle time of 0.4 µs. (most processor divide the clock frequency by a factor - 4 in this case) • Any operation such as reading an input required n cycles, say n=5 • Effective frequency: 0.5 MHz • Sampling cannot be done at rates higher than 250 kHz • Any sensor producing a signal above this frequency will be read erroneously
  • 55.
    Response and frequency •Some solutions: – Divide the sensor’s frequency • Reduces sensitivity • Must be done externally to the µP – F-V converter • Introduces conversion errors • Must be done externally – Frequency counter at input • Use output of the counter as input to mP. • Expensive – Faster microprocessors
  • 56.
    Input signal conditioning •Offset – Primarily for dc levels – Can be offset up or down – Usually done to remove the dc level – Sometimes needed to remove negative polarity. – AC signals may sometimes be coupled through capacitors to eliminate dc levels
  • 57.
    Offset • Example – Thermistor:500Ω at 20ºC – Varies from 100 to 900Ω for temp. between 0 and 100ºC
  • 58.
    Offset • At 500ºC –V = (12/1500)*500 = 4 V • At 0ºC – V = (12/1400)*400 = 3.428 V • At 100ºC – V = (12/1900)*900 = 5.684 V • V varies between 3.428V and 5.684V – 5.684V is above the 5V operating voltage of the microprocessor
  • 59.
    Offset • Some solutions –Remove 3.428V through an inverting amplifier – Reduce the source voltage from 12V to, say 6V. This will change the range from 1.714V to 2.842V – Increase the resistor from 1000W to, say, 1500 W. This will reduce the output and will vary from 2.526V to 4.5V
  • 60.
    Offset - othersolutions • For ac signals – Rectification • Only appropriate if signal is unipolar – Bi-polar signals produce negative signals • Cannot be used with microprocessors
  • 61.
    Offset - othersolutions • Bridge connection – Battery must be floating – Output: 0V at 0ºC to 2.3V at 100ºC. – Offset of arbitrary value can be added • Done by decreasing the value of lower-left resistor • 1V offset with 285.7Ω resistor
  • 62.
    Scaling • By amplification –Operational amplifiers • By attenuation – Operational amplifiers – Resistance dividers – Transformers (for ac) • Amplifiers are preferrable • Dividers introduce errors • Transformers are noisy and big
  • 63.
    Isolation • Two basicmethods – Transformers – Optical isolation
  • 64.
    Loading • Microprocessors loadthe sensor • Not an issue with low impedance sensors • Must be buffered for high impedance sensors • Solution: voltage followers with FET input stages • An error due to loading should be taken into account
  • 65.
    Output Interface • Mostmicroprocessors: – 1.8 to 6V – 20 to 25 mA per output pin – Can power small loads directly (LEDs, small relays) – Protection diodes on all outputs
  • 66.
    Output Interface • Largeloads: – Must add circuitry to boost current, power – MOSFETS are ideal for this purpose – Inductive loads: must add protection against large spikes – Often necessary to isolate output – Very often necessary to translate voltages for output
  • 67.
  • 68.
    Output pins connectionof loads • Sourcing current • Sinking current • The two are somewhat different:
  • 69.
    Errors and resolution •Errors introduced by the microprocessor: – Due to resolution of A/D, D/A – Sampling errors • These come in addition to any errors in the sensor/actuator
  • 70.
    Resolution • Digital systemshave an inherent resolution: • LSB - least significant bit – Any value smaller than the LSB cannot be represented – This constitutes an error – LSB is inherent in any module as well as in the CPU itself
  • 71.
    Resolution of modules •A/D - n bits resolution, meaning: a 10 bit A/D, digitizing a 5V input has a resolution of: 5V/1024 = 4.88 mV • The A/D can resolve down to 4.88 mV • Can represent data in increments of 4.88 mV • (a 14 bit A/D resolves down to 0.3 mV) • For a 1V span on a sensor, this is approximately 0.5% error
  • 72.
    Resolution of modules •PWM (Pulse Width Modulator) • Given a clock frequency fosc, the PWM resolution is: PWM res . = log ( f osc / f PWM ) log (2)
  • 73.
    CPU errors • Mostmicroprocessors are 8 bit microprocessors • Integer arithmetics • Largest value represented: 256 • Roundoff errors due to this representation • Special math subroutines have been developed to minimize these errors (otherwise they would be unacceptably high)
  • 74.
    Sampling errors • Allinputs and outputs on a microprocessor are sampled. That is: – Inputs are only read at intervals – Outputs are only updated at intervals – Intervals depend on the frequency of the clock, operation to be executed and on the software that executes it – Sampling may not even be constant during operation because of the need to perform different tasks at different times – Errors are due to changes in input/output between sampling to which the microprocessor is oblivious – Errors are not fixed - depend among other things on how well the program is written