[STM32F1] STM32F107VCT6+DM9161

[复制链接]
3748|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的控制程序网上能搜到吗?
 楼主| tgwfcc 发表于 2014-7-15 14:41 | 显示全部楼层
怎么没有人帮忙呢?或者提供一下资料也行啊,图片中是神舟的例程,我用的不一样,是DM9161CEP,MII模式,有些差别,是不是只要修正下STM32_ETH_Driver里边的stm32_eth.c这个驱动文件就可以了?
QQ图片20140715143727.jpg
a32425262 发表于 2015-10-27 21:40 | 显示全部楼层
tgwfcc 发表于 2014-7-15 14:41
怎么没有人帮忙呢?或者提供一下资料也行啊,图片中是神舟的例程,我用的不一样,是DM9161CEP,MII模式,有 ...

修改了这个文件的什么地方呢,请教,谢谢
 楼主| tgwfcc 发表于 2015-10-31 14:50 | 显示全部楼层
a32425262 发表于 2015-10-27 21:40
修改了这个文件的什么地方呢,请教,谢谢

当时没研究懂就放着了,我记得要改个宏,改成MII模式,具体的我也忘了,如果你比较懂单片机,可以研究下,我研究的时候什么都不懂的
734774645 发表于 2015-10-31 16:28 | 显示全部楼层
PHY的控制程序网上能搜到吗?
mintspring 发表于 2015-10-31 17:18 | 显示全部楼层
没有玩过这个芯片啊
 楼主| tgwfcc 发表于 2015-10-31 17:34 | 显示全部楼层
734774645 发表于 2015-10-31 16:28
PHY的控制程序网上能搜到吗?

我是找的各家开发板的例程上的,
 楼主| tgwfcc 发表于 2015-10-31 17:35 | 显示全部楼层
mintspring 发表于 2015-10-31 17:18
没有玩过这个芯片啊

我没研究明白,还有LWIP什么的,爱莫能助
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 */



改完上面几个地方就可以使用了
     
 楼主| 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
当时没研究懂就放 ...

好的,多谢,有空我试下,可以把例程发给我吗?我下的神舟例程和你的有可能不完全一样
 楼主| tgwfcc 发表于 2016-3-31 13:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

260

帖子

4

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