Presentation is loading. Please wait.

Presentation is loading. Please wait.

Asynchronous Serial I/O Unit 12 - Part 1. SCI Registers – Channel 0 SCI0BDH – SCI Baud Rate Register High Byte SCI0BDL – SCI Baud Rate Register Low.

Similar presentations


Presentation on theme: "Asynchronous Serial I/O Unit 12 - Part 1. SCI Registers – Channel 0 SCI0BDH – SCI Baud Rate Register High Byte SCI0BDL – SCI Baud Rate Register Low."— Presentation transcript:

1 Asynchronous Serial I/O Unit 12 - Part 1

2

3 SCI Registers – Channel 0 SCI0BDH – SCI Baud Rate Register High Byte SCI0BDL – SCI Baud Rate Register Low Byte SCI0CR1 – SCI Control Register 1 SCI0CR2 – SCI Control Register 2 SCI0SR1 – SCI Status Register 1 SCI0SR2 – SCI Status Register 2 SCI0DRH – SCI Data Register High Byte SCI0DRL – SCI Data Register Low Byte

4 SCI Register Definitions Channel 0 #define SCI0BDH _P(0xC8) #define SCI0BDL _P(0xC9 #define SCI0CR1 _P(0xCA) #define SCI0CR2 _P(0xCB) #define SCI0SR1 _P(0xCC) #define SCI0SR2 _P(0xCD) #define SCI0DRH _P(0xCE) #define SCI0DRL _P(0xCF)

5

6

7 Baud Rate Generation BAUD RATE = 2 MHZ 16 * (BAUD RATE DIVISOR) THEREFORE, SET BAUD RATE DIVISOR = 2MHZ 16 * (DESIRED BAUD RATE)

8 Example – Baud Rate Initialization Let Desired Baud = 9600 Using formula: Baud Rate Divisor = 2000000 16*9600 = 13.0208 (Use integer value of 13) Register Initialization: SCIOBDH= 0 SCIOBDL=13 (Max value of Baud Rate Divisor = 2 13 - 1 = 8192

9 Parity Type 1: Odd 0: Even Parity Enable 0: 9 data bits 1: 8 data bits Select Loop-Back Mode Wake-up Condition Selection

10

11

12

13 Interrupt EnablesTransmitter and Receiver Enables Enter Sleep Mode Send Break Character

14

15

16 Break Character Start Bit = “0” All Data Bits = “0” Parity Bits if present = “0” Stop Bit = “0” 68HC12 keeps line in “0” for additional bit times

17

18

19

20

21

22

23 Example: Initialize SCI Channel 0 /* Baud = 9600 */ int divisor = 125000/9600; // divisor = 13 SCI0BDH = divisor>>8; // SCIOBDH= 0 SCI0BDL = divisor; // SCIOBDL=13 /* Standard Operation M=0 – 8 data bits PE =0 – No Parity PT =0 – Parity type*/ SCI0CR1 = 0x00; /* TE = 1 – Enable Transmitter RE = 1 – Enable Receiver */ SCI0CR2 = 0x0C;

24 Parity Type 1: Odd 0: Even Parity Enable 0: 9 data bits 1: 8 data bits Select Loop-Back Mode Wake-up Condition Selection (repeated slide)

25 Interrupt EnablesTransmitter and Receiver Enables Enter Sleep Mode Send Break Character (repeat slide)

26 Serial I/O Procedures /* Receive a Character */ unsigned char ci(void) {while((SCI0SR1&0x20)==0); return SCI0DRL; } Checking RDEF flag

27 (repeated slide)

28 Serial I/O Procedure /* Transmit a Character */ void co(unsigned char c) {while((SCI0SR1&80)==0); SCI0DRL=c; } Checking TDRE flag


Download ppt "Asynchronous Serial I/O Unit 12 - Part 1. SCI Registers – Channel 0 SCI0BDH – SCI Baud Rate Register High Byte SCI0BDL – SCI Baud Rate Register Low."

Similar presentations


Ads by Google