STM32
直播中

张英

7年用户 1407经验值
私信 关注
[问答]

如何对STM32F746的MAC和DMA进行配置

STM32F746库函数中初始化的步骤有哪些?

如何对STM32F746的MAC和DMA进行配置?

回帖(1)

刘易

2021-10-14 16:50:39
  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地址等。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分