Introduction to Programming - Louisiana Space Consortium

Download Report

Transcript Introduction to Programming - Louisiana Space Consortium

Digital I/O Connecting to the Outside World

Programming Unit, Lecture 4

LSU 10/26/04 Digital I/O 1

Digital I/O is an essential requirement for most micro-controller applications.

•Digital I/O: input/output of digital “on-off” bit or group of bits from the CPU to outside world.

•User interface controls. Configuration option switches. Activate indicators such as lamps or LEDs, sound alerts or alarms, control motors, solenoids, or valves. •Read or monitor the state of external switches or sensors.

•Digital communication with other external IC’s or devices.

LSU 10/26/04 Digital I/O 2

•BASIC Stamp has 16 I/O pins.

•Labeled P0 thru P15. Referenced as

pin n

in software, where n can be 0 to 15.

•Bi-directional, can be defined in software as inputs or outputs with the INPUT and OUTPUT instructions.

LSU 10/26/04 Digital I/O 3

•For example,

INPUT pin5

1 defines

logical

pin5 (or P5) as an output pin. Note that P5 corresponds to

physical

pin 10 on the actual BASIC Stamp IC. Be sure not confuse logical pins with physical pins.

LSU 10/26/04 Digital I/O 4

Digital I/O pins can be used for connection to external circuits or devices but care must be exercised to avoid damaging or destroying the BASIC Stamp IC. Observe Electrostatic Discharge precautions, particularly when the BASIC Stamp is not installed on a circuit board or the I/O pins are unconnected (“floating”).

Never connect the pins to voltages outside the range of 0 to 5 volts. Observe polarities!

LSU 10/26/04 Digital I/O 5

Pull Up and Pull Down Resistors

•BASIC Stamp I/O pins defined as inputs have high-impedance. Pins can be in an unpredictable HIGH or LOW state when charged are discharged by leakage paths on the printed circuit board.

•Many misbehaving CMOS circuits or micro-controller programs can be traced to unconnected input pins.

•All inputs should be properly terminated with a high value resistor to either VCC (a pull up) or GND (pull down). Termination to VCC with a pull up resistor is usually the preferred method. LSU 10/26/04 Digital I/O 6

Pull Up and Pull Down Resistors

The resistance value for pullup resistors is not usually critical. 10k ohms is common but can be from 1k to 100k ohms.

With VCC=5V and a pullup resistor of 10k, the maximum current is 500 microamperes or 0.5 ma.

BalloonSat

has 10k pullup resistors installed (10-pin SIP).

LSU 10/26/04 Digital I/O 7

Digital Output

•Set the I/O direction for output with the

OUTPUT pin

instruction.

•A pin configured as an output can be set to a logical high or low state with the

HIGH pin

or

LOW pin

instructions.

•A logical LOW is nominally 0 volts.

–This state is also called

L

,

0

,

off

,

reset

or

clear

•A logical HIGH is nominally 5 volts.

–This state is also called

H

,

1

,

on

,

set

or

asserted

.

•I/O pins are limited in their current sinking and sourcing ability.

LSU 10/26/04 Digital I/O 8

I/O Pin as a Current Source

• When pin is HIGH, current flows from the pin through the load to GND.

• •When pin is LOW, no potential difference between pin and GND, no current flows.

The current limiting resistor may be needed in some applications.

•The instruction

HIGH pin

would activate the load. •The instruction

LOW pin

turns the load off.

LSU 10/26/04 Digital I/O 9

I/O Pin as a Current Sink

• When pin is LOW, current flows from the +5V power supply through the load to I/O pin.

The current limiting resistor may be needed in some applications.

LSU 10/26/04 • When pin is HIGH, no potential difference between pin and +5V, no current flows.

•The instruction

LOW pin

would activate the load. •The instruction

HIGH pin

turns the load off.

Digital I/O 10

Digital Output Applications

Driving an LED with I/O pin as a current source.

Driving an LED with I/O pin as a current sink.

HIGH pin

turns LED on.

LOW pin

turns LED on.

Resistor

R limit

