Så här. MAC-adressen stämmer enligt konfigurationen.
Men varför svarar den inte tillbaka när man pingar? Tingeling tingeling, come on baby give me ping.
- MAC adressen fungerar
- IP Adressen fungerar
- Inget minnesfel, trots att jag sätter heap på något slumpmässig adress. Jag vet inte vad jag ska sätta på, men jag sätter den runt 0x2000000 till 0x2000200 enligt vad RAM-minnet har.
- Jag får time out när jag pingar (Troligtvis så förstår den inte meddelandet)
Jag tror jag ska testa med WireShark för att analysera trafiken.
Det är högst otroligt att det skickas ett svar och som är felaktigt. Och om så är fallet, så behöver man ändå inspektera koden som genererar svaret, så det är lika bra att börja där direkt.
agehall skrev: ↑26 april 2022, 17:12:42
Wireshark kommer inte ge dig speciellt mycket - den kommer visa att du skickar ett ICMP-paket och inget mer.
Sätt breakpoints i TCP/IP-stacken och kolla vad som händer när paket kommer in.
Jag kan inte ens se IP-adressen för att kolla i Wireshark. Så Wireshark är värdelös här.
agehall skrev: ↑26 april 2022, 20:30:55
Det är högst otroligt att det skickas ett svar och som är felaktigt. Och om så är fallet, så behöver man ändå inspektera koden som genererar svaret, så det är lika bra att börja där direkt.
/**
* @brief Write a value to a PHY register through the MDIO interface.
* @param DevAddr: PHY port address
* @param RegAddr: PHY register address
* @param RegVal: Value to be written
* @retval 0 if OK -1 if Error
*/
int32_t ETH_PHY_IO_WriteReg(uint32_t DevAddr, uint32_t RegAddr, uint32_t RegVal)
{
if(HAL_ETH_WritePHYRegister(&heth, DevAddr, RegAddr, RegVal) != HAL_OK)
{
return -1;
}
return 0;
}
DevAddr = 0x1 och RegAddr = 0x0 samt RegVal = 0x8000
Detta betyder att RESET aktiveras hos Ethernet PHY, vilket är helt korrekt. Problemet är att....denna funktion ETH_PHY_IO_WriteReg, anropas BARA en gång vid uppstart av mikrokontrollern...den anropas inte mera....
Skärmklipp.PNG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Om PHY'et är i reset så skulle ARP aldrig fungera. Så det kan inte vara problemet, om ARP nu faktiskt fungerar.
Måste vara någonstans högre upp i IP-stacken det går fel.
Oavsett, PHY'et är inte att misstänka fel på om ARP fungerar.
Kommer inga paket alls fram på ena eller andra hållet kan man misstänka PHY, men eftersom ARP fungerar kan du släppa PHY'et och gå uppåt.