You are on page 1of 58

Embedded Microcontroller Systems

More interfacing and examples

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Overview
Performance metrics Synchronization methods I/O Devices and hardware interface issues Microcontroller in control systems Control block diagrams Actuators, plant, sensors Open loop, closed loop control Proportional and integral controllers
EE/CS-152: Microprocessors and Microcontrollers

Prof. Cherrice Traver

Performance Metrics
uC I/O Device

Latency time delay between when I/O device is ready for service and when uC responds.
input device time between when data is ready and when it is actually latched into uC output device time between when device is ready for new data and when it is sent.
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Performance Metrics
uC I/O Device

Latency
Hardware delays in uC subsystems Software delays

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Performance Metrics
uC I/O Device

Throughput maximum data flow (bytes per second) that can be processed from the I/O device.
can be limited by uC or by I/O device can be reported as long term average or short term maximum
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Performance Metrics
uC I/O Device I/O Device

Priority determines the order of service when more than two or more devices request at the same time.
determines if a high-priority device can suspend a lowpriority request that is currently being processed. may want to implement equal priority so that no device monopolizes the uC.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Real time systems


Hard real-time guarantees a maximum latency. Soft real-time system supports priority.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Synchronization Methods
I/O devices can be in one of 3 states
idle disabled or inactive, no I/O occurs busy working on generating an input (input I/O) or accepting an output (output I/O) done ready for a new transaction.

Busy to done transitions cause status flags to become true.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Synchronization Gadfly Loop


Polling loop Gadfly loop Busy-waiting loop software checks status flag in a loop that does not exit until the status flag is set. new data, gadfly loop completes
INPUT DEVICE:
waiting for input - busy new input is ready - done

software reads data, asks for another


Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Synchronization Gadfly Scenarios No Buffering


Input Device: busy uC software:
waiting for new read process input data data

done

busy

done

I/O bound
waiting read data

Input Device:
busy done waiting busy done waiting busy

uC software: process data


Prof. Cherrice Traver

CPU bound
read process data data read process data data
EE/CS-152: Microprocessors and Microcontrollers

Synchronization Gadfly Scenarios Buffering


Input Device:
busy done busy done busy done busy

BUFFER

As long as buffer is large enough, both software and I/O can operate at their maximum rate

process data
uC software:
Prof. Cherrice Traver

read process data data

read process data data

EE/CS-152: Microprocessors and Microcontrollers

Synchronization Blind Cycle


Software waits a fixed amount of time and assumes I/O will complete within the delay. No status flag from I/O device. Used for I/O that has predictable delays.
Input Device: busy
done busy done

uC software: process waiting read process data data data

waiting read data

fixed delay
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Synchronization - Interrupts
Interrupts hardware causes software to execute ISR.
Global data structures used to communicate data between main program and ISR. Timer interrupts used to execute specific functions at regular intervals.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Synchronization - Interrupts
Use interrupts when:
Arrival times of input is variable. There are other things to do in main program. I/O is important (alarm, hardware failure) but infrequent.

Buffering can also be used with interrupts to allow for better throughput. Must not forget that interrupts slow the main program loop!
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Buffering FIFO Queue


Producer (uC or I/O) Put FIFO Get Consumer (uC or I/O)

Data is received (Get) in the same order that it was transmitted (Put) As long as FIFO is not full or empty, both producer and consumer operate at their own rate. Need a way for producer and consumer to know if FIFO is full or empty.
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Synchronization Periodic Polling


Periodic polling uses a clock/timer interrupt to periodically check the I/O status.
Used in cases where interrupts are desirable (there is much to do in the main program) but the I/O device does not support interrupts. Keypad is an example will investigate in the next exercise.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Synchronization - DMA
Direct Memory Access I/O transfers data directly to/from memory.
Requires a DMA controller between memory and I/O device. Used when bandwidth and latency are important parameters. Data transfer only no processing of data.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

DMA
Burst mode DMA a block transferred while the uC is halted
used when uC and DMA rates are similar

Cycle-stealing DMA data is transferred during cycles when the uC is not using the bus.
used when uC rate is faster than I/O DMA Controller uC

addr Memory data


Prof. Cherrice Traver

I/O device

EE/CS-152: Microprocessors and Microcontrollers

Slow I/O Interface


Keypad how slow can we go?

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

I/O Devices and hardware interface issues


Overview: Categories of I/O
Input and Output examples Output actuator examples
DC Motor (analog and digital control) Stepper Motor

Output display example LCD display (parallel and serial)

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

I/O Categories
Input devices
Sensors, User-input

Output devices
Actuators, Displays

Complex I/O devices (printers, faxes, coprocessors, etc) Analog I/O


Voltage levels Current draw Sampling frequency Noise

Digital I/O
- Voltage levels - Synchronization - Throughput - Noise
EE/CS-152: Microprocessors and Microcontrollers

