SCI in 8 bit modes send the 9th (recessive) bit

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

SCI in 8 bit modes send the 9th (recessive) bit

453 次查看
igorpepelyaev
Contributor II

Hello,

I use S12ZVML uC and I have a stange issue with SCI.

SCI is used for LIN communication together with integrated LIN transceiver.

SCI is configured for 8 bit data Format (SCI0CR1_M = 0)

Communication works OK but with oscilloscope, I see that after every transmitted byte I have an additional recessive bit.

It looks like SCI transmitter always sends 11 bits (start bit, 8 data bits, 1 recessive bit, stop bit).

Does SCI transmitte always sends 11 bit? (Although SCI is configured for 8 data bit operation)

Best regards

Igor

0 项奖励
2 回复数

335 次查看
danielmartynek
NXP TechSupport
NXP TechSupport

Hi,

I have just try that on my side, but the signal looks as expected.

LIN.png

Can you attach your code?

Regards,

Daniel

0 项奖励

335 次查看
igorpepelyaev
Contributor II

Hello Daniel,

Thank you for fast responding.

I have just found out what is the problem.

Our communication is driven by receive Interrupt (This is necessary for LIN communication).

As soon as we have receive Interrupt, byte is loaded in SCI data register.

It seems to be up to one bit time delta between byte is loaded in SCI data register and start bit appears on bus.

I think because of this, in reference manual section 16.4.5.2 "Character Transmittion) is said:

1) Poll the TDRE flag

2) If the TDRE flag is set, write the data to be transmitted to SCIDRH/L

Unfortunately it is not possible for LIN communication (This communication should be driven by receive Interrupt to be able to stop commnication in case of any problems). As a result I have up to 1 bit between bytes.

Regards,

Igor

0 项奖励