lpcware

LPC11C24 Some SDO Entries not working

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by kwerner on Mon Jul 22 02:05:36 MST 2013
Hi,

I am have an LPCXpresso LPC11C24 Board connected via CAN Bus to my PC using an CAN2USb adapter.
I have setup the CANopen interface with an Object Dictionary containing several entries of various types, length, and sizes. Most of them work fine, reading and writing.

But some of them always give the SDO Abort Code "OBJECT DOES NOT EXIST", despite them being defined like the working ones.

<!--break-->

For example :

CAN_ODENTRY OD [] =
{
...
{ 0x2004, 0x00,OD_EXP_RW | 4,(uint8_t *)&A3984_motion },
{ 0x2004, 0x01,OD_EXP_RO | 4,(uint8_t *)&A3984_steps },
{ 0x2004, 0x02,OD_EXP_RW | 4,(uint8_t *)&A3984_speed },
{ 0x2004, 0x03,OD_EXP_RW | 4,(uint8_t *)&A3984_accel },
{ 0x2004, 0x04,OD_EXP_RW | 4,(uint8_t *)&A3984_decel },
{ 0x2004, 0x05,OD_EXP_RW | 4,(uint8_t *)&A3984_current },
...
};


The subindex 0x00 gives me "OBJECT DOES NOT EXIST", but all other subindices are working fine.

To check if the SDO-expedited-read callback was the culprit, I ran the code in debugging mode. The callback does not even get called when the Abort Code is returned. It seems like the error lies in the CANopen drivers.

Or did I make a mistake in defining the Object Dictionary entries? Could the first subindex have some special role? But why then does another index with several subindices work fine?

Has anyone experienced the same problem?

Best regards,

Konstantin Werner

Outcomes