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:
5:6d75f432a41f
Parent:
4:bb72df6dce33
Child:
6:3ccb89a58ff8
Child:
9:33673e05639f
--- a/EtherCAT/objectlist.h	Thu Dec 11 22:31:10 2014 +0000
+++ b/EtherCAT/objectlist.h	Thu Dec 11 23:12:11 2014 +0000
@@ -119,8 +119,8 @@
 /*End of subindexes for Identity Object*/
 _ac acNameMO[]="Mapped object";
 _ac acName1600[]="Receive PDO mapping";
-_ac acName1A00[]="Transmit PDO mapping - Digital";
-_ac acName1A10[]="Transmit PDO mapping - Analog";
+_ac acName1A00[]="Transmit PDO mapping - CoP";
+_ac acName1A10[]="Transmit PDO mapping - Raw";
 _ac acName1C00[]="Sync Manager Communication type";
 /*Subindexes for Sync Manager Communication type*/
 _ac acName1C00_01[]="Communications type SM0";
@@ -140,21 +140,20 @@
 /*End of subindexes for Digital Inputs*/
 _ac acName6001[]="Raw Sensor Inputs";
 /*Subindexes for Analog inputs*/
-_ac acName6001_01[]="Analog 1";
-_ac acName6001_02[]="Analog 2";
-_ac acName6001_03[]="Analog 3";
-_ac acName6001_04[]="Analog 4";
+_ac acName6001_01[]="Raw FrontLeft";
+_ac acName6001_02[]="Raw FrontRight";
+_ac acName6001_03[]="Raw BackLeft";
+_ac acName6001_04[]="Raw BackRight";
 _ac acName6001_05[]="Timestamp";
 /*End of subindexes for Analog inputs*/
 _ac acName7000[]="Outputs";
 /*Subindexes of Outputs*/
-_ac acName7000_01[]="Control";
-_ac acName7000_02[]="digoutput";
+_ac acName7000_01[]="Correct Offset";
 /*End of subindexes for Outputs*/
-_ac acName8000[]="Configuration";
+//_ac acName8000[]="Configuration";
 /*Subindexes of configuration*/
-_ac acName8000_01[]="Settings 8";
-_ac acName8000_02[]="Settings 16";
+//_ac acName8000_01[]="Settings 8";
+//_ac acName8000_02[]="Settings 16";
 /*End of subindexes of configuration*/
 
 /////////////////////////////////////////////////////////////////////////////////////
@@ -186,9 +185,8 @@
 
 /////////////////////////////////////////////////////////////////////////////////////////////
 const _objd SDO1600[]=                                              //RxPDO mapping (objects from master to slave)
-{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x02},               //Number of RxPDOs
-  {0x01,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000108},       //First Object, pointing to object 7001:01
-  {0x02,DTYPE_UNSIGNED32,32,ATYPE_R,&acNameMO[0],0x70000208}       //Second Object, pointing to object 7001:02
+{{0x00,DTYPE_UNSIGNED8,8,ATYPE_R,&acNameNOE[0],0x01},               //Number of RxPDOs
+  {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],0x02},               //Number of TxPDOs
@@ -238,15 +236,14 @@
   {0x05,DTYPE_UNSIGNED32 ,32,ATYPE_R,&acName6001_05[0],0,&(Rb.timestamp)}   //6001:9 is timestamp
 };
 const _objd SDO7000[]=                                                      //RxPDO module
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x02},                     //Number of elements
-  {0x01,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName7000_01[0],0,&(Wb.control)},    //7001:01 is control
-  {0x02,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName7000_02[0],0,&(Wb.digoutput)}   //7001:02 is digoutput
+{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x01},                     //Number of elements
+  {0x01,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName7000_01[0],0,&(Wb.correct_offset)}   //7001:02 is correct_offset
 };
-const _objd SDO8000[]=                                                      //Configuration mailbox
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x02},                     //number of elements
-  {0x01,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName8000_01[0],0,&(Eb.setting8)},   //8000:01 is setting8
-  {0x02,DTYPE_UNSIGNED16 ,16,ATYPE_RW,&acName8000_02[0],0,&(Eb.setting16)}  //8000:02 is setting16
-};
+//const _objd SDO8000[]=                                                      //Configuration mailbox
+//{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x02},                     //number of elements
+//  {0x01,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName8000_01[0],0,&(Eb.setting8)},   //8000:01 is setting8
+//  {0x02,DTYPE_UNSIGNED16 ,16,ATYPE_RW,&acName8000_02[0],0,&(Eb.setting16)}  //8000:02 is setting16
+//};
 /** Object list; all objects used in EtherCAT slave */
 const _objectlist SDOobjects[]=
 {{0x1000,OTYPE_VAR     , 0,0,&acName1000[0],&SDO1000[0]},       //Device Type
@@ -254,7 +251,7 @@
   {0x1009,OTYPE_VAR     , 0,0,&acName1009[0],&SDO1009[0]},      //Hardware Version
   {0x100A,OTYPE_VAR     , 0,0,&acName100A[0],&SDO100A[0]},      //Software Version
   {0x1018,OTYPE_RECORD  , 4,0,&acName1018[0],&SDO1018[0]},      //Identity
-  {0x1600,OTYPE_RECORD  , 0x02,0,&acName1600[0],&SDO1600[0]},   //RxPDO mapping
+  {0x1600,OTYPE_RECORD  , 0x01,0,&acName1600[0],&SDO1600[0]},   //RxPDO mapping
   {0x1A00,OTYPE_RECORD  , 0x02,0,&acName1A00[0],&SDO1A00[0]},   //TxPDO mapping
   {0x1A10,OTYPE_RECORD  , 0x05,0,&acName1A10[0],&SDO1A10[0]},   //TxPDO mapping
   {0x1C00,OTYPE_ARRAY   , 4,0,&acName1C00[0],&SDO1C00[0]},      //Sync Manager configuration
@@ -264,8 +261,8 @@
   {0x1C13,OTYPE_ARRAY   , 2,0,&acName1C13[0],&SDO1C13[0]},      //TxPDO objects
   {0x6000,OTYPE_ARRAY   , 0x02,0,&acName6000[0],&SDO6000[0]},   //TxPDO module
   {0x6001,OTYPE_ARRAY   , 0x05,0,&acName6001[0],&SDO6001[0]},   //TxPDO module
-  {0x7000,OTYPE_ARRAY   , 0x02,0,&acName7000[0],&SDO7000[0]},   //RxPDO module
-  {0x8000,OTYPE_ARRAY   , 0x02,0,&acName8000[0],&SDO8000[0]},   //RxPDO module
+  {0x7000,OTYPE_ARRAY   , 0x01,0,&acName7000[0],&SDO7000[0]},   //RxPDO module
+  //{0x8000,OTYPE_ARRAY   , 0x02,0,&acName8000[0],&SDO8000[0]},   //RxPDO module
   {0xffff,0xff,0xff,0xff,nil,nil}
 };