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(; {
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 ?
Solved! Go to Solution.
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
pay attention to your BaudRata. May be your baudrate in the kit is not the same with the analyser
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