Run the CH32V307 EVT Ethernet demo unmodified on a CH32V317 and the link stays down. WCH staff confirm the fix: swap the driver file to eth_driver_CH32V317.c, which brings up the chip's internal 100M PHY.
The CH32V317 ($4) and CH32V307 ($3) are close siblings - same QingKe RISC-V core family, same toolchain, similar peripheral map - which makes one difference easy to miss: the V317 integrates its own 100M Ethernet PHY. A WCH community thread this week captured exactly how that difference bites.
A developer wired a CH32V317 board using the chip's internal PHY, ran the Ethernet demo straight out of the CH32V307EVT.ZIP package, and got no link at all - the PC reported the local connection as unplugged. Everything else on the board worked, so the first suspicion was hardware.
Swapping demo packages across near-identical parts is a recurring failure mode: the build compiles, the code runs, and the only symptom is a dead link. When an Ethernet port stays down on a WCH part, check which driver file is actually compiled in before reflowing the RJ45 jack.
For teams mixing both chips on one product line - V307 for the Gigabit-MAC variant, V317 where the internal PHY saves a component - keeping the two driver files as separate build targets from day one avoids the whole class of problem. The same discipline carries to the CH32H417 ($6), which also integrates its Ethernet PHY. Source: CH32v317 内置网络初始化问题 - WCH BBS thread 161662. Condensed and translated from the public WCH community discussion.