Other Parts Discussed in Thread: TMS320F28335
I have 2 boards with MCP2515 trancievers and want to connect TMS320F28335 board in CAN network.
I am using MAX3053 as level shifter for DSC.
On this graph - self test (CanH and CanL is terminated by 120 Ohm resistor) of tranciever.
Green line - TMS28335.
Yellow line - MCP 2515.
IMHO Time diagrams looks similar.
This is RX line for TMS28335.
This is TX line (transfered packet) of DSC.
================================
My program is similar with Example_2833xEcanAtoB_Xmit
EcanBtc:
ECanbShadow.CANBTC.bit.TSEG2REG = 3;
ECanbShadow.CANBTC.bit.TSEG1REG = 7;
ECanbShadow.CANBTC.bit.BRPREG = 30;
ECanbShadow.CANBTC.bit.SJWREG = 2;
ECanbShadow.CANBTC.bit.SAM = 1;
Program:
ECanbShadow.CANGAM.all = ECanbRegs.CANGAM.all;
ECanbShadow.CANGAM.bit.AMI = 0; //standart identifier
ECanbRegs.CANGAM.all = ECanbShadow.CANGAM.all;
ECanbShadow.CANMD.all = ECanbRegs.CANMD.all;
ECanbShadow.CANMD.all = 0xFFFF0000; // Configure Mailboxes 0-15 as Tx, 16-31 as Rx
ECanbRegs.CANMD.all = ECanbShadow.CANMD.all;
ECanbMboxes.MBOX15.MSGID.bit.AME = 0;
ECanbMboxes.MBOX15.MSGID.bit.IDE = 0;
ECanbMboxes.MBOX15.MSGID.bit.AAM = 0;
ECanbMboxes.MBOX15.MSGID.bit.STDMSGID = 0xFFFF;
ECanbMboxes.MBOX15.MSGCTRL.bit.DLC = 1; //Message byte counter
ECanbShadow.CANMD.all = ECanbRegs.CANMD.all;
ECanbShadow.CANMD.bit.MD15 = 0; //set MD15a as transieve mailbox
ECanbRegs.CANMD.all = ECanbShadow.CANMD.all;
ECanbShadow.CANME.all = ECanbRegs.CANME.all;
ECanbShadow.CANME.bit.ME15 = 1; //Mailbox (ME15a - enabled)
ECanbRegs.CANME.all = ECanbShadow.CANME.all;
ECanbMboxes.MBOX15.MDL.all = 0xF0F0F0F0; //MBOX15 message
ECanbMboxes.MBOX15.MDH.all = 0xF0F0F0F0;
for(;;) //infinite loop: send message from CANB to CANA
{
ECanbShadow.CANTRS.all = 0;
ECanbShadow.CANTRS.bit.TRS15 = 1; // Set TRS for mailbox under test
ECanbRegs.CANTRS.all = ECanbShadow.CANTRS.all;
do
{
ECanbShadow.CANTA.all = ECanbRegs.CANTA.all;
} while(ECanbShadow.CANTA.bit.TA15 == 1); // Wait for TA5 bit to be set..
ECanbShadow.CANTA.all = 0;
ECanbShadow.CANTA.bit.TA15 = 1; // Clear TA5
ECanbRegs.CANTA.all = ECanbShadow.CANTA.all;
}
==================================================
MCP2515 communicates well.
When I try to send message from DSC to MCP board - ACKE error (CANES register) is occured.
What is the problem?