is chosen to limit current to a safe and appropriate value for the BASIC Stamp IC and the LED.

LSU 10/26/04 Digital I/O 11

Digital Output Applications

The BASIC Stamp I/O pins have

limited

current sink and source capability. The pin’s safe voltage limits are

0 to +5V

.

I/O pins can safely sink or source about 20 mA of current.

For applications requiring higher voltage or current, external buffering is required. The BASIC Stamp can be used to drive bipolar transistors, FETs or solid state or electromechanical relays which in turn can control high current or high voltage circuits.

LSU 10/26/04 Digital I/O 12

LSU 10/26/04 Digital I/O 13

Digital Input

•Set the I/O direction for output with the

INPUT pin

instruction.

•A variable assigned to the I/O pin will take on a value reflecting the voltage level at the pin.

This will work but there is a better way!

Digital I/O 14 LSU 10/26/04

Digital I/O: reading a switch

Common Switch Types: •Normally Open (

NO

) •Normally Closed (

NC

) •Toggle •Momentary (Pushbutton) •Rotary Mechanical switches are not perfect and may exhibit contact bounce as the switch is operated. Typically on the time scale of milliseconds. LSU 10/26/04 Digital I/O 15

Input Interfacing of Electronics to BASIC Stamp LSU 10/26/04 Digital I/O 16

Analog I/O with the BASIC Stamp

•The BASIC Stamp’s I/O pins are

digital

and can only be

on

or

off

. The Stamp has no direct ability to read or generate analog voltage levels.

•Additional hardware can be added at a price: $’s and complexity.

–Analog-to-Digital Converters (ADC) –Digital-to-Analog Converters (DAC) •For simple analog input or output applications, the digital I/O pins and the technique of

pulse-width modulation

(PWM) can “fake” analog I/O.

LSU 10/26/04 Digital I/O 17

Analog Output using PWM

•A simple Digital-to-Analog Converter can be built with an RC network and a single instruction on the BASIC Stamp.

•The I/O pin can only be High (+5V) or Low (0 volts) but the RC network will “average” a train pulses to generate an analog voltage.

•The PWM instruction is a built-in command to send pulses to the RC network.

•Format of the command is

PWM pin, Duty, Duration

LSU 10/26/04 Digital I/O 18

Pin

selects the desired I/O pin.

Duty

(duty cycle) specifies the ratio of the high pulse duration to the duration of all pulses in a specified interval of time.

Duration

specifies the duration of the PWM pulse train.

Duty

is on a scale of 0 to 255, corresponding to 0 to 5 volts. If we wanted an analog voltage output of 2.5 volts, duty = 255 x 2.5 / 5 duty = 127.5 which we round to the integer 128.

The required Duration is about 5 time-constants of the RC network, Duration = 5 x 10K x 1 uF Duration = 0.05 sec or 50 milliseconds LSU 10/26/04 Digital I/O 19

•The PWM technique is inexpensive and quick to implement but it suffers from limited resolution and cannot supply any significant current to a load.

•An external buffer using an operational amplifier (Opamp) can be used to improve performance. LSU 10/26/04 Digital I/O 20

Analog Input using PWM

•The BASIC Stamp has no capability for directly reading analog quantities but it does have a specialized instruction

RCTIME

which allows determining a resistance or capacitance value by measuring the time it takes to charge or discharge an RC network.

•The I/O pin is set to +5v, charging capacitor C. The pin is then changed to an input and a counter measures the time to discharge C through R.

•The 220 ohm resistor limits current from the I/O pin to a safe value.

LSU 10/26/04 Digital I/O Circuit for measuring discharge time.

21

Analog Input using PWM

•The syntax for using

RCTIME

is

RCTIME pin, state, variable pin

is the selected I/O pin

state

specifies the state of pin for the measurement 0 sets pin to 0v or logical Low initially (measure charge time) 1 set pin to 5v or logical High initially (measure discharge time)

variable

is the name of a variable into which the counter is stored

See the PBASIC Help file for additional details.

LSU 10/26/04 Digital I/O 22