rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Ik probeer met een RP2040 Ethernet te babbelen.
Ping werkt al een paar dagen, maar UDP pakketjes bleken niet teruggestuurd te worden. Na veel debuggen: lwip denkt dat de link down is. En dat komt omdat
uint16_t mdio_read = netif_rmii_ethernet_mdio_read(phy_address, 1);
uint16_t link_status = (mdio_read & 0x04) >> 2;
de waarde "0" voor "link_status" teruggeeft.
Als de "link down" status aan de hogere lagen wordt doorgegeven (nu even uitgecommentarieerd) dan denkt ie dat deze interface niet beschikbaar is voor uitgaande pakketjes. Zit wat in. Ping controleert dat kennelijk niet. En ontvangen werkt ook gewoon prima. De ledjes op m'n ethernet connector knipperen ook gewoon vrolijk. Hmmm. De groene zit achter m'n ethernet kabel en is "uit".
OK. Dat blijkt "led2" te zijn, en default daar is "link speed", die zou "aan" moeten zijn bij 100mbps en uit bij 10mbps of "geen link". Ik heb er niets aan proberen te veranderen, dus ik gebruik hopelijk de default instelling (en die is best "redelijk").
Wat ik van de implementatie van de MAC heb begrepen ( https://github.com/maximeborges/pico-rmii-ethernet ) is dat ie nu geen 10mbps meer zou ondersteunen. (als je doorclickt naar Is geforked van... , dan ondersteunt die geen 100mbps: "heb het niet werkend kunnen krijgen").
Ik ga het hele status register printen om verder te debuggen. Heeft verder iemand hier ervaring mee? Suggesties?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
LWIP is "light weight IP". Een open source TCPIP implementatie voor embedded spul.
Vergeten te zeggen: Mijn "udp test server"... die print gewoon dat ie een pakketje krijgt en terug gaat sturen. Dus: geopend? Jazeker.
UDP zelf stuurt niets terug. Maar als test heb ik een "echo" server gebouwd die het gestuurde pakketje terugstuurt nadat ie de eerste 16 bytes eentje opgehoogd heeft. Stuur aaaa12345bbbbbbbb en je krijgt bbbb23456cccccccb terug. (had eerst met de hand zitten tikken wat ie moest doen, maar uiteindelijk het ding zelf maar laten uitreken wat ie doet.
)
Ik heb hem gevonden. De read van het status register werkte niet. Kwam altijd 0000 of ffff van terug. Blijkt dat ik de verkeerde pins daarvoor had geconfigureerd. Hoe het dan (deels) heeft kunnen werken weet ik niet, maar nu krijg ik een redelijke "status" terug nu ie het op de juiste pins doet.
Ik had daar niet naar gekeken: Ik had voor de hardware de "the default confguration is.... " gevolgd uit de handleiding en daarna gewoon "compile" gedaan op de voorbeeld source, aannemende dat het bijgeleverde voorbeeld idd voor de default configuratie is.... Waarom er dan 16 voor MDIO stond ipv 14 weet ik niet.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Ik zou eerst even met Wireshark mee gaan kijken; aangezien je wel kunt pingen, is ARP en eventueel DHCP (als je geen vast IP hebt) in ieder geval al goed gegaan.