Prof. Cherrice Traver

Input Examples
Sensors
light force sound position orientation proximity tactile temperature pressure humidity speed acceleration displacement

User input
keyboards joysticks mouse keypad switches touchpad dial slider

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Output Examples
Actuators
motors solenoids relays heaters lights piezoelectric materials (buzzers, linear actuator) speakers

Displays
LED displays LCD displays CRT displays indicator lights indicator gauges

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Example DC Motor
Important in LOTS of applications
cameras, drives, elevators, trains, robots

Many types, but all work similarly:


Apply voltage across + and leads, electrical energy is converted to mechanical energy. For some range of voltage, the torque of the motor shaft is proportional to value of voltage.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

DC Motor
Current required by motor depends on how it is loaded. Current is almost always more than the uC can provide. Need an interface circuit between uC and motor.
Prof. Cherrice Traver

Motor current (A)

loaded no load

Applied voltage (volts)

EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors
Digital Outputs
Basic idea is to use a switch of some kind to isolate current in uC from motor current. Motor is an inductor though, so it stores current. Flyback diode used to route current away from switch when switch opens to avoid damage to switch.
Prof. Cherrice Traver

flyback diode External Voltage +

switch open current

motor Control signal from uC

EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors
Digital Outputs
H-Bridge circuit topology that allows bidirectional control of motor.
Each switch controlled by an output of the uC.
motor

+ external voltage -

Switches implemented by relays, solid-state switches, or transistors Diodes omitted for simplicity.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Interfacing Motors
Analog Output
8051 DAC can provide up to 15 mA of current, up to 3.3V voltage. Must provide both voltage and current amplification to drive a DC motor.

used in the upcoming control lab Amplifiers Power MOSFETs Motor driver ICs Relays
EE/CS-152: Microprocessors and Microcontrollers

Prof. Cherrice Traver

Stepper Motors
Inherent digital interface Can easily control both position and velocity Used in disk drives, printers, etc. Small, fixed rotation per change in control signals
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Basic Operation
Simplified stepper motor
phase 2 + + phase 1 -

5 teeth 360 5 = 72 moves 72 per step Changing polarity of stator magnets causes step.

rotor
electromagnets
Prof. Cherrice Traver

stator

Typical stepper motors have 200 steps per revolution, with 1.8 per step.

EE/CS-152: Microprocessors and Microcontrollers

Stepper Motor Interface


+Vmotor VDD 8051 port pins Inverting buffers
A A B B

4-phase stepper motor

1010 1001 0101 0110 1010


Prof. Cherrice Traver

1.8 1.8 1.8 1.8

EE/CS-152: Microprocessors and Microcontrollers

Output Display Example: LCD Display


LCD Liquid Crystal Display
Lower power than LED display More flexible in size and shape Slower response time

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

LCD Operation
AC voltage required DC voltage damages LCD Control changes reflectivity of the liquid crystal material. Actual light energy supplied by room light or back light. front plane
CMOS
back plane control

60 Hz Oscillator

liquid crystal material


Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

LCD Interfacing
Simple parallel interface similar to LED:
VDD 8051
7-segment LCD Driver/Decoder
Separate Front Planes a b c d e f g

port pins
60 Hz Oscillator
Prof. Cherrice Traver

A B C D

Common Back Plane

EE/CS-152: Microprocessors and Microcontrollers

LCD Interfacing
Serial driver interface
data in

clock

MC145000 LCD Driver 48 bit shift register 48 bit latch register


BP1 BP2 BP3 BP4 FP1 FP2 FP3 FP4 FP5 FP6 FP7 FP8 FP9 FP10 FP11 FP12

data out

48 segment LCD display

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Using Microcontrollers for Control


Overview
Open-loop control systems Simple closed-loop control systems Closed-loop position control PID controllers

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Some Terminology
Control variables properties we want to control (position, velocity, temperature, etc) Control commands output to actuators Driving forces the actuator forces that cause the control variables to change (heat, force, etc) Physical plant the thing being controlled

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Systems


No feedback path from the plant Note that these are all a function of time
Control commands U(t)

Desired control variables X*(t)

uC

Actuators

Real Driving control Forces variables V(t) Physical X(t)

Plant

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Example


Stepper motor
Desired control variables X*(t) desired shaft position specified in program
Prof. Cherrice Traver

Control commands U(t)

uC

Actuators

Real Driving control Forces variables V(t) Physical X(t)

Plant

Inverting driving buffers

uC

stepper motor

shaft position

EE/CS-152: Microprocessors and Microcontrollers

Open-loop Control Example


Traffic light controller
Inverting driving buffers

uC

desired light pattern in software


Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control
Feedback from plant to controller
Real Driving control Forces variables V(t) Physical X(t)

Desired control variables X*(t)

Control commands U(t)

uC

Actuators

