自己的使用过程,仅做记录。
打开官网demo例程,找到以太网部分,使用此例程中Freertos 工程:
工程使用的是H7,F4的工程也 移植过,和这个一样。
工程结构如下:
接下来,要根据YT8512的原理图来改动代码部分;其实就是YT8512的如何使用;
模式选择:
决定采用MII或者RMII,一般CMU都会选择RMII,主要是为了省IO资源。RMII1和2的主要区别上面可以看出,就是PHY的参考时钟由谁来提供。
另外,如果使用RMII1模式,还可以省去。晶振频率和通信速率有关。100M bps在RMII模式下,需要使用25Mhz clk。
PHY 的地址配置
同一个 MCU 或 MAC 管理多个 phy 时,不要使用 0 地址。由于 0 地址是广播地址,对地址为 0 的 phy 操作时,所有的 phy 都会响应。MCU只有
1个PHY 的时候,这个可以忽略直接使用地址0。
根据上面2点,修改demo 代码的配置部分:
如果使用RMII1模式,则不需要修改。demo中默认是MAC输出phy的参考时钟。
1.使用RMII2模式,修改代码部分如下:修改PA1为输入;
2.修改PHY 地址
demo例程是基于LAN8700的,这里添加YT8512
3.修改寄存器
YT8512的状态寄存器与LAN的不同;
这里跟自动协商有关。demo中做如下修改:10M和100M对调。
也可以不使用自动协商功能,enet_init()的传参修改下就行。