9S08AW16 SCI PROBLEM

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

9S08AW16 SCI PROBLEM

Jump to solution
638 Views
mingjunhua
Contributor I

Hello everyone,

I am new for S08 8bit MCU. Now I am working with the MC9S08AW16.

I want to use SCI module to communcate with other MCUs.

I tried to send and receive the data, but failed.

NOW, I have some problems:

I follow the datasheet step: Read the RDRF bit in SCI1S1 register then write the SCI1D register, but the RDRF bit isn't clear.

SO, I want to ask for some advice or 'C' code to do a Software SCI

Thanks.

Labels (1)
Tags (2)
0 Kudos
1 Solution
371 Views
rocco
Senior Contributor II

Hi Mingjun,

Are you using 9 data-bits or parity? Have you tried reading the SCI Control Register 3?

I had that that same problem on the 9S08BG60 when I enabled parity. Parity used a ninth data-bit, and the SCI then required that I read the SCI Control Register 3, where the ninth bit is stored, before it would clear the receive flag. I didn't care about that bit, since the SCI handled parity, but I had to read it anyway. Here is some code:

        lda     SC1C3           ;read the 9th data but to help clear the interrupt

        lda     SC1DR           ;and then get the real data byte


I found it doesn't matter which order you read the two registers, but the interrupt does not clear until you read the second one.

View solution in original post

0 Kudos
2 Replies
372 Views
rocco
Senior Contributor II

Hi Mingjun,

Are you using 9 data-bits or parity? Have you tried reading the SCI Control Register 3?

I had that that same problem on the 9S08BG60 when I enabled parity. Parity used a ninth data-bit, and the SCI then required that I read the SCI Control Register 3, where the ninth bit is stored, before it would clear the receive flag. I didn't care about that bit, since the SCI handled parity, but I had to read it anyway. Here is some code:

        lda     SC1C3           ;read the 9th data but to help clear the interrupt

        lda     SC1DR           ;and then get the real data byte


I found it doesn't matter which order you read the two registers, but the interrupt does not clear until you read the second one.

0 Kudos
371 Views
mingjunhua
Contributor I

Hi Hotchkiss

Thanks for your help. I'm new in S08 MCUs.

The problem is solved by using your advice.

Thank you.

0 Kudos