Plant

Sensor

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control Bang-bang control


Bang-bang control output can only turn something ON or OFF. No variable control. Requires a deadband or hysteresis which defines a range of acceptable values for output otherwise the control system components can wear out from too many switching cycles. (Relays, for example, have a limited lifetime). Works well with physical plant with a slow response time.
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control Systems


Bang-bang control temperature control example.
Desired temperature, Tlow < T < Thigh

plant
Heater

Flowchart of control algorithm


estimate T

uC
T > Thigh

T
Leave

T < Tlow

Temperature sensor

Turn off

Turn on

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Position Control


Incremental control adds or subtracts a small constant from the output control command, U(t), in response to X(t) sensed.
Desired control variables X*t Control commands U(t)

uC
+1 or -1

Actuators

Real Driving control Forces variables V(t) Physical X(t)

Plant

Sensor

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Incremental Control
Rate of sampling is very important
If sampling rate is too fast, actuators are saturated and a bang-bang system results. If sampling rate is too slow, then controller will not keep up with plant.

Rule of thumb for rate: control execution rate is 10x the step response of the plant. Must check for underflow and overflow after increment or decrement.
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Closed-loop Control PID Controller


Faster and more accurate than previous systems. Based on linear control theory. Three components sometimes fewer are used.
Proportional output is linearly related to error signal.
Integral output is related to integral of the error signal. Derivative output is related to derivative of the error.
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller
To understand, must transform parts of control diagram into discrete time domain. Very important to have periodic sampling and processing. In the figure below, n is the sample number
Real control variables x(t) Physical

Desired output + x*

e(n)

uC
PID controller

u(n)

Actuator

p(t)

x(n)

Plant

Sensor
error signal: e(n) = x*(n) - x(n)
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller
u(t) = P(t) + I(t) + D(t)
Proportional output is proportional to error input Continuous time: P(t) = Kp * E(t) Discrete time: P(n) = Kp * E(n)

Desired output + x*

e(n)

uC
PID controller

u(n)

Actuator

p(t)

x(n)

Physical Plant

Actual Output x(t)

Sensor
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller
u(t) = P(t) + I(t) + D(t)
Integral output is proportional to integral of error signal Continuous time: I(t) = Ki E(t) dt Discrete time: I(n) = Ki E(n) t = Ki t E(n) e(t) t I(t) t
Prof. Cherrice Traver

I(n)

Ki large
n

I(n)
t

I(n)
1 2 3 4 5

Ki small

n t is sampling period
EE/CS-152: Microprocessors and Microcontrollers

Equation for Integral Component


Discrete time: I(n) = Ki t E(n)
integral += errorsig; //integral = integral + errorsig //integral is sum of errorsignals //integral includes: M_MEAS samples of error //multiplied by GAIN_PRECISION ... output = Kp*errorsig / M_MEAS/GAIN_PRECISION + Ki * integral / M_MEAS / SAMPLERATE /GAIN_PRECISION

= 1/t
Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

PID Controller
u(t) = P(t) + I(t) + D(t)
Derivative output is proportional to derivative of error signal dE Continuous: D(t) = Kd* dt Discrete: D(n) = Kd * E(n) E(n-1) t t is sampling period

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

PI Controller for Position Control


(we will not use the derivative term, which can cause instability)
Desired position 1* (potentiometer) Actual position 2(t)

DC Servo p(t) PI Amplifier Motor 2(n) ub(n) controller


uf(n) potentiometer

uC

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

PI Controller Hardware Setup


8051 Microcontroller
setpoint potentiometer -15 to +15V

output potentiometer -15 to +15V

Input voltage conversion interface

ADC0.0
0 - 2.45V

multiplexor

ADC0
DAC0 DAC0
0 - 2.45V

ADC0.1
0 - 2.45V

DAC1

DAC1
0 - 2.45V

Output voltage conversion to SA1SOD Input 2 interface

to SA1SOD Input 1

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Circuit Schematics for Interface Circuits


Input voltage conversion interface
Output voltage conversion interface

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

PI Control Algorithm
Controller must execute the following tasks:
Sample inputs Compute error value Compute integral value Compute output signal from error value, integral value and preset Kp and Ki. Send computed output signals to amplifier

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Controller Performance Metrics


Stability a requirement Response time how fast the output responds to the input. Steady state error how much the output differs from the input after it has settled. For position controller DEADBAND is a measure of the steady state error.

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers

Total DeadBand Measurements


input position
1

output position
2

DB (1) = 1- 2

repeat for a negative angle, - 1

DB (-1) = 2- 1

TDB(1) = |DB(1)| + | DB(-1)|


Prof. Cherrice Traver EE/CS-152: Microprocessors and Microcontrollers

Control your position!


Prelab software only

Prof. Cherrice Traver

EE/CS-152: Microprocessors and Microcontrollers