[STM32F1] STM32F107以太网通信

[复制链接]
5980|17
 楼主| NickelBack_87 发表于 2014-3-17 18:36 | 显示全部楼层 |阅读模式
最近在做STM32F107的以太网通信,使用的是TLK110的PHY芯片,基本功能和DP83848类似,现在在SMI通信处卡壳了,进行写操作时,对STM32的MDIO和MDC管脚测量波形,都是正常的,但进行读操作时,无论我刚才写了什么数据,波形时钟不变,出去前面的引导码等等,数据部分时钟是低电平。不知道是不是还有什么地方没有设置,或者是我的硬件搭建有问题,大家谁遇到过类似情况麻烦指导一下,谢谢了
mmuuss586 发表于 2014-3-17 19:45 | 显示全部楼层
没用过,帮顶。
 楼主| NickelBack_87 发表于 2014-3-18 10:15 | 显示全部楼层
mmuuss586 发表于 2014-3-17 19:45
没用过,帮顶。

谢谢啦。继续等待各位大神们的回复
 楼主| NickelBack_87 发表于 2014-3-18 10:18 | 显示全部楼层
现在还出现了另外一个问题,进行SMI读操作的时候进行程序调试,程序先走到绿箭头后又走到黄箭头,出现了程序倒走的情况,太诡异了,大家遇到过程序倒走的情况吗
程序截图.png
prayerwind 发表于 2014-3-18 14:00 | 显示全部楼层
“MDC时钟是低电平?”
如果是硬件SMI,请查看GPIO口配置。
SMI接口中,STM32负责为SMI通讯接口提供时钟,无论是读还是写。
 楼主| NickelBack_87 发表于 2014-3-18 15:57 | 显示全部楼层
prayerwind 发表于 2014-3-18 14:00
“MDC时钟是低电平?”
如果是硬件SMI,请查看GPIO口配置。
SMI接口中,STM32负责为SMI通讯接口提供时钟, ...

谢谢你的回复啊。刚才那个打错了,是始终是低电平,不是时钟。恩,时钟确实是STM提供的,现在不知道从哪里下手找原因。
prayerwind 发表于 2014-3-18 16:11 | 显示全部楼层
NickelBack_87 发表于 2014-3-18 15:57
谢谢你的回复啊。刚才那个打错了,是始终是低电平,不是时钟。恩,时钟确实是STM提供的,现在不知道从哪 ...

PHY地址是多少?
PHY的BootStrap查过没有?
 楼主| NickelBack_87 发表于 2014-3-18 16:54 | 显示全部楼层
prayerwind 发表于 2014-3-18 16:11
PHY地址是多少?
PHY的BootStrap查过没有?

PHY就用的缺省值,就是没加任何下拉,0x01
prayerwind 发表于 2014-3-18 17:47 | 显示全部楼层
1. 原理图请发下
2. 检查PHY的物理地址,寄存器地址和寄存器标志位
3. 验证PHY
    PHY在Bootstrap后,按照自动协商协议应该可以和MAC层直接进行数据传输的。你可以在调试的过程中跳过读取PHY寄存器部分的代码来验证PHY的物理连接。
4. 调试时把编译器优化开到最低试试!
 楼主| NickelBack_87 发表于 2014-3-19 09:18 | 显示全部楼层
prayerwind 发表于 2014-3-18 17:47
1. 原理图请发下
2. 检查PHY的物理地址,寄存器地址和寄存器标志位
3. 验证PHY

首先谢谢你的帮助:)
1.我自己用万用板搭的电路,就按照芯片数据手册做的,没画~~~
2.物理地址寄存器什么的怎么检验,是用STM32去读吗?
3.第三步我不太明白怎么操作,再详细说一下好吗。
谢谢你了啊
 楼主| NickelBack_87 发表于 2014-3-19 15:17 | 显示全部楼层
我还发现一个问题就是STM提供给PHY的时钟有50MHz(RMII模式),但是时钟信号的峰峰值只有1V,请问这是不是太小了,会不会对通信有影响
 楼主| NickelBack_87 发表于 2014-3-19 17:12 | 显示全部楼层
更改SMI的工作模式时,即MII和RMII,只要修改例程中的宏定义就可了,还是还有其他需要修改的地方
 楼主| NickelBack_87 发表于 2014-3-20 17:43 | 显示全部楼层
:lol自己顶一下
prayerwind 发表于 2014-3-20 20:51 | 显示全部楼层
NickelBack_87 发表于 2014-3-19 15:17
我还发现一个问题就是STM提供给PHY的时钟有50MHz(RMII模式),但是时钟信号的峰峰值只有1V,请问这是不是太 ...

时钟是怎么提供的? 50MHz,通过PLL倍频输出的?  峰峰值1V不一定不够,但你需要检查一下电平的标准满足PHY的CMOS电平不?
请用示波器测量一下时钟的上升时间,下降时间,抖动;与PHY手册值对比一下。
prayerwind 发表于 2014-3-20 20:51 | 显示全部楼层
NickelBack_87 发表于 2014-3-19 17:12
更改SMI的工作模式时,即MII和RMII,只要修改例程中的宏定义就可了,还是还有其他需要修改的地方 ...

只需要修改宏定义。你用的PHY是哪一片?
 楼主| NickelBack_87 发表于 2014-3-21 09:39 | 显示全部楼层
prayerwind 发表于 2014-3-20 20:51
只需要修改宏定义。你用的PHY是哪一片?

TI的TLK110,管脚可以和DP83848管脚对管脚兼容,就是性能稍微好一些。
光SMI接口都搞了很久了,哎。不知道从哪下手了。
 楼主| NickelBack_87 发表于 2014-3-21 13:20 | 显示全部楼层
问题解决了
汤火 发表于 2015-10-20 11:20 | 显示全部楼层
为什么给板子供电而且插上网线后RJ45的L-引脚还是高电平啊,特别不稳定,有的时候会是低电平,不过只是一会会
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

150

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部