ece 3561 - lecture 1 1 l15 – digital i/o department of electrical and computer engineering the...
TRANSCRIPT
![Page 1: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/1.jpg)
ECE 3561 - Lecture 1 1
L15 – Digital I/O
Department of Electrical and Computer EngineeringThe Ohio State University
ECE 2560
![Page 2: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/2.jpg)
Digital I/O on the 430
Digital input and outputThe portsPort setupThe control registers
Using a port
ECE 3561 - Lecture 1 2
![Page 3: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/3.jpg)
The MSP 430
The MSP 430 is a microcontroller intended for use in embedded systems.
As such, it needs to be capable of being connected with various input sensors and generating signal with control outputs.
For a large number of these, digital I/O is appropriate.
ECE 3561 - Lecture 1 3
![Page 4: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/4.jpg)
Digital I/O overview
A MSP430 device may have up to 6 digital I/O ports, P1 through P6.
Each port has 8 I/O pins. Pins are configurable for input or output
direction and each I/O line can be individually read or written to.
Ports P1 and P2 have interrupt capability with the interrupt for each I/O line individually enabled and configured. All P1 lines source a single interrupt vector P2 lines source a single interrupt vector (different
than the vector for P1)
ECE 3561 - Lecture 1 4
![Page 5: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/5.jpg)
Summary of features
Digital I/O features Individually programmable I/OsAny combination of input or output Individually configurable P1 and P2
interrupts Independent input and output registers
ECE 3561 - Lecture 1 5
![Page 6: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/6.jpg)
Digital I/O
Digital I/O is configured with user softwareDone by setting the value in port control
registers. Input register – a bit for each pin - PxIN
Bit = 0 – The input is low Bit = 1 – The input is high
Output register – the value to be output on the pin - PxOUT
Bit = 0 – Set output low Bit = 1 – Set output high
ECE 3561 - Lecture 1 6
![Page 7: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/7.jpg)
The control registers
Direction Register PxDIR This register for a port sets the direction of
each pin of the input/output port Bit = 0 – The port pin is set to input direction Bit = 1 – The port pin is set to output direction
Function Select Register – PxSEL The ports can also be used with other
peripheral devices according to the data sheet of the device. Or it is a simple I/O port.
Bit = 0 – Set function to I/O Bit = 1 – Set peripheral function mode.
ECE 3561 - Lecture 1 7
![Page 8: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/8.jpg)
Interrupt Control Register (cont)
Interrupt Flag Registers P1IFG, P2IFG For ports 1 and 2 these registers record if an
interrupt is present on the appropriate pin. Bit = 0 – No interrupt is pending Bit = 1 – Interrupt is pending
Interrupt Edge Select Register P1IES, P2IES These registers select whether the interrupt occurs
on a rising edge or falling edge. Interrupt Enable P1IE, P2IE
Each P1IE bit enables the associated PxIFG interrupt flag. (1 = enabled, 0 = disabled)
ECE 3561 - Lecture 1 8
![Page 9: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/9.jpg)
Unused Ports
What to do with the pins for unused ports?
Unused I/O pins should be configured as I/O function, output direction and left unconnected on the PC board.
ECE 3561 - Lecture 1 9
![Page 10: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/10.jpg)
Register summary
Port P1 REGISTER Name Address Type Input Register P1IN 020h R Output Register P1OUT 021h R/W Direction Reg P1DIR 022h R/W Interrupt Flag P1IFG 023h R/W Intr Edge Select P1IES 024h R/W Interrupt Enable P1IE 025h R/W Port Select P1SEL 026h R/W Internal Resistor P1REN 027h R/W
ECE 3561 - Lecture 1 10
![Page 11: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/11.jpg)
Register summary
Port P2 REGISTER Name Address Type Input Register P2IN 028h R Output Register P2OUT 029h R/W Direction Reg P2DIR 02Ah R/W Interrupt Flag P2IFG 02Bh R/W Intr Edge Select P2IES 02Ch R/W Interrupt Enable P2IE 02Dh R/W Port Select P2SEL 02Eh R.W
ECE 3561 - Lecture 1 11
![Page 12: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/12.jpg)
Port 3 and 4
Port P3 REGISTER Name Address Type Input Register P3IN 018h R Output Register P3OUT 019h R/W Direction Reg P3DIR 01Ah R/W Port Select P3SEL 01Bh R/W
Port P4 REGISTER Name Address Type Input Register P4IN 01Ch R Output Register P4OUT 01Dh R/W Direction Reg P4DIR 01Eh R/W Port Select P4SEL 01Fh R/W
ECE 3561 - Lecture 1 12
![Page 13: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/13.jpg)
Ports 5 and 6
Port P5 REGISTER Name Address Type Input Register P5IN 030h R Output Register P5OUT 031h R/W Direction Reg P5DIR 032h R/W Port Select P5SEL 033h R/W
Port P6 REGISTER Name Address Type Input Register P6IN 034h R Output Register P6OUT 035h R/W Direction Reg P6DIR 036h R/W Port Select P6SEL 037h R/W
ECE 3561 - Lecture 1 13
![Page 14: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/14.jpg)
EXAMPLE OF use
On the launchpad there are 2 Light Emitting Diodes on the PC board
These are (according to the notation on the board) at P1.0 and P1.6
Let’s turn then on and off
ECE 3561 - Lecture 1 14
![Page 15: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/15.jpg)
The steps
Configure the portPort 1
Configure the data direction register, P1DIR Located at address 022h Set value to 1 for output Desire pins 0 and 6 of the port as output so
value to set is 1xxxxx1x or just set it to all 1s Instruction mov.b #0x0FF,P1DIR Configure the interrupt enables to disable
Mov.b 0x00,P1IE
ECE 3561 - Lecture 1 15
![Page 16: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/16.jpg)
A note on code composer
As this MSP430 does have Port 1 the pneumonic labels such as P1OUT are defined in Code Composer. That is why they are commented out in the sample code.
ECE 3561 - Lecture 1 16
![Page 17: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/17.jpg)
The code
; Set up the port mov.b #0xFF,P1DIR ;set P1 to outputs mov.b #0x00,P1IE ;disable interrupts mov.b #0x00,P1SEL ;all pins are I/O ; move values to the port mov.b #0x00,P1OUT mov.b #0x0F,P1OUT mov.b #0xF0,P1OUT
ECE 3561 - Lecture 1 17
![Page 18: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/18.jpg)
A loop to toggle to output
mov #0xFFFF,R6 ;# times to waittol dec R6 jne tol ;busy wait mov.b P1OUT,R4 inv R4 mov.b R4,P1OUT jmp tol
ECE 3561 - Lecture 1 18
![Page 19: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/19.jpg)
Notes on code
Busy wait : a term applied to techniques to insert a timed wait into a program that performs no useful computation other than to wait for time to elapse or an event to occur.
This toggles the leds based on time.The code to toggle them could be tuned
to take slightly less cycles but that this not desired here.
ECE 3561 - Lecture 1 19
![Page 20: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560](https://reader035.vdocuments.us/reader035/viewer/2022080915/56649d8d5503460f94a74b0b/html5/thumbnails/20.jpg)
ECE 3561 - Lecture 1 20
Summary - Assignment
Try out the codeAdd an inner loop to lengthen the time
for each individual light.
No new assignment.