打印
[STM32F1]

STM32F107VCT6+DM9161

[复制链接]
3211|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tgwfcc|  楼主 | 2014-7-11 16:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
自己画的板子,用的PHY是DM9161CEP,MII模式。现在要测试一下TCP是否能发送接收。
看了金龙和神舟板子的例程,感觉都差不多,我直接把程序下载进去,不行,是不是哪地方需要改一下呢?电路和神舟的有点差别
我怎么感觉例程和PHY没有关系呢?
沙发
mmuuss586| | 2014-7-11 19:00 | 只看该作者
PHY芯片不一样吧???
那控制程序肯定不一样啊

使用特权

评论回复
板凳
拿起书本| | 2014-7-11 21:19 | 只看该作者
针对不同的芯片组,控制当然就不一样了

使用特权

评论回复
地板
tgwfcc|  楼主 | 2014-7-14 09:32 | 只看该作者
mmuuss586 发表于 2014-7-11 19:00
PHY芯片不一样吧???
那控制程序肯定不一样啊

版主,我对程序不熟,有没有这方面的资料啊?PHY的控制程序网上能搜到吗?

使用特权

评论回复
5
tgwfcc|  楼主 | 2014-7-15 14:41 | 只看该作者
怎么没有人帮忙呢?或者提供一下资料也行啊,图片中是神舟的例程,我用的不一样,是DM9161CEP,MII模式,有些差别,是不是只要修正下STM32_ETH_Driver里边的stm32_eth.c这个驱动文件就可以了?

QQ图片20140715143727.jpg (15 KB )

QQ图片20140715143727.jpg

使用特权

评论回复
6
a32425262| | 2015-10-27 21:40 | 只看该作者
tgwfcc 发表于 2014-7-15 14:41
怎么没有人帮忙呢?或者提供一下资料也行啊,图片中是神舟的例程,我用的不一样,是DM9161CEP,MII模式,有 ...

修改了这个文件的什么地方呢,请教,谢谢

使用特权

评论回复
7
tgwfcc|  楼主 | 2015-10-31 14:50 | 只看该作者
a32425262 发表于 2015-10-27 21:40
修改了这个文件的什么地方呢,请教,谢谢

当时没研究懂就放着了,我记得要改个宏,改成MII模式,具体的我也忘了,如果你比较懂单片机,可以研究下,我研究的时候什么都不懂的

使用特权

评论回复
8
734774645| | 2015-10-31 16:28 | 只看该作者
PHY的控制程序网上能搜到吗?

使用特权

评论回复
9
mintspring| | 2015-10-31 17:18 | 只看该作者
没有玩过这个芯片啊

使用特权

评论回复
10
tgwfcc|  楼主 | 2015-10-31 17:34 | 只看该作者
734774645 发表于 2015-10-31 16:28
PHY的控制程序网上能搜到吗?

我是找的各家开发板的例程上的,

使用特权

评论回复
11
tgwfcc|  楼主 | 2015-10-31 17:35 | 只看该作者
mintspring 发表于 2015-10-31 17:18
没有玩过这个芯片啊

我没研究明白,还有LWIP什么的,爱莫能助

使用特权

评论回复
12
a32425262| | 2015-11-3 15:10 | 只看该作者
本帖最后由 a32425262 于 2015-11-3 15:16 编辑

[ 本帖最后由 a32425262 于 2015-11-3 15:15 编辑 ]\n\ntgwfcc 发表于 2015-10-31 14:50
当时没研究懂就放着了,我记得要改个宏,改成MII模式,具体的我也忘了,如果你比较懂单片机,可以研究下 ...
解决了,修改三个寄存器
/** @defgroup PHY_status_register
  * @{
  */
/* The PHY status register value change from a PHY to another so the user have
   to update this value depending on the used external PHY */
/**
  * @brief  For LAN8700  
  */
//#define PHY_SR                           31         /*!< Tranceiver Status Register */
/**
  * @brief  For DP83848  
  */
//#define PHY_SR                           16     /*!< Tranceiver Status Register */


/**
  * @brief  For DM9161
  */
#define PHY_SR                           17     /*!< Tranceiver Status Register */


/* The Speed and Duplex mask values change from a PHY to another so the user have to update
   this value depending on the used external PHY */
/**
  * @brief  For LAN8700  
  */
//#define PHY_Speed_Status            ((u16)0x0004)       /*!< Configured information of Speed: 10Mbps */
//#define PHY_Duplex_Status           ((u16)0x0010)       /*!< Configured information of Duplex: Full-duplex */


/**
  * @brief  For DP83848  
  */
//#define PHY_Speed_Status            ((u16)0x0002)    /*!< Configured information of Speed: 10Mbps */
//#define PHY_Duplex_Status           ((u16)0x0004)    /*!< Configured information of Duplex: Full-duplex */


/**
  * @brief  For DM9161  
  */
#define PHY_Speed_Status            ((u16)0x3000)    /*!< Configured information of Speed: 10Mbps */
#define PHY_Duplex_Status           ((u16)0xA000)    /*!< Configured information of Duplex: Full-duplex */






还有就是根据自己板子的硬件连接确定 PHY_ADDRESS,由RX0-RX3和CSR这几个脚组成PHYADDR0-4
芯片复位时,会锁存这5个脚的电平,作为芯片地址,以后就找这个作访问了。
所以,如果你是悬空的话,认为是0,一定要接1才认为是1我的是悬空的,都是00


//#define DP83848_PHY        /* Ethernet pins mapped on STM3210C-EVAL Board */
#define PHY_ADDRESS       0x00 /* Relative to STM3210C-EVAL Board */



改完上面几个地方就可以使用了
     

使用特权

评论回复
13
tgwfcc|  楼主 | 2015-11-4 10:22 | 只看该作者
本帖最后由 tgwfcc 于 2015-11-4 10:24 编辑
a32425262 发表于 2015-11-3 15:10
[ 本帖最后由 a32425262 于 2015-11-3 15:15 编辑 ]\n\ntgwfcc 发表于 2015-10-31 14:50
当时没研究懂就放 ...

好的,多谢,有空我试下,可以把例程发给我吗?我下的神舟例程和你的有可能不完全一样

使用特权

评论回复
14
tgwfcc|  楼主 | 2016-3-31 13:39 | 只看该作者

使用特权

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

本版积分规则

34

主题

260

帖子

4

粉丝