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) {
LAN8710A + XE216, Can not get RX work Topic is solved
-
- Member
- Posts: 13
- Joined: Mon Feb 27, 2017 11:34 pm
Don't be - the custom design is starting to work !! That is all that matters.i'm a lite bit shamed, some pins of the xmos rxd 0 and rx1 where loose. thanks for your fast response
sounds like you are out of bounds on a memory access but need more details.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) {
-
- Member
- Posts: 13
- Joined: Mon Feb 27, 2017 11:34 pm
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;
}
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;
}
-
- Member
- Posts: 13
- Joined: Mon Feb 27, 2017 11:34 pm
So the following works ?
Can you post your I2C routine which is being called and raising the ET_LOAD_STORE error ?
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 ?
-
- Member
- Posts: 13
- Joined: Mon Feb 27, 2017 11:34 pm
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
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