网口芯片SMI接口实现

最近在用P178G,需要对内部寄存器进行控制,实现各个PHY的开关与VLAN配置,为了替代最初模拟开关实现的“伪”开关,通过ds得知可以使用SMI接口进行读写寄存器,控制IC工作状态。

时序与格式如图:

该芯片前置码与其他很多芯片的32Bit高电平不同,按32bit实现也可以通用。常规SMI各个位域说明如下:

PRE:帧前缀域,为32个“1”比特,这帧前缀域不是须要的,某些物理层芯片的MDIO操纵就没有这个域。

OP:帧操纵码,比特“10”默示此帧为一读操纵帧,比特“01”默示此帧为一写操纵帧。

PHYAD:物理层芯片的地址,5个比特;

REGAD:用来选择物理层芯片的32个存放器中的某个存放器的地址;

TA:状况转换域,若为读操纵,则第一比特时MDIO为高阻态,第二比特时由物理层芯片使MDIO置“0”。若为写操纵,则MDIO仍由MAC层芯片控制,其输出“10”两个比特。

DATA:帧的存放器的数据域,16比特,若为读操纵,则为物理层送到MAC层的数据,若为写操纵,则为MAC层送到物理层的数据。

IDLE:帧停止后的余暇状况,此时MDIO无源驱动,处高阻状况,但一般用上拉电阻使其处在高电平,即MDIO引脚须要上拉电阻。

示例Code:

void SMI_Write(unsigned char phy_add, unsigned char reg_add, unsigned int data)
{
	unsigned int i;
	ISR_DIS();      //interrupt disabled
	for (i = 0; i<32; i++)//send preamble,32 1
	{
		SMI_1();
	}
	{//01            //send start
		SMI_0();
		SMI_1();
	}
	{//01            //send op code,write
		SMI_0();
		SMI_1();
	}
	for (i = 0; i<5; i++)//send phy address
	{
		if (phy_add & 0x10)
			SMI_1();//1
		else
			SMI_0();//0
		phy_add <<= 1;
	}
	for (i = 0; i<5; i++)//send reg address
	{
		if (reg_add & 0x10)
			SMI_1();//1
		else
			SMI_0();//0
		reg_add <<= 1;
	}

	{//10           //send turn around
		SMI_1();//1
		SMI_0();//0
	}
	for (i = 0; i<16; i++)//send data
	{
		if (data & 0x8000)
			SMI_1();//1
		else
			SMI_0();//0
		data <<= 1;
	}
	<pre name="code" class="cpp">      ISR_EN()<span style="font-family: Arial, Helvetica, sans-serif;">;     //interrupt enabled   </span>

}


网口芯片SMI接口实现

时间: 2024-10-07 23:39:59

网口芯片SMI接口实现的相关文章

Freescale MKL16Z1288VF4 芯片调试接口

WDOG监视内部系统操作,并在发生故障时强制复位.它可以运行在一个独立的1 kHz低功率振荡器,具有可编程刷新窗口,以检测程序流或系统频率的偏差. 看门狗计时器保持一个时间在系统上运行,并重置它,以防其故障. COP 时钟有 1KHZ时钟 和总线时钟两个来源. COP看门狗旨在在应用软件出现故障时强制重置系统 按预期执行. 防止系统从COP定时器复位(当它是 启用),应用软件必须定期复位COP计数器. 如果 应用程序丢失并且在超时之前无法重置COP计数器,a 生成系统重置以强制系统返回已知的起始

网口扫盲二:Mac与Phy组成原理的简单分析

1. general 下图是网口结构简图.网口由CPU.MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中. 对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型: CPU集成MAC与PHY; CPU集成MAC,PHY采用独立芯片; CPU不集成MAC与PHY,MAC与PHY采用集成芯片; 本例中选用方案二做进一步说明,因为CPU总线接口很常见,通常都会做成可以像访问内存一样去访问,没必要拿出来说,而

SJXXX串口扩展芯片 4串口芯片 UART串口芯片

SJXX串口扩展芯片1 概述SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件,通过模式选择使得该器件工作于以上任何一种主接口模式下.器件的四个通道UART可提供高达2Mbps的数据率,低功耗模式和睡眠电流.每个通道含有一个接收器和一个发送器,并带有64字节发送/接收FIFO,通道波特率.字长.校验格式可独立设置,也可以独立设置IrDA红外通信.RS-485自动收发控制.9位网络地址自动识别.软件/硬件自动流量控制.广播接收等.器件还带有可编程中断功能,实现与主机的信息

视频采集接口camera link 在8148中的应用

(1)应用背景 (2)camera link 简介 (3)camera link 与8148 (4)camera link 应用实例 ---------------------author:pkf ----------------------------time:2015-2-28 ----------------------------------qq:1327706646 (1)应用背景 去年开始接触camera link,刚开始听着以为是ti的东西,后面着手后,他就是个视频传输协议,这会儿

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

自定义AXI总线形式SPI接口IP核,点亮OLED

一.前言 最近花费很多精力在算法仿真和实现上,外设接口的调试略有生疏.本文以FPGA控制OLED中的SPI接口为例,重新夯实下基础.重点内容为SPI时序的RTL设计以及AXI-Lite总线分析.当然做些项目时可以直接调用Xilinx提供的SPI IP核,这里仅出于练习的目的考虑. 二.接口时序分析 本项目用的OLED型号为UG-2832HSWEG04,核心控制器是SSD1306.该芯片支持并口.I2C以及SPI接口,这里采用4线SPI作为数据总线.4线SPI接口包括: SCLK:串行时钟,SSD

第39章 ETH—Lwip以太网通信

第39章     ETH-Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 互联网技术对人类社会的影响不言而喻.当今大部分电子设备都能以不同的方式接入互联网(Internet),在家庭中PC常见的互联网接入方式是使用路由器(Router)组建小型局域网(LAN),利用互联网专线或者调制调解器(modem)经过电话线网络,连接到互联网服务提供商(ISP),由互联

数码视讯Q4刷机破解安装第三方软件图文教程!

前言:该盒子芯片和Q5一样,所以基本刷机方法.刷机固件皆可通用: 温馨提示:刷完之后,可能会出现遥控器无法使用.WIFI无法使用,请自行考虑是否刷机: 准备工具:双头USB.电脑 如果有条件,请用TTL,将自带的遥控码备份出来,这样就能让遥控器正常使用了, 具体使用TTL的方法请参考:http://www.znds.com/jc/article/9388-1.html 备份遥控码命令为: mount-oremount-orw/system cp /system/etc/remote.conf /

学员心声(四)

学员:徐同学 一句话介绍学习感受:庆兴把钱花在刀刃上 学习经历: 1991年生,目前还在杭州重点高等学校读书,2014年本科毕业几乎是混着过来的,也就懂点STM32和51单片机,做个几个简单的电子小设计,但是对于嵌入式,基于操作系统的应用并没有太多了解.虽然一直想学习,毕竟这是个软件当道的世界,硬件方面的工作确实不太好找(主要还是水平不行,公司要求颇高). 15年5月无意间看到了韦东山老师的视频,在此之前看过**的视频,大都是对着LDD第三版的概念泛泛而谈,听过看过之后就忘了,总感觉用不起来.然