Probleme for MSCAN

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

Probleme for MSCAN

Jump to solution
1,163 Views
DEMO9S12XEP100
Contributor II

Hi,

I am a new user for freescale developpement, i have a kit DEMO9S12XEP100 and i want to send a frame by my borad

So i write this code in code warrior IDE version 5.9.0 


void main(void) {
  MCU_init(); /* call Device Initialization */
 
  CANInit(); /* Initialize MSCAN12 Module */
while(!(CAN0CTL0&0x10)); /* Wait for Synchronization */
CAN0RFLG = 0xC3;
CAN0RIER = 0x01;


  for(;:smileywink: {
 
  CAN0TBSEL = CAN0TFLG;
 
  CAN0TXIDR0 = 0x20;
  CAN0TXIDR1 = 0x00;
  CAN0TXIDR2 = 0x00;
  CAN0TXIDR3 = 0x00;
 
  CAN0TXDSR0 = 0x0F;
  CAN0TXDSR1 = 0x12;
  CAN0TXDSR2 = 0x13;
  CAN0TXDSR3 = 0x14;
  CAN0TXDSR4 = 0x15;
  CAN0TXDSR5 = 0x16;
  CAN0TXDSR6 = 0x17;
  CAN0TXDSR7 = 0x18;
  CAN0TXDLR= 0x08;
  CAN0TXTBPR=0x00;
 
  /* schedule transmit buffer for transmission */
  CAN0TFLG =CAN0TBSEL;
 
  }
 
}

   
void CANInit(void) {
CAN0CTL0 = 0x01;   /* Enter initialisation Mode*/
while (!(CAN0CTL1&0x01)){};  /* attente d'initialisation */
CAN0CTL1= 0x80;
CAN0BTR0= 0xC0;
CAN0BTR1= 0x3A;
CAN0IDAC= 0x10;
CAN0IDAR0= 0xFF;
CAN0IDMR0= 0xFF;
CAN0IDAR1= 0xFF;
CAN0IDMR1= 0xFF;
CAN0IDAR2= 0xFF;
CAN0IDMR2= 0xFF;
CAN0IDAR3= 0xFF;
CAN0IDMR3= 0xFF;

CAN0CTL0 = 0x00; /* Exit Initialization Mode Request */
while ((CAN0CTL1&0x01) != 0){};

}

my transeiver is TJA 1041 high speed and its conected with port S (STB and EN ) wich i configured at output and  "1".

for the acknowledge, i use the CanAlyser from vector.

and when i run i obserevd in my trace in CanAlyser the erro frame.

I do not wehre is the probleme?

Thank you for my help if you are a solution for me ?

Labels (1)
0 Kudos
Reply
1 Solution
698 Views
DEMO9S12XEP100
Contributor II

Yes,

you are rignt in my program there is an error about my configuration timing

i tested and it s good about 125Kbit and i have a frame in my trace with Canalyser which its configured also at 125kbits (good)

the eroor is CAN0BTR0= 0xC1; and not 0xC0.

its necessary to configured the port ao TJA 1041T inpaut EN an STB to "1" 

I will buy a oscillater with 16Mhz to make 500 Kbits/s

 

View solution in original post

0 Kudos
Reply
2 Replies
698 Views
helh_girl
Contributor I

pay attention to your BaudRata. May be your baudrate in the kit is not the same with the  analyser

0 Kudos
Reply
699 Views
DEMO9S12XEP100
Contributor II

Yes,

you are rignt in my program there is an error about my configuration timing

i tested and it s good about 125Kbit and i have a frame in my trace with Canalyser which its configured also at 125kbits (good)

the eroor is CAN0BTR0= 0xC1; and not 0xC0.

its necessary to configured the port ao TJA 1041T inpaut EN an STB to "1" 

I will buy a oscillater with 16Mhz to make 500 Kbits/s

 

0 Kudos
Reply