STM32F746 以太网初始化

STM32F7系列的MCU自带了MAC控制器,现在分析一下库函数中初始化的步骤:
一、整体初始化的流程
1、底层GPIO的初始化、时钟的开启,设置MAC与PHY的通信方式:MII或RMII
2、使MAC模块复位一次
3、获取SMI(MDC、MDIO组成)接口中的MII地址寄存器,要根据MCU的运行速度设置时钟范围,MDC的时钟频率是通过HCLK分频得到的
4、通过SMI接口对PHY_BCR寄存器写入0x8000,使PHY复位
5、如果设置成自动协商模式,MCU不断地读取PHY_BSR寄存器来判断网络是否建立。如果此时没有插入网线,超时网络没有连接,那么初始化MAC和DMA后直接返回
5.1、如果完成建立了网络连接,那么将PHY_BCR寄存器的自动协商使能位置1.
5.2、读取PHY_BSR,判断是否自动协商完毕,如果超时仍然没有自动协商完毕,那么初始化MAC和DMA后直接返回
5.3、如果自动协商完毕,那么读取PHY_SR寄存器来读取自动协商的结果(全双工还是半双工、10M还是100M)
6、如果没有配置成自动协商模式,那么程序通过SMI接口对PHY芯片的PHY_BCR写入配置
7、配置MAC和DMA


二、MAC和DMA的配置
1、使能MAC看门狗、JABBER定时器、设置最小数据长度、使能载波侦听、禁止回环模式等
2、使能接收中断、设置MAC地址等。
具体过程请看代码

你可能感兴趣的:(STM32F746 以太网初始化)