givemefreeeeeee 2024-06-20 17:32 采纳率: 25%
浏览 11

关于以太网PHY芯片寄存器测试

关于以太网PHY芯片寄存器测试的问题,
待测百兆的以太网PHY芯片的所有寄存器,以dp83848为例,MAC选择了GD32F307,移植官方的固件库和例程,修改了部分代码,关闭自协商设置了10M全双工模式,之后调用了例程里面定义的PHY寄存器读函数,读取了所有寄存器的值(0-31),寄存器值是通过watch看的,然后通过设置的模式(工作速率、双工模式,RMII接口)和手册寄存器描述的比较,验证了读取的值是否正确。
想问上述过程符合芯片测试的寄存器遍历吗,不太了解寄存器遍历的概念,想问一下思路

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-20 17:32
    关注

    引自免费微信小程序:皆我百晓生

    您在进行以太网PHY芯片寄存器的测试时,所采取的方法基本上是正确的,符合一般的芯片测试流程。这里,我可以为您解释一下寄存器遍历的概念以及相应的测试思路。

    寄存器遍历的概念

    寄存器遍历通常指的是对芯片内部的所有寄存器进行逐个访问和读取,确认每个寄存器的值符合预期,以及功能正常。这对于芯片测试和验证非常重要,以确保芯片能够按照设计规格正确工作。

    测试思路

    1. 准备阶段

      • 熟悉以太网PHY芯片的数据手册,了解各个寄存器的功能、默认值和设置方法。
      • 根据您的硬件环境(如GD32F307 MCU和dp83848以太网PHY芯片),搭建测试环境。
      • 准备测试工具,如调试器、逻辑分析仪等。
    2. 修改配置

      • 正如您所做的,关闭自协商,设置固定的工作速率(如10M全双工模式)和接口模式(如RMII接口)。这是为了确保测试环境下的稳定性。
    3. 寄存器读取

      • 使用例程中的PHY寄存器读函数读取所有寄存器的值。这一步非常关键,因为您需要通过读取每个寄存器的值来验证其配置是否正确。
      • 使用watch或其他调试工具观察寄存器的值。确保这些值与您在数据手册中设置的参数相匹配。
    4. 验证与比较

      • 将读取的寄存器值与数据手册中的描述进行比较。如果所有寄存器的值都与手册描述相符,那么可以初步判断该芯片在相应设置下工作正常。
      • 根据芯片的实际表现(如数据传输、连接状态等)进一步验证寄存器的配置是否正确。例如,如果芯片在设置的模式下能够稳定传输数据,那么可以认为相关的寄存器配置是正确的。
    5. 测试其他功能

      • 除了简单的寄存器值比较外,还应测试芯片的其他功能,如中断、数据包处理等,以确保芯片在所有方面的表现都正常。
    6. 记录与报告

      • 记录测试过程中的所有结果和细节。
      • 编写测试报告,对测试结果进行总结和评估。如果发现问题,提出解决方案或建议。

    基于上述思路,您目前进行的测试工作基本上覆盖了寄存器遍历的主要内容。只要确保所有寄存器的值都符合预期,并且芯片在相应设置下表现正常,就可以认为您的测试是有效的。如果有任何疑虑或不确定的地方,建议查阅数据手册或参考其他相关资料进行进一步验证。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月20日

悬赏问题

  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥20 python忆阻器数字识别
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api