⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtl8305smi.c

📁 pdh控制程序
💻 C
字号:
#ifndef _REALTEK_8305SB_SMI_C_
#define _REALTEK_8305SB_SMI_C_

#include "api.h"

static BYTE idata Parameter[ENET_PORT] = {ENET_AUTO, ENET_AUTO, ENET_AUTO, ENET_AUTO};

bit first = 0;

void SystemENetParameterSet( BYTE ENetno, BYTE value)
{
	WORD regvalue;
	BYTE port = ENetno - 1;

	switch( value )
	{
	case ENET_AUTO:
		regvalue = 0x3300;
		break;

	case ENET_100M_FULL:
		regvalue = 0x2300;
		break;

	case ENET_100M_HALF:
		regvalue = 0x2200;
		break;

	case ENET_10M_FULL:
		regvalue = 0x0300;
		break;

	case ENET_10M_HALF:
		regvalue = 0x0200;
		break;

	case ENET_NOUSE:
		regvalue = 0x1900;
		break;
	}
	Parameter[port] = value;
	SmiPhyWrite(  0, port, regvalue );

	first = 0;
}

BYTE SystemENetParameterSetGet( BYTE ENetno )
{
	BYTE port = ENetno - 1;

	return Parameter[port];
}

BYTE SystemENetParameterGet( BYTE ENetno )
{
	WORD regvalue;
	BYTE link;
	BYTE port = ENetno - 1;

	if( first == 0 )
	{
		regvalue = SmiPhyRead( 1, port);
		taskDelay(500);
		regvalue = SmiPhyRead( 1, port);
		first = 1;
	}
	regvalue = SmiPhyRead( 1, port);
	regvalue = SmiPhyRead( 1, port);

	if( regvalue & 0x04 )
	{
		regvalue = SmiPhyRead( 0, port);
		if( regvalue & 0x2000)
		{
			if( regvalue & 0x100)
				link =  ENET_100M_FULL;
			else
				link =  ENET_100M_HALF;
		}
		else
		{
			if( regvalue & 0x100)
				link =  ENET_10M_FULL;
			else
				link =  ENET_10M_HALF;
		}
	}
	else
	{
		link =  ENET_LINKDOWN;
	}
	return link;
}

void InitRealtek8005SB( void )
{
	BYTE i;

	SmiPhyWrite( 16, 0, 0xf7ff );
	SmiPhyWrite( 17, 0, 0xfff0 );
	SmiPhyWrite( 21, 0, 0xcccc );

	SmiPhyWrite( 24, 1, 0xf004 );
	SmiPhyWrite( 25, 1, 0x01ff );
	SmiPhyWrite( 26, 1, 0xe4ff );
	SmiPhyWrite( 27, 1, 0xe01f );
	SmiPhyWrite( 28, 1, 0x01ff );
	SmiPhyWrite( 29, 1, 0xffff );
	SmiPhyWrite( 30, 1, 0xe01f );
	SmiPhyWrite( 31, 1, 0xffff );


	SmiPhyWrite( 16, 2, 0xfff7 );
	SmiPhyWrite( 17, 2, 0xffdc );

	SmiPhyWrite( 16, 3, 0x7fff );

	for( i=0; i<ENET_PORT; i++ )
		SystemENetParameterSet(i+1, 0);
}


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -