AnsweredAssumed Answered

Probleme for MSCAN

Question asked by sakouat chafiq on Mar 2, 2011
Latest reply on Mar 4, 2011 by sakouat chafiq

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 ?

Outcomes