W5500 Read/Write Register
Ethernet Chips
- W5500
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5500 Read/Write Register
by WIZnet AI AI generated ·
RE: W5500 Read/Write Register
by Lihan__ WIZnet ·
Hello, I am a software engineer at Wiznet.
Yes, that is completely normal.
During a read or write operation, the [Address Phase] and [Control Phase] are sent over the MOSI line.
At this time, the first three bytes (0x01, 0x02, 0x03) appearing on the MISO line are unrelated to the actual communication and can be ignored.
Thank you.
RE: RE: W5500 Read/Write Register
by Liyyyyy ·
Thank you for your reply!
The main problem I am currently facing is that I cannot ping the W5500. Based on your response, I can confirm that the SPI read/write registers are functioning properly, as the data read from the register is consistent with the data I wrote into it.
Could you please help me check my code and analyze why the ping is not working?
1. Reset the W5500 chip and pull up the reset pin.
void W5500_Reset(void){
GPIO_OutPut_Leve(RST_PIN, 0);
ec_Delay_ms(10);
GPIO_OutPut_Leve(RST_PIN, 1);
ec_Delay_ms(10);
}
2. Initialize the PHY.
void W5500_Phy_Init(void){
wiz_PhyConf phyconf;
phyconf.by = PHY_CONFBY_SW;
phyconf.mode = PHY_MODE_MANUAL;
phyconf.speed = PHY_SPEED_10; //閫熺巼100M
phyconf.duplex = PHY_DUPLEX_FULL;
ctlwizchip(CW_SET_PHYCONF, (void*)&phyconf);
}
3. Configure IP, MAC, etc.
wiz_NetInfo default_net_info = {
.mac = {0x00, 0x08, 0xDC, 0x12, 0x34, 0x56},
.ip = {192, 168, 1, 100},
.gw = {192, 168, 1, 1},
.sn = {255, 255, 255, 0},
.dns = {8, 8, 8, 8},
.dhcp = NETINFO_STATIC};
void W5500_Network_Init(wiz_NetTimeout *w_NetTimeOut, wiz_NetInfo *w_NetInfo){
uint8_t chipid[6];
ctlnetwork(CN_SET_NETINFO, w_NetInfo);
ctlnetwork(CN_GET_NETINFO, &default_net_info_Test);
ctlwizchip(CW_GET_ID,(void*)chipid);
wizchip_settimeout(w_NetTimeOut);
}
Additionally, one more point to note is that it can be linked through.
Looking forward to your reply!