SR8201F以太网口断连分析(MDIO时序)

目录

1 初步怀疑电源供电能力不够

1.1 电流测量

1.2 改供电方式

1.3 原设计注意问题整改

2 怀疑CPU对PHY的reg有错误的写操作

3 怀疑CPU对PHY 有错误的复位行为

4 更换测试工具


1 初步怀疑电源供电能力不够

1.1 电流测量

产品调试人员反馈冷启动75分钟断开连接一次,后续越来越频繁。在3.3V的源头串入导线,用示波器测量电流,同时检测3.3V电压。5V转3.3V的电源芯片62084最大输出2A电流,图中可以看到电流会冲到3A,且电压会下降到3V以下,确有些过载。

1.2 改供电方式

为实现装置平台的无缝切换,ZX701核心板仅5V电源供电(原自研核心板仅3.3V供电),在转接板上用3.3V升压得到,核心板功耗大约在3W。同时转接板还有两个ETH PHY SR8201F,USB转UARTx4 CH9344L,看门狗,RS232等直接使用3.3V的芯片。将转接板上的3.3V升压5V的61088去掉,核心板5V从底板的5V直接飞线供电,减少62084负载。再次测量3.3V电流约在400mA左右,专供核心板的5V电流约在300mA左右。

长时间测试网口仍然有断连,但是基本固定在75min左右,且电脑的连接图标不再断开

1.3 原设计注意问题整改

ZX核心板上的MCU_3V3是从核心板的5V转出给SWD调试口,不能连接底板的VCC_3.3V,否则可能会形成倒灌。

2 怀疑CPU对PHY的reg有错误的写操作

 寄存器0x00的reg中[9]=1重启自动协商时会断连。

SR8201F的MDIO时序如下。

 抓取MDIO总线上的数据。每隔2.15s会被读取一组,每组内为间隔约640us的两次读寄存器0x01的操作,读出值为0x786d。

 

把MDIO的两根线接入一块有FPGA的板子GPIO上,在FPGA中编写抓取代码 ,在TD软件的Chipscope中触发抓取读写,自制逻辑分析仪。

always @( posedge mdc )
	begin
		mdio_reg  <= mdio;
		s_data[0] <= mdio_reg;
		s_data[31:1] <= s_data[30:0];	
	end
	
always @( posedge mdc )
	begin
  	if (s_data == {23'h7fffff ,2'b01,2'b10,5'h00} )  rd_reg <= 1;//0xFFFF_FEC0
  	else  rd_reg <= 0;
  	
  	if (s_data == {23'h7fffff ,2'b01,2'b01,5'h00} )  wr_reg <=1;//0xFFFF_FEA0
  	else wr_reg <=0; 
  	
  	wr <= wr_reg;
  	rd <= rd_reg;
	end  

抓取的读操作如下,数据与示波器相同。触发抓取一晚上写操作,没有抓到,没有写操作。

 0x01寄存器内容如下:

 

3 怀疑CPU对PHY 有错误的复位行为

抓取复位信号,示波器开启触发模式,在PHY出错时并未抓到复位信号。

4 更换测试工具

更换网口测试工具,建立TCP连接后,定时通讯,两天未发生断链。基本定位在应用软件bug,需要软件进一步检查。软件已定位时间reg存在溢出。

SR8201F的兼容型号YT8512T。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值