Author Topic: WHY the M52235EVB can't sent data!  (Read 8635 times)

Offline tr111

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
WHY the M52235EVB can't sent data!
« on: November 16, 2007, 07:37:52 AM »
#define CAN_INTERFACE 

 case 100000:                                                    //100KHz
        CANCTRL = (((10-1) << 24) | RJW_2 | EXTAL_CLK_SOURCE | PROPSEG_BIT_TIME8 | PHASE_BUF_SEG1_LEN8 | PHASE_BUF_SEG2_LEN8);  // Initialise the CAN controller with the required speed and parameters
        break;

QUEUE_HANDLE CAN_interface_ID = 0;
static void fnConfigCAN_BUS(void)
{
CANTABLE tCANParameters; // table for passing information to driver
tCANParameters.Task_to_wake = OWN_TASK; // wake us on buffer events
tCANParameters.Channel = 0;        // first hardware interface       
 tCANParameters.ulSpeed = 100000;    // 100K speed
tCANParameters.ulTxID = 0x80;       // default ID of destination                           
tCANParameters.ulRxID = (CAN_EXTENDED_ID | 0x00000105);  // our ID                           
tCANParameters.ulRxIDMask = CAN_EXTENDED_MASK;
                                // use all bits for compare
tCANParameters.usMode = 0;      // use normal mode
tCANParameters.ucTxBuffers = 2; // assign two tx buffers for use
tCANParameters.ucRxBuffers = 3; // assign three rx buffers for use

CAN_interface_ID = fnOpen( TYPE_CAN, FOR_I_O, &tCANParameters );


 }
CAN_interface_ID is OK,and CAN_interface_ID =0x09!

static void fnSENDCAN_BUS(void)
{

unsigned char ucTestMessage[] = {1,2,3,4,5,6,7};  // Test message
if (fnWrite(CAN_interface_ID, ucTestMessage, sizeof(ucTestMessage))
                                 != sizeof(ucTestMessage)) {
    // Error. Eg. no transmission buffer free
fnDebugMsg("\n\r SENT ERROR\n\r");
}
}

but the fnSENDCAN_BUS always "SENT ERROR"!why???????


Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3236
    • View Profile
    • uTasker
Re: WHY the M52235EVB can't sent data!
« Reply #1 on: November 16, 2007, 01:24:23 PM »
Hi

Do you have a receiving node available? In order to successfully transmit, the CAN bus needs an active receiver to also receive the message. See also:
http://forums.freescale.com/freescale/board/message?board.id=CFCOMM&message.id=3355&query.id=110261#M3355

It is possible to set the loop back mode for testing so that frames are always sent (CAN_LOOPBACK).

Regards

Mark


Offline tr111

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: WHY the M52235EVB can't sent data!
« Reply #2 on: November 16, 2007, 04:15:21 PM »
thank you?I will try?