x - Network and Systems Lab

Download Report

Transcript x - Network and Systems Lab

Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
GPIO on MSP430
 6 ports on MS430F1611
 Port 1
 Port 2
 Port 3
 Port 4
 Port 5
 Port 6
 Each port has 8 pins
 Px.0 ~ Px.7
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Multiplexed
 Port pins are often
multiplexed
 Means it may have more
than one function
 Example: P1.0/TACLK
 It can be P1.0 GPIO
 Or it can be TACLK
 You must select the
function you want
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Select Direction
 Each pin can be configured as input or output
 When set to output
 You can configure it to be
High: 3.3V
 High: voltage is Vcc (Supply voltage)
Low: 0V
 Low: voltage is GND (Ground)
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Input
 When you select a pin as input direction, a
corresponding bit in peripheral register will
 Set to 0 when input voltage is low
 Set to 1 when input voltage is high
High: 3.3V
1
Low: 0V
0
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Interrupts
 Only P1 and P2 are interruptible
 For each pin in P1 and P2, you can enable or
disable its interrupt
 Enable means it will detects interrupt
 Disable means nothing happen when interrupt
occur
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
How to Detect Interrupts
 For GPIO, interrupt is detected when a transition
occur
 Low to high transition:
 High to low transition:
3.3 V
0V
3.3 V
0V
 You must define which one you want to detect
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Interrupt Flag
 When the MCU detects an interrupt
 A corresponding bit in peripheral register will set to
1
 Branch to ISR
 For some interrupt, you must clear the GPIO
interrupt flag in software
 Means you must set the bit to 0
 or the program will re-enter the ISR again
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
GPIO Registers
 Each GPIO port has four registers
 Input: PxIN
 Output: PxOUT
 Direction: PxDIR
 Port Select(function select): PxSEL
 P1 and P2 have three more
 Interrupt flag: PxIFG
 Interrupt edge select: PxIES
 Interrupt enable: PxIE
 Each register is 8-bit long
 x represent the port number
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
How to Select Function
 You want to select this pin as
GPIO(P1.0) function
 The register related to function select
 Port Select(function select): PxSEL
 This is port 1, so the related register
is P1SEL
 From user guide
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
How to Select Function
 P1SEL is 8-bit long
 Each bit corresponding to a pin in the
port
7
P1SEL
x
0
x
P1.6/TA1
P1.7/TA2
x
x
x
P1.4/SMCLK
P1.5/TA0
x
x
P1.2/TA1
P1.3/TA2
x
P1.0/TACLK
P1.1/TA0
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
How to Select Function
7
P1SEL
x
0
x
P1.6/TA1
P1.7/TA2
x
x
x
P1.4/SMCLK
P1.5/TA0
x
x
P1.2/TA1
P1.3/TA2
x
P1.0/TACLK
P1.1/TA0
 You want select P1.0/TACLK as P1.0
 Set the corresponding bit to 0
7
P1SEL
x
0
x
x
x
x
x
 In C: P1SEL = P1SEL & 0xFE;
x
0
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Setting Bits
Hexadecimal
 P1SEL = P1SEL & 0xFE;
 P1SEL &= 0xFE;
 Usually, we use hexadecimal in setting registers
 0xFE = 11111110 (binary number)
 Why P1SEL &= 0xFE;
 Why not P1SEL = 0xFE;
 The other registers are similar
 check user guide
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
GPIO Interrupt
 All P1 pins source a single interrupt vector, and
all P2 pins source a different single interrupt
vector.
 Interrupts generated by P1.0, P1.1, …, P1.7 all go to
same ISR
 How do you know which one generate the
interrupt
 check interrupt flag
 Ex. if(PxIFG & 0x01)
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Hardware
 LEDs
 Switches
 Keypad
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
LEDs
 This is a typical connection
 When P1.1 set to high
 DVcc = VP1.1
 no current flow
DVcc
Vanode Vcathode
 When P1.1 set to low
 VP1.1 = 0
 Current flow through, turn on the LED
 GPIO can use as an On/Off control
R
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Control LEDs
 Look at Taroko schematic
 which pins the LEDs connected to
 These pins should be input direction or output
