Check if your device has notLRW set. If so you are going to need to have a separate domain for input and output.
On Tue, 2010-11-09 at 10:39 +0100, Wilfried Holzke wrote: > Hi, > > I trying to transfer process data to and from a CIFX50RE pci card from > Hilscher. With Twincat software it works. I am able to read and write > data to the CIFX50RE card. > > If I use the IgH EtherCAT Master, I am only able to write data to the > outputs. For my tests I use the rtai example of the ethercat master. > > If I only add the entry for data out to domain1_reg then it works. > The working counter changes to 1/1. And a can read for example 06 on the > slave. > > But if I add the entry for data input, I get working counter 0/3 > (ethercat domain -v) and no change. > > If I only add the entry for data input, I get working counter 0/1 > and no change. > > I made the following modifications to the example code: > > ---------------------------------------------------------------------- > // process data > static uint8_t *domain1_pd; // process data memory > > #define DataIoSlavePos 0, 0 > > #define CIFX_RE_ECS 0xE0000044, 0x00000001 > > static unsigned int off_data_out; // offsets for PDO entries > static unsigned int off_data_in; // offsets for PDO entries > > const static ec_pdo_entry_reg_t domain1_regs[] = { > // { DataIoSlavePos , CIFX_RE_ECS, 0x3000 , 1 , &off_data_in }, > { DataIoSlavePos , CIFX_RE_ECS, 0x2000 , 1 , &off_data_out }, > {} > }; > > static unsigned int counter = 0; > static unsigned int blink = 0; > > /*****************************************************************************/ > > /* Master 0, Slave 0, "CIFX RE/ECS" > * Vendor ID: 0xE0000044 > * Product code: 0x00000001 > * Revision number: 0x00000002 > */ > > ec_pdo_entry_info_t slave_0_pdo_entries[] = { > {0x2000, 0x01, 8}, /* 1 Byte Out (0) */ > ... > {0x2000, 0xc8, 8}, /* 1 Byte Out (199) */ > {0x3000, 0x01, 8}, /* 1 Byte In (0) */ > ... > {0x3000, 0xc8, 8}, /* 1 Byte In (199) */ > }; > > ec_pdo_info_t slave_0_pdos[] = { > {0x1600, 200, slave_0_pdo_entries + 0}, /* 1. RxPDO */ > {0x1A00, 200, slave_0_pdo_entries + 200}, /* 1. TxPDO */ > }; > > ec_sync_info_t slave_0_syncs[] = { > {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE}, > {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE}, > {2, EC_DIR_OUTPUT, 1, slave_0_pdos + 0, EC_WD_ENABLE}, > {3, EC_DIR_INPUT, 1, slave_0_pdos + 1, EC_WD_DEFAULT}, > {0xff} > }; > ---------------------------------------------------------------------- > > Further on I removed the configuration for the second slave (sc). > > I tried "etherlab upload 0x3000 1" and I get the value which I have > written from the slave. > > Do I miss something in my configuration? > Thanks for hints. > > regards > > W. Holzke > _______________________________________________ > etherlab-users mailing list > etherlab-users@etherlab.org > http://lists.etherlab.org/mailman/listinfo/etherlab-users ********************************************************** Outbound scan for Spam or Virus by Barracuda at Delta Tau **********************************************************
_______________________________________________ etherlab-users mailing list etherlab-users@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-users