stm32f429芯片驱动07 是芯片的BUG吗

27577人阅读
STM32F4(5)
早在还没有毕业前,就调试过STM32F407+DP83848,这次又调试了一次,居然花了2天时间。STM32支持两种工业级标准的接口,来与外部物理层&PHY模块相连,分别是独立于介质的接口(MII)和简化的独立于接口的接口(RMII)。之前PHY芯片使用的MII模式,现在的这次调试是使用的RMII模式(参考了各方原理图,主要还是以官方开发板的MB786为主)。我还是以一个ST官方手册上的图来说说我的使用情况吧。
1. & & 如果我们按照这个图上来画原理图,这个肯定没有错,但是对于一般使用(我们用的都是全双工的),CRS和COL这两根线使用的不多,至于为什么,我也说的不是很清楚,了解的同学们,可以补充下。
2. & & 对于连接和stm32时,在电路上是否要串行电阻,串接多大的问题。借网友的回答是这样的:串接电阻这是用来做阻抗匹配,防止信号反射的。一般PCB走线控制为50欧姆,在这样接收端高阻的情况时,可以通过源端串联50欧姆来做匹配,将终端反射回来的信号吸收,防止在源端再次发生发射。至于,串接多大的电阻,由信号驱动的内阻(大约20欧)决定,与PCB走线匹配。所以这个电阻在PCB上的位置要和信号驱动端靠近。要不要做匹配就取决于信号的速度和走线长度,规则一般是走线长度大于信号波长的1/10就要匹配了,50M的时钟最好是接一下了,不然会看到明显的过冲。参考各方资料,一般接上33欧到50欧的电阻都可以接受。
3. & & 这里对于MII模式加以说明哪些引脚需要上拉和下拉。
& & & & MDIO需要1.5K的上拉电阻,MDC不需要上拉电阻,DP83848的LED_ACT、LED_SPEED、LED_LINK都需要2.2K的上拉电阻;
& & & & DP83848的RD-、RD+、TD-、TD+需要上拉49.9欧1%的电阻,并且还需要两个0.1uf的电容接地;
& & & & DP8引脚RESERVED必须要接2.2K上拉电阻,和24引脚RBIAS需要一个4.87欧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引脚,因为我们一般还是需要使用一些中断来处理事件,比如,网线热插拔问题。
& & & & 在硬件调试过程中,stm32的外部时钟是否起振,DP83848的25引脚应该能输出25MHz(MII)或50MHz(RMII)的信号,在RMII模式,TX_CLK应该有25MHz的信号。注意,PHY的复位信号最好不要与stm32的复位信号连接到一起,因为当PHY没有通电使用时,stm32的复位引脚一直会被拉低,导致stm32不能正常使用。
& & & & 在软件调试过程中,这里以官方例程来说。首先,stm32的外部时钟频率要设置正确;然后,考虑使用哪种模式,相应开启哪种模式的宏定义;再则,如果使用MCO提供DP83848的时钟信号,需要注意stm32 的PA8引脚的初始化,如果是使用的外部时钟源,可以不用考虑MCO信号(但是不用连接PHY),在软件GPIO初始化的时候,要注意,注释PA8的初始化部分,只需要注释该引脚的初始化,引脚状态初始化不要注释,因为后面的引脚初始化都会用到。
以上就是我的一些使用感受,有什么不对的,希望大神指点!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:283122次
积分:2210
积分:2210
排名:第15319名
原创:24篇
转载:31篇
评论:50条
(1)(1)(1)(1)(1)(2)(2)(4)(1)(2)(2)(2)(2)(3)(3)(6)(2)(18)(2)(1)21ic官方微信-->
后使用快捷导航没有帐号?
查看: 1685|回复: 12
stm32f407 eth调试问题
&&未结帖(20)
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
使用的phy是LAN8710 MII接口 用的是原子的lwip例程代码&&现在遇到的问题是 MDC引脚没有波形&&TxClk有波形 RxClk也有波形(波形质量很好)&&接上网线ping不通&&两个灯没有一个亮的& &
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
自顶一下 求大神指教&&
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:0%打赏:0.00受赏:38.00
主题帖子积分
那还是问原子本人吧;
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
PHY部分可以先不用管
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
PHY部分可以先不用管
额 什么意思呢?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
不要对phy进行初始化,仅初始化mac
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
主题帖子积分
专家等级:结帖率:33%
主题帖子积分
实习生, 积分 39, 距离下一级还需 11 积分
实习生, 积分 39, 距离下一级还需 11 积分
不要对phy进行初始化,仅初始化mac
这样也可以?可以ping通吗?我的这个网口的两盏灯都不亮
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
待业青年, 积分 -336, 距离下一级还需 336 积分
待业青年, 积分 -336, 距离下一级还需 336 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
待业青年, 积分 -336, 距离下一级还需 336 积分
待业青年, 积分 -336, 距离下一级还需 336 积分
TXCLK和RXCLK都是PHY发出来的,只要电源、时钟正常就有输出。
如果MDIO接口测试不到信号,说明软件没有操作PHY的寄存器。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
待业青年, 积分 -336, 距离下一级还需 336 积分
待业青年, 积分 -336, 距离下一级还需 336 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
待业青年, 积分 -336, 距离下一级还需 336 积分
待业青年, 积分 -336, 距离下一级还需 336 积分
不要上来就ping,你得一步一步来。先把MDIO接口初始化好,然后通过MDIO接口能够读写PHY的寄存器,然后把PHY配置好,然后调试MAC是否能收、发包,这些都搞定后,再上IP协议。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
初级工程师, 积分 2612, 距离下一级还需 388 积分
这样也可以?可以ping通吗?我的这个网口的两盏灯都不亮
那可能phy就没有正常工作,检查电路原理先
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
主题帖子积分
专家等级:结帖率:95%打赏:9.38受赏:40.88
主题帖子积分
我是对MAC初始化就有问题,直接死循环在了while(ETH_GetSoftwareResetStatus() == SET);& & & & 不知道有没有遇见过的帮忙指导一下。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
实习生, 积分 30, 距离下一级还需 20 积分
实习生, 积分 30, 距离下一级还需 20 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 30, 距离下一级还需 20 积分
实习生, 积分 30, 距离下一级还需 20 积分
楼主我也遇到同样的问题,卡在while(ETH_GetSoftwareResetStatus() == SET);死循环,PHY芯片是RTL8221DN,MII_TX_CLK没有时钟信号,MII_RX_CLK有时钟信号
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
主题帖子积分
助理工程师, 积分 1298, 距离下一级还需 702 积分
助理工程师, 积分 1298, 距离下一级还需 702 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1298, 距离下一级还需 702 积分
助理工程师, 积分 1298, 距离下一级还需 702 积分
楼主问题解决了没有?是什么问题呢?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里
移步更多21ic独家微课:
技术新星奖章
人才类勋章
技术领袖奖章
人才类勋章
时间类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章
欢快之小溪
发帖类勋章
时间类勋章
技术导师奖章
人才类勋章
社区建设奖章
等级类勋章
时间类勋章
技术高手奖章
人才类勋章
时间类勋章
奔腾之江水
发帖类勋章
无冕之王奖章
等级类勋章
技术奇才奖章
人才类勋章查看: 22|回复: 1
关于STM32芯片烧写的问题
主题帖子精华
中级会员, 积分 202, 距离下一级还需 298 积分
在线时间24 小时
发表于 昨天&12:16
我想问,使用JLINK每次烧写程序的时候是把所有的FLASH全部擦除,然后重新把代码写进入吗?还是只覆盖掉了原来的?
做个小项目,有大量的图片资源,每次烧写一次,都要半天,我感觉我在这么烧下去,芯片离死不远了,我看到以前别人有说过,直接将图片资源的数组定义到FLASH的内存中,使用了一个宏作为开关,第一次烧的时候烧进去后,之后再烧的时候,就可以把开关给关了,这样就不用反复些图片了,& &然后问题来了,这样做的原理是什么,还有图片定义的位置定义道flash的什么位置比较合适?
使用JLINK,可以选择的。一般是擦除需要用到的扇区,然后就可以编程了。
一起学,一起进步,未来总有你我的一片天空……
主题帖子精华
金钱105542
在线时间665 小时
发表于 昨天&12:16
使用JLINK,可以选择的。一般是擦除需要用到的扇区,然后就可以编程了。
Powered by}

我要回帖

更多关于 stm32f4芯片 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信