<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16788" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#fffbf0>
<DIV><FONT face=Arial size=2>Dear Florian,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks a lot for support.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The error was in the wrong Product ID used for the 
evalutation Board. </FONT></DIV>
<DIV><FONT face=Arial size=2>We didn't see when switched the board from the 32 
IO mode to the PIC mode that the Product ID was changed.</FONT></DIV>
<DIV><FONT face=Arial size=2>The sample program works fine either with or 
without configure the PDOs, as is written in the new mini.c sample program 
attached to this mail.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Now there is just a little bugs. If we register, 
with the function "ecrt_domain_reg_pdo_entry_list" just one PDO variable, we see 
the slave to go into a loop where the state changes from INIT, PREOP, 
SAFEOP, OP and SAFEOP + ERR. If we register at least two variables the bugs 
doesn't appear. We are preparing a more clear mail, with debug trace of this 
little bug.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Massimo Mancin.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>> Hi,<BR>> <BR>> On Wed, Jul 15, 2009 at 
05:40:16PM +0200, Edgar Garzon wrote:<BR>> > Two different proves:<BR>> 
> 1. Using the user command interface. Trying to pass the slave in OP 
states<BR>> > using: /opt/etherlab/bin/ethercat states OP. And 
correspoonds to the master<BR>> > logs: "ethercat.log" (File 
attached).<BR>> <BR>> this won't be enough, because no slave configuration 
is supplied and<BR>> moreover no cyclic exchange of process data is done. You 
have to provide<BR>> an application (like you're doing in the second 
example).<BR>> <BR>> > 2. Using a application "mini.c". And corresponds 
to the master log:<BR>> > etherlab.log1.<BR>> <BR>> <BR>> In the 
logs you can see:<BR>> <BR>> > EtherCAT DEBUG: 
ecrt_master_slave_config(master = 0xf6ee4800, alias = 5,<BR>> 
>    position = 0, vendor_id = 0x2, product_code = 
0x4570862)<BR>> > EtherCAT DEBUG: Creating slave configuration for 
5:0,<BR>> >    0x00000002/0x04570862.<BR>> > EtherCAT 
DEBUG: Slave 0 has an invalid type (0x00000002/0x26483052) for<BR>> 
>    configuration 5:0 (0x00000002/0x04570862).<BR>> 
<BR>> The vendor/product combination in your application does not match 
your<BR>> slave.<BR>> <BR>> If you correct this, you will most probably 
get a second problem:<BR>> <BR>> > General:<BR>> >   
Group: EvaBoardDemo<BR>> >   Image name: DEVICE<BR>> 
>   Order number: EL9800-0100<BR>> >   Device name: 
EL9800 (V4.08) (SPI, ET1100)<BR>> >   CoE details:<BR>> 
>     Enable SDO: yes<BR>> 
>     Enable SDO Info: yes<BR>> 
>     Enable PDO Assign: no<BR>> 
>     Enable PDO Configuration: no<BR>> <BR>> The 
slave does not allow altering the PDO assignment and the PDOs'<BR>> 
mappings.  What you're trying to do here...<BR>> <BR>> > static 
ec_pdo_info_t el9800_pdos[] = {<BR>> >     {0x1A02, 8, 
el9800_pdo_entries},<BR>> > };<BR>> > <BR>> > static 
ec_sync_info_t el9800_syncs[] = {<BR>> >     {2, 
EC_DIR_OUTPUT},<BR>> >     {3, EC_DIR_INPUT, 1, 
el9800_pdos},<BR>> >     {0xff}<BR>> > 
};<BR>> <BR>> ...is to assign only PDO 0x1a02 to SM 3, what the slave will 
reject. Try<BR>> to include both PDOs (0x1a00 and 0x1a02) in the 
configuration (or<BR>> comment the CONFIGURE_PDOS define out).<BR>> 
<BR>> When doing this, you will certainly be successful.<BR>> <BR>> -- 
<BR>> Best regards,<BR>> Florian Pose<BR></FONT></DIV></BODY></HTML>