Page 2 of 2

Re: LAN8710A + XE216, Can not get RX work

Posted: Mon Mar 06, 2017 9:33 pm
by Niels Braspenning
Hi,

It working,

i'm a lite bit shamed, some pins of the xmos rxd 0 and rx1 where loose. thanks for your fast response

i'm able to ping the device (ported version of AN00120), however when i try my version of AN00121 is crashes with

xrun: Program received signal ET_LOAD_STORE, Memory access exception.
[Switching to tile[0] core[2]]
0x00045a6e in mii_client_user (this=@0x7fb9c, base=506784, end=507000, c_notifications=2147616514) at /Users/nielsbraspenning/Documents/handshake/Firmware/xmos/lib_ethernet/src/mii_lite_driver.xc:348

348 void mii_client_user(struct mii_lite_data_t &this, int base, int end, chanend c_notifications) {

Re: LAN8710A + XE216, Can not get RX work

Posted: Mon Mar 06, 2017 10:11 pm
by mon2
i'm a lite bit shamed, some pins of the xmos rxd 0 and rx1 where loose. thanks for your fast response
Don't be - the custom design is starting to work !! That is all that matters.
xrun: Program received signal ET_LOAD_STORE, Memory access exception.
[Switching to tile[0] core[2]]
0x00045a6e in mii_client_user (this=@0x7fb9c, base=506784, end=507000, c_notifications=2147616514) at /Users/nielsbraspenning/Documents/handshake/Firmware/xmos/lib_ethernet/src/mii_lite_driver.xc:348

348 void mii_client_user(struct mii_lite_data_t &this, int base, int end, chanend c_notifications) {
sounds like you are out of bounds on a memory access but need more details.

Re: LAN8710A + XE216, Can not get RX work

Posted: Tue Mar 07, 2017 9:20 pm
by Niels Braspenning
hi,

When i added a i2c master the problem occurs, without the i2c master it functions

Mine par statement

par {

on tile[0] :i2c_master(i2c, 1, p_scl, p_sda, 10);
// on tile[0] :i2c_test(i2c[0]);

// MII/ethernet driver
on tile[0]: mii(i_mii, p_eth_rxclk, p_eth_rxerr, p_eth_rxd, p_eth_rxdv,
p_eth_txclk, p_eth_txen, p_eth_txd, p_eth_timing,
eth_rxclk, eth_txclk, XTCP_MII_BUFSIZE);

// SMI/ethernet phy driver
on tile[0]: smi(i_smi, p_smi_mdio, p_smi_mdc);

// TCP component
on tile[0]: xtcp(c_xtcp, 1, i_mii,
null, null, null,
i_smi, ETHERNET_SMI_PHY_ADDRESS,
null, otp_ports, ipconfig);

// The simple udp reflector thread
on tile[0]: udp_reflect(c_xtcp[0]);
}
return 0;
}

Re: LAN8710A + XE216, Can not get RX work

Posted: Tue Mar 07, 2017 9:27 pm
by Niels Braspenning
And the usage of the executable


Image

Re: LAN8710A + XE216, Can not get RX work

Posted: Tue Mar 07, 2017 9:37 pm
by mon2
So the following works ?
par {

////on tile[0] :i2c_master(i2c, 1, p_scl, p_sda, 10); // if you comment this out - the Ethernet TX & RX work fine ?? else the memory ET phone home error ?
// on tile[0] :i2c_test(i2c[0]);

// MII/ethernet driver
on tile[0]: mii(i_mii, p_eth_rxclk, p_eth_rxerr, p_eth_rxd, p_eth_rxdv,
p_eth_txclk, p_eth_txen, p_eth_txd, p_eth_timing,
eth_rxclk, eth_txclk, XTCP_MII_BUFSIZE);

// SMI/ethernet phy driver
on tile[0]: smi(i_smi, p_smi_mdio, p_smi_mdc);

// TCP component
on tile[0]: xtcp(c_xtcp, 1, i_mii,
null, null, null,
i_smi, ETHERNET_SMI_PHY_ADDRESS,
null, otp_ports, ipconfig);

// The simple udp reflector thread
on tile[0]: udp_reflect(c_xtcp[0]);
}
return 0;
}

Can you post your I2C routine which is being called and raising the ET_LOAD_STORE error ?

Re: LAN8710A + XE216, Can not get RX work

Posted: Tue Mar 07, 2017 11:14 pm
by Niels Braspenning
Indeed, this is working.

the routine which is called, on tile[0] :i2c_master(i2c, 1, p_scl, p_sda, 10);
is in the xmos i2c library.

the on tile[0] :i2c_test(i2c[0]) , is my routine, however i commented this out in both cases