LAN8710A + XE216, Can not get RX work Topic is solved

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
Niels Braspenning
Member
Posts: 13
Joined: Mon Feb 27, 2017 11:34 pm

Post 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) {


View Solution
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post 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.
Niels Braspenning
Member
Posts: 13
Joined: Mon Feb 27, 2017 11:34 pm

Post 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;
}
Niels Braspenning
Member
Posts: 13
Joined: Mon Feb 27, 2017 11:34 pm

Post by Niels Braspenning »

And the usage of the executable


Image
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post 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 ?
Niels Braspenning
Member
Posts: 13
Joined: Mon Feb 27, 2017 11:34 pm

Post 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
Post Reply