direction?
 How to set these pins to high (or low)
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Will This Work
R
Vcathode
Vanode
 Maybe, but you shouldn’t do this
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Max Current Source/Sink
 Each pin has a maximum amount of current it can
provide(source) or accept(sink)
 For MSP430


Max source: 6mA
Max sink: 6mA
 Usually it can sink more current than it can source
 You should not use those pin as a power source (or
sink) for any sensor/circuit directly
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Transistors
 One of the fundamental building block of ICs
 Two type: NPN, PNP
 B: Base
 C: Collector
 E: Emitter
 We will talk about NPN transistor
 most commonly used
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Functional Model
 A base current IB flows only when the
voltage VBE across the base-emitter
junction is 0.7V or more
 Ic = hFE × IB (hFE is current gain)
 The collector-emitter resistance RCE is
controlled by the base current IB:
 IB = 0 RCE = infinity transistor off
 IB small RCE reduced transistor partly on
 IB increased RCE = 0 transistor full on
('saturated')
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Transistor as An On/Off Switch
 Application Circuit 
 Load is turn on when chip
output is high
 Choose a proper transistor and
base resistor RB
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
How To Choose
 Transistor
 Two parameter: Ic and hFE
 Ic(max) must be larger than Iload (Ic)
 Ic = hFE × IB
hFE(min) > 5 x ((Ic) /(maximum output
current from the chip))
 RB
 RB = (Vcc × hFE) / (5 × Ic)
 choose the nearest standard value
resistor
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Switches
A
B
 Operation
 Open: A and B are not connected in normal state
 Close: When you press the button, A and B are
connected
 Typical circuit
 When the switch is open, voltage of
USERINT stay at high
 When the switch is close, voltage of
will be low
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Pull-up Resistor
 R4 is a pull-up resistor
 keep USERINT at high
 What if we don’t have R4
 When it is open, USERINT is still high
 When it is close

Short circuit
USERINT
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Typical Value
 Typical value of pull-up resistor
 10K ohm, 47K ohm, 100K ohm, 1M ohm
 Amount of current flow through when it close
 I = V/R; Vcc = 3.3V, R = 10K ohm
 I = 0.00033A = 330 μA
 330 μA, does it matter
 for some type of switch, it is ok

close time very short
 but not all, eg. reed switch
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Value of Pull-up
 To save power, can we use very large pull-up
resistor?
 ans: No
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Impedance
 Resistance: R = V/I
 relation ship between the magnitude of the voltage
and current
 Impedance: Z = V/I (these are complex number)
 relation ship between the magnitude and phase of
the voltage and current
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Input Impedance
This is a simplified analysis, we
consider impedance as a
resistance. Impedance is more
complex than a simple
resistance
Vcc
R1
Z Ri
Ri
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Resistors in series
 Ri is the input impedance of MSP430 GPIO
pin
 TI didn’t specify its value
 but it should be larger than 10M ohm
 R1 is pull-up resistor
 if R1 is too large – R1 = Ri
 then VMCUpin = Vcc / 2
 it is no longer a high state
Vcc
R1
VMCUpin
Ri
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Debounce Capacitor
 C9 is a debounce capacitor
 Bounces
 It could generate more than one interrupts when
the switch is pressed
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
HW/SW debounce
 Hardware debounce
 Capacitor will charge when the
switch is open, and it will discharge
when the switch is close (pressed)
 Pros: smooth the line
 Cons: increase the response time
 Software debounce
 Delay some time in the ISR
 How long

you have to try out
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Keypad
 This is a 3x4 matrix
keypad
 When you press a
button, a pin in X
and a pin in Y is
connected
 How to interface to
MSP430?
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Today’s Labs
1. Flash a LED on Taroko
2. Toggle a LED when UserInt switch on Taroko
pressed
3. Control on/off of a LED by UserInt switch, control
another by reed switch
4. Connected a 3x4 Keypad to Taroko, flash the LEDs
Red Green Yellow
Flash once
Flash twice
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
JTAG Driver
 C:\Program Files\IAR Systems\Embedded
Workbench Evaluation
4.0\430\drivers\TIUSBFET\WinXP
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
IAR Setting
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
IAR Setting
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw
Network and Systems Laboratory
nslab.ee.ntu.edu.tw