STM32F746 以太网初始化
2016-03-26 23:20
253 查看
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地址等。
具体过程请看代码
一、整体初始化的流程
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地址等。
具体过程请看代码
相关文章推荐
- JAVAEE 框架 2016-3-26
- *抽屉原理(题集一)
- Debian 7 安装配置总结
- php && 逻辑与运算符使用说明
- Problem D: 链表的基本运算(线性表)
- Android技术积累:开发规范
- 明明白白HOB hand-off Block
- POJ 2296 Map Labeler 2-SAT 二分
- 03-树1 树的同构 (25分)
- 二进制中1的个数
- 第四周作业
- PowerDesigner使用教程
- 《C++》01 数据类型
- JS实现鼠标移入移出控制图片的切换效果
- 我的iOS开发入门自学路径
- 不是人人都懂的学习要点
- css各种居中
- 南阳题目125-盗梦空间
- leetcode 17. Letter Combinations of a Phone Number
- 中文中的面向对象