打印
[STM32F4]

调试STM32F407+DP83848

[复制链接]
2631|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32支持两种工业级标准的接口,来与外部物理层 PHY模块相连,分别是独立于介质的接口(MII)和简化的独立于接口的接口(RMII)。之前PHY芯片使用的MII模式,现在的这次调试是使用的RMII模式(参考了各方原理图,主要还是以官方开发板的MB786为主)。我还是以一个ST官方手册上的图来说说我的使用情况吧。
沙发
goodluck09876|  楼主 | 2017-11-30 12:46 | 只看该作者
结构图 如下:

1.png (45.79 KB )

1.png

使用特权

评论回复
板凳
goodluck09876|  楼主 | 2017-11-30 12:47 | 只看该作者
RMII

2.png (44.2 KB )

2.png

使用特权

评论回复
地板
stm32lover| | 2017-11-30 12:48 | 只看该作者
DP83848

稳定吗? 与W5500 比较如何?

使用特权

评论回复
5
東南博士| | 2017-11-30 12:48 | 只看该作者
官网的方案 肯定错不了!

使用特权

评论回复
6
wangjiahao88| | 2017-11-30 12:48 | 只看该作者
请参考 官方的 BSP文件包!

使用特权

评论回复
7
goodluck09876|  楼主 | 2017-11-30 12:49 | 只看该作者
如果我们按照这个图上来画原理图,这个肯定没有错,但是对于一般使用(我们用的都是全双工的),CRS和COL这两根线使用的不多,至于为什么,我也说的不是很清楚,了解的同学们,可以补充下。

使用特权

评论回复
8
goodluck09876|  楼主 | 2017-11-30 12:49 | 只看该作者
对于连接DP83848和stm32时,在电路上是否要串行电阻,串接多大的问题。借网友的回答是这样的:串接电阻这是用来做阻抗匹配,防止信号反射的。一般PCB走线控制为50欧姆,在这样接收端高阻的情况时,可以通过源端串联50欧姆来做匹配,将终端反射回来的信号吸收,防止在源端再次发生发射。至于,串接多大的电阻,由信号驱动的内阻(大约20欧)决定,与PCB走线匹配。所以这个电阻在PCB上的位置要和信号驱动端靠近。要不要做匹配就取决于信号的速度和走线长度,规则一般是走线长度大于信号波长的1/10就要匹配了,50M的时钟最好是接一下了,不然会看到明显的过冲。参考各方资料,一般接上33欧到50欧的电阻都可以接受。

使用特权

评论回复
9
goodluck09876|  楼主 | 2017-11-30 12:49 | 只看该作者
这里对于MII模式加以说明哪些引脚需要上拉和下拉。
        MDIO需要1.5K的上拉电阻,MDC不需要上拉电阻,DP83848的LED_ACT、LED_SPEED、LED_LINK都需要2.2K的上拉电阻;
        DP83848的RD-、RD+、TD-、TD+需要上拉49.9欧1%的电阻,并且还需要两个0.1uf的电容接地;
        DP83848的20, 21引脚RESERVED必须要接2.2K上拉电阻,和24引脚RBIAS需要一个4.87K欧1%的电阻接地,引脚18、23、37需要电容接地,这些都需要严格按照DP83848的手册来连接电路。
        另外,39引脚不需要上拉电阻,如果是RMII模式,就需要2.2K的电阻,这样就选择了我们是使用的RMII模式。
        其中,有个重要的信号一定要注意,这个也是我在使用RMII模式没有注意的,stm32 的ETH_RMII_REF_CLK / ETH_MII_RX_CLK 信号线PA1没有连接,使用RMII模式的时候,PA1应该连接到时钟源上面。
        最后,DP83848的7引脚,一般还是建议上拉2.2K电阻,并且,将其连接到STM32的IO引脚,因为我们一般还是需要使用一些中断来处理事件,比如,网线热插拔问题。

使用特权

评论回复
10
stm32lover| | 2017-11-30 12:49 | 只看该作者
这个 支持网线 热插拔 了!

使用特权

评论回复
11
goodluck09876|  楼主 | 2017-11-30 12:50 | 只看该作者
在硬件调试过程中,stm32的外部时钟是否起振,DP83848的25引脚应该能输出25MHz(MII)或50MHz(RMII)的信号,在RMII模式,TX_CLK应该有25MHz的信号。注意,PHY的复位信号最好不要与stm32的复位信号连接到一起,因为当PHY没有通电使用时,stm32的复位引脚一直会被拉低,导致stm32不能正常使用。

使用特权

评论回复
12
東南博士| | 2017-11-30 12:50 | 只看该作者
可以用STM32 来复位 PHY吗/.

使用特权

评论回复
13
stm32lover| | 2017-11-30 12:50 | 只看该作者
是的!

如果MCU控制PHY 就可以自主复位 了!

使用特权

评论回复
14
stm32lover| | 2017-11-30 12:51 | 只看该作者
发现了问题 还可以进行强制复位

使用特权

评论回复
15
goodluck09876|  楼主 | 2017-11-30 12:52 | 只看该作者
在软件调试过程中,这里以官方例程来说。首先,stm32的外部时钟频率要设置正确;然后,考虑使用哪种模式,相应开启哪种模式的宏定义;再则,如果使用MCO提供DP83848的时钟信号,需要注意stm32 的PA8引脚的初始化,如果是使用的外部时钟源,可以不用考虑MCO信号(但是不用连接PHY),在软件GPIO初始化的时候,要注意,注释PA8的初始化部分,只需要注释该引脚的初始化,引脚状态初始化不要注释,因为后面的引脚初始化都会用到。

使用特权

评论回复
16
nobleliom| | 2017-11-30 20:10 | 只看该作者
F4不是自带以太网吗?还需要加外部PHY芯片吗?

使用特权

评论回复
17
goodluck09876|  楼主 | 2017-12-14 12:53 | 只看该作者
是啊!

又不能直接就出来 加网络变压器!

使用特权

评论回复
18
小明的同学| | 2017-12-14 19:32 | 只看该作者
没用过,学习学习。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

220

主题

5843

帖子

20

粉丝