ece 3561 - lecture 1 1 l15 – digital i/o department of electrical and computer engineering the...

20
ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560

Upload: samantha-harmon

Post on 22-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ECE 3561 - Lecture 1 1 L15 – Digital I/O Department of Electrical and Computer Engineering The Ohio State University ECE 2560

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.