EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master

Dependencies:   MODSERIAL mbed KL25Z_ClockControl

Fork of EtherCAT by First Last

Revision:
32:1f6a705cd794
Parent:
31:d0532aa7f631
Child:
35:32659533e0ef
--- a/EtherCAT/objectlist.h	Tue Mar 10 11:30:44 2015 +0000
+++ b/EtherCAT/objectlist.h	Tue Mar 10 11:45:32 2015 +0000
@@ -197,7 +197,7 @@
   {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000108}       //First Object, pointing to object 7001:01
 };
 const _objd SDO1A00[]=                                              //TxPDO mapping (objects from slave to master)
-{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A},               //Number of TxPDOs
+{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09},               //Number of TxPDOs
   {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000120},       //First Object, pointing to object  6000:01
   {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000220},       //Second Object, pointing to object 6000:02      //..
   {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000320},
@@ -206,12 +206,11 @@
   {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000620},
   {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000720},
   {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000820},
-  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000920},
-  {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000A20}
+  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60000920}
 };
 
 const _objd SDO1A01[]=                                              //TxPDO mapping (objects from slave to master)
-{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A},               //Number of TxPDOs
+{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09},               //Number of TxPDOs
   {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010120},       //First Object, pointing to object  6001:01
   {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010220},       //Second Object, pointing to object 6001:02      //..
   {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010320},
@@ -220,12 +219,11 @@
   {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010620},
   {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010720},
   {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010820},
-  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010920},
-  {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010A20}
+  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60010920}
 };
 
 const _objd SDO1A02[]=                                              //TxPDO mapping (objects from slave to master)
-{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x0A},               //Number of TxPDOs
+{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x09},               //Number of TxPDOs
   {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020120},       //First Object, pointing to object  6002:01
   {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020220},       //Second Object, pointing to object 6002:02      //..
   {0x03,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020320},
@@ -234,8 +232,7 @@
   {0x06,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020620},
   {0x07,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020720},
   {0x08,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020820},
-  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020920},
-  {0x0A,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020A20}
+  {0x09,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x60020920}
 };
 
 const _objd SDO1A03[]=                                              //TxPDO mapping (objects from slave to master)
@@ -267,7 +264,7 @@
 };
 
 const _objd SDO6000[]=                                                      //TxPDO module
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
+{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x09},                     //Number of elements
   {0x01,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X
   {0x02,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y
   {0x03,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z
@@ -276,12 +273,11 @@
   {0x06,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z
   {0x07,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X
   {0x08,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y
-  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])},//6000:09 is mag Z
-  {0x0A,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)}   //6000:0A is imu temperature
+  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])}//6000:09 is mag Z
 };
 
 const _objd SDO6001[]=                                                      //TxPDO module
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
+{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x09},                     //Number of elements
   {0x01,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X
   {0x02,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y
   {0x03,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z
@@ -290,12 +286,11 @@
   {0x06,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z
   {0x07,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X
   {0x08,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y
-  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])},//6001:09 is mag Z
-  {0x0A,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)}   //6001:0A is imu temperature
+  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])}//6001:09 is mag Z
 };
 
 const _objd SDO6002[]=                                                      //TxPDO module
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
+{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x09},                     //Number of elements
   {0x01,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X
   {0x02,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y
   {0x03,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z
@@ -304,8 +299,7 @@
   {0x06,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z
   {0x07,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X
   {0x08,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y
-  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])},//6002:09 is mag Z
-  {0x0A,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)}   //6002:0A is imu temperature
+  {0x09,DTYPE_REAL32  ,32,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])}//6002:09 is mag Z
 };
 
 const _objd SDO6003[]=                                                      //TxPDO module
@@ -330,18 +324,18 @@
   {0x100A,OTYPE_VAR     , 0,0,&acName100A[0],&SDO100A[0]},      //Software Version
   {0x1018,OTYPE_RECORD  , 4,0,&acName1018[0],&SDO1018[0]},      //Identity
   {0x1600,OTYPE_RECORD  , 0x01,0,&acName1600[0],&SDO1600[0]},   //RxPDO mapping
-  {0x1A00,OTYPE_RECORD  , 10,0,&acName1A00[0],&SDO1A00[0]},   //TxPDO mapping
-  {0x1A01,OTYPE_RECORD  , 10,0,&acName1A01[0],&SDO1A01[0]},   //TxPDO mapping
-  {0x1A02,OTYPE_RECORD  , 10,0,&acName1A02[0],&SDO1A02[0]},   //TxPDO mapping
+  {0x1A00,OTYPE_RECORD  , 9,0,&acName1A00[0],&SDO1A00[0]},   //TxPDO mapping
+  {0x1A01,OTYPE_RECORD  , 9,0,&acName1A01[0],&SDO1A01[0]},   //TxPDO mapping
+  {0x1A02,OTYPE_RECORD  , 9,0,&acName1A02[0],&SDO1A02[0]},   //TxPDO mapping
   {0x1A03,OTYPE_RECORD  ,  1,0,&acName1A03[0],&SDO1A03[0]},   //TxPDO mapping
   {0x1C00,OTYPE_ARRAY   , 4,0,&acName1C00[0],&SDO1C00[0]},      //Sync Manager configuration
   {0x1C10,OTYPE_ARRAY   , 0,0,&acName1C10[0],&SDO1C10[0]},      //Sync Manager 0 PDO assignment
   {0x1C11,OTYPE_ARRAY   , 0,0,&acName1C11[0],&SDO1C11[0]},      //Sync Manager 1 PDO assignment
   {0x1C12,OTYPE_ARRAY   , 1,0,&acName1C12[0],&SDO1C12[0]},      //RxPDO objects
   {0x1C13,OTYPE_ARRAY   , 4,0,&acName1C13[0],&SDO1C13[0]},      //TxPDO objects
-  {0x6000,OTYPE_ARRAY   , 10,0,&acName6000[0],&SDO6000[0]},   //TxPDO module
-  {0x6001,OTYPE_ARRAY   , 10,0,&acName6001[0],&SDO6001[0]},   //TxPDO module
-  {0x6002,OTYPE_ARRAY   , 10,0,&acName6002[0],&SDO6002[0]},   //TxPDO module
+  {0x6000,OTYPE_ARRAY   , 9,0,&acName6000[0],&SDO6000[0]},   //TxPDO module
+  {0x6001,OTYPE_ARRAY   , 9,0,&acName6001[0],&SDO6001[0]},   //TxPDO module
+  {0x6002,OTYPE_ARRAY   , 9,0,&acName6002[0],&SDO6002[0]},   //TxPDO module
   {0x6003,OTYPE_ARRAY   ,  1,0,&acName6003[0],&SDO6003[0]},   //TxPDO module
   {0x7000,OTYPE_ARRAY   , 0x01,0,&acName7000[0],&SDO7000[0]},   //RxPDO module
   {0x8000,OTYPE_ARRAY   , 0x01,0,&acName8000[0],&SDO8000[0]},   //RxPDO module