AnsweredAssumed Answered

LIN init and rx interrupt function

Question asked by Eva He on Jul 20, 2017
Latest reply on Jul 24, 2017 by Daniel Martynek

hello all:

               it's my first time to do LIN communciation, I have questions about LIN INIT configuraiton.(my controller is MC9S12ZVLRM )

1. after I configure my LIN init code like this, software  will crash. here are my LIN init code.

void SCI_Init(void)

{

s_ptrSciReg->SCICR1 = SCICR1_PE_MASK |SCICR1_MSCI;    /*enable parity */  
s_ptrSciReg->SCICR2 = (SCICR2_RIE_MASK | SCICR2_TE_MASK | SCICR2_RE_MASK); 

 

 s_ptrSciReg->SCIBDH = 0x06u      /*bautrate is 19200*/
 s_ptrSciReg->SCIBDL = 0x83u

 

 s_ptrSciReg->SCISR2 = SCISR2_AMAP_MASK;  /*use the alternative register*/


 SCIRegPtr->SCIACR1 = SCIACR1_BKDIE_MASK;   /*BKDIF interrupt requests enabled*/

 SCIRegPtr->SCIACR2 = SCIACR2_BKDFE_MASK;   /*BKDIF interrupt requests enabled*/

}

my software crashed when i configure the LIN Init like above. So how to use the alternative control register ? if i only need  LIN module work as slave node, should I configure alternative control register?

 

2. i modified my above code to this:

void SCI_Init(void)

{

s_ptrSciReg->SCICR1 =SCICR1_M; 

s_ptrSciReg->SCICR2 = (SCICR2_RIE_MASK | SCICR2_TE_MASK | SCICR2_RE_MASK); 

 

 s_ptrSciReg->SCIBDH = 0x06u      /*bautrate is 19200*/
 s_ptrSciReg->SCIBDL = 0x83u

}

then my software didn't crash anymore, but when i use canoe to send out LIN message to my SCU, when the break filed was received, SCI receive states Frame Error Flag bit is true. how to deal with this? i think it's reasonable that the break data should be Error Flag. Am i right?

Outcomes