Hi,
the board I used is TMS320F28335 Experimenter Kit and I tried to use Ecan module.
I want to send a message from CANTXA and receive it by CANRXA
I already connected theGPIO31 (CANTXA) to GPIO30 (CANRXA) , configured the GPIOs, enable Ecan clock in DSP2833x_Ecan.c
In my main program, Ecana.Mbox15 is used to transmit the message and Ecana.Mbox3 is used to receive the message. the following is my main loop:
//**************************************************************
ECanaMboxes.MBOX15.MSGID.all = 0x15AC0000; // Extended Identifier
ECanaMboxes.MBOX15.MSGCTRL.bit.DLC = 8;
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD15 = 0;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME15 = 1;
ECanaRegs.CANME.all = ECanaShadow.CANME.all;
ECanaMboxes.MBOX15.MDL.all = 0x66666666;
ECanaMboxes.MBOX15.MDH.all = 0x66666666;
ECanaMboxes.MBOX3.MSGID.all = 0x4f780000;
ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;
ECanaShadow.CANMD.bit.MD3 = 1;
ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;
ECanaShadow.CANME.all = ECanaRegs.CANME.all;
ECanaShadow.CANME.bit.ME3 = 1;
ECanaRegs.CANME.all = ECanaShadow.CANME.all;
for(;;)
{
ECanaShadow.CANTRS.all = 0;
ECanaShadow.CANTRS.bit.TRS15 = 1; // Set TRS for mailbox under test
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
do
{
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
} while(ECanaShadow.CANTA.bit.TA15 == 1 ); // Wait for TA5 bit to be set..
ECanaShadow.CANTA.all = 0;
ECanaShadow.CANTA.bit.TA15 = 1; // Clear TA5
ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;
}
//***********************************************************
but I found I can only transmit the signal from Cantxa, for the receive box, there is always on message received.
I check the program and I can't find the problems. So I am thinking do I need add some IC as a transceiver to transmit and receive the message?
can somebody help me to fix me this?
thanks!