/******************************************************************************
* 文 件 名 称:BspDp83848.c
* 文件功能概述:实现DP83848的接口
* 文 件 作 者:xxx
* 版 本:V1.0.0.0
* 修 订 记 录:2017-6-30创建
******************************************************************************/
#include "BspDp83848.h"
/*
* 用于记录DP83848的地址信息
*/
static uint16 stDP83848Addr = 0xFFFF;
/*
* 用于记录DP83848的连接速度 :10M或100M
*/
static uint16 stDP83848LinkSpeed = 0;
/*
* 用于记录DP83848的工作模式:半双工或全双工
*/
static uint16 stDP83848Mode = 0;
#define DP83848_DelayMs DelayMs
/*******************************************************************************
* 函 数 名:static void DP83848_DelayMs(uint16 Ms)
* 参 数:uint16 Ms : 延时单位
* 返 回:无
* 创 建 人:xxx
* 创建时间:2017-6-30
* 详 述:DP83848使用的延时函数
* 修改记录:2017-6-30创建
*******************************************************************************/
//static __inline void DP83848_DelayMs(uint16 Ms)
//{
// DelayMs(Ms);
//}
/*******************************************************************************
* 函 数 名:static sint8 DP83848_AutoDiscover(void)
* 参 数:uint16 *pPhyAddr:phy芯片地址指针
* 返 回:0:正常返回 非0:发生错误
* 创 建 人:xxx
* 创建时间:2017-6-30
* 详 述:自动发现PHY芯片的地址
* 修改记录:2017-6-30创建
*******************************************************************************/
static sint8 DP83848_AutoDiscover(void)
{
uint16 ChipAddr = 0;
uint16 ChipData = 0;
for(ChipAddr=0; ChipAddr<0xff; ChipAddr ++)
{
MiiRead(ChipAddr, PHY_PHYIDR1, &ChipData);
if((0xFFFF!=ChipData) && (0x0000!=ChipData))
{
DP83848_Print("The DP83848's addr read is 0x%x\r\n", ChipAddr);
stDP83848Addr = ChipAddr;
break;
}
}
if(ChipAddr >= 0xff)
{
return -1;
}
else
{
return 0;
}
}
/*******************************************************************************
* 函 数 名:sint8 DP83848WireIsLinked(uint16 chip_addr)
* 参 数:uint16 chip_addr : PHY芯片地址
* 返 回:0:未建立连接 1:已经建立连接
* 创 建 人:xxx
* 创建时间:2017-6-30
* 详 述:判断phy芯片是否已经建立连接
* 修改记录:2017-6-30创建
*******************************************************************************/
sint8 DP83848WireIsLinked(uint16 chip_addr)
{
uint16 result = 0;
MiiRead(chip_addr, PHY_STS, &result);
if(result & PHYx_LINK_STATUS)
{
return 1;
}
else
{
return 0;
}
}
/*****************************
STM32之DP83848
最新推荐文章于 2025-03-10 16:29:55 发布