0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DWC2的USB驱动开发-0x0E 使用逻辑分析仪分析ULPI数据

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-06-07 16:56 次阅读

本文转自公众号,欢迎关注

基于DWC2的USB驱动开发-0x0D PHY寄存器读写代码编写与测试 (qq.com)

1.1 前言

前面我们详细讲解了ULPI接口,一般情况不需要关注ULPI总线接口上的信号。但有时候我们需要进行底层问题的分析,此时就需要抓取ULPI总线上的数据来进行分析,此时就需要使用逻辑分析进行信号抓取,这个时候一个好用的逻辑分析仪就非常重要了。

我们使用Acute的TL4234B逻辑分析仪抓取ULPI总线数据,该逻辑分析仪支持ULPI解码非常方便。

该逻辑分析仪的使用参考https://mp.weixin.qq.com/s/bCdgCNsGPbYjSzjv8VJyRA。

测试代码见https://mp.weixin.qq.com/s/r64ayPKzJtLxpUvsmZYvWg

设置好相应的信号之后可以按照如下添加ULPI协议分析通道

image.png

1.2 寄存器

读寄存器的标准时序如下

image.png

我们实际抓到的读0寄存器,波形如下

可以看到分析仪自动解析出了过程

对应测试代码

res = hw_dwc2_read_phyreg(0x00,&regval,1000);

if(res != 0)

{

    return res;

}

usb_hal_info("[VIDL]:0x%x\\r\\n",regval);

image.png

我们详细分析下如下过程

image.png

(1) 此时DIR为低,总线所有权归LINK所有,但是LINK没有数据要发送,所以驱动数据线全0。

(2) 此时软件进行读立即寄存器0的操作,对应的命令字节为0xC0,发送到总线上,但是NXT被PHY拉为低,说明PHY没有接收,LINK只能继续重发

(3) 重发0xC0,此时NXT被PHY拉高,说明被PHY接收了。

注意DIR和NXT应该在CLK的上升沿处跳变,但是由于信号一致性问题CLK不是很完美,所以逻辑分析抓出来的CLK信号有一些偏移,占空比也不是50%.

(4) DIR低到高之后的CLK上升沿开始是turnaround

(5) 该CLK上升沿,LINK锁存PHY发出的数据0x24

(6) DIR由高到低之后的CLK上升沿开始是turnaround

(7) 回到空闲状态,DIR为0,LINK驱动总线为0

1.3 写寄存器

写寄存器理想的时序如下

image.png

写0x16寄存器为0x55

对应代码为

hw_dwc2_write_phyreg(0x16,0x55,1000);

if(res != 0)

{

    return res;

}

我们实际抓到的波形如下

可以看到分析仪自动解析出了过程

image.png

我们详细分析下如下过程

image.png

(1) 此时DIR为低,总线所有权归LINK所有,但是LINK没有数据要发送,所以驱动数据线全0。

(2) 此时软件进行写立即寄存器0x16的操作,对应的命令字节为0x96,发送到总线上,但是NXT被PHY拉为低,说明PHY没有接收,LINK只能继续重发

(3) LINK重发0x96,此时NXT被PHY拉高,说明被PHY接收了。

(4) LINK发送数据0x55,NXT为高说明PHY接收了,于是下一个周期LINK 拉高STP结束。

同样要注意DIR和NXT应该在CLK的上升沿处跳变,但是由于信号一致性问题CLK不是很完美,所以逻辑分析抓出来的CLK信号有一些偏移,占空比也不是50%.

1.4 数据收发

同样可以抓到USB数据传输时的内容进行分析

如下,不再详细分析

image.png

寄存器读写和USB数据传输的抓包数据可以参考

链接:https://pan.baidu.com/s/1oOGlc8sbEywoEmRsgEGtvw?pwd=4j92

提取码:4j92

1.5 总结

工欲善其事必先利其器,所以在USB开发中工具很重要,示波器,逻辑分析仪,USB协议分析仪等都不可少。在底层问题分析时缺少有力工具时很难进一步分析,本文分享了ULPI抓包分析,实际抓包波形因为信号质量问题可能没有那么理想,所以信号的冗余度也是很重要的,很多时候问题可能就是时序问题。
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8441

    浏览量

    150704
  • usb
    usb
    +关注

    关注

    60

    文章

    7872

    浏览量

    263656
  • 逻辑分析仪
    +关注

    关注

    3

    文章

    214

    浏览量

    23121
  • 驱动开发
    +关注

    关注

    0

    文章

    130

    浏览量

    12059
  • DWC2
    +关注

    关注

    0

    文章

    35

    浏览量

    118
收藏 人收藏

    评论

    相关推荐

    基于DWC2USB驱动开发-0x01开篇介绍与新思DWC2 USB2.0控制器简介

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-0x01开篇介绍与新思DWC2
    的头像 发表于 05-08 18:10 4453次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x</b>01开篇介绍与新思<b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0控制器简介

    基于DWC2USB驱动开发-0x02 DWC2 USB2.0 IP功能特征介绍

    DWC2即新思(Synopsys )的DesignWare® Cores USB 2.0 HiSpeed On-The-Go (OTG)控制器IP,被大量使用。从linux的内核源码驱动中就带
    的头像 发表于 05-09 10:09 8897次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x</b>02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介绍

    基于DWC2USB驱动开发-设备类驱动框架

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-设备类驱动框架 (qq.com) 一.前言 从软件顶层,从
    的头像 发表于 07-16 15:56 1251次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-设备类<b class='flag-5'>驱动</b>框架

    基于DWC2USB驱动开发-发送相关的寄存器DMA寄存器详解

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-发送相关的寄存器DMA寄存器详解 (qq.com) 前言 如下寄存器DIEPxxx,对应IN端点,和发送
    的头像 发表于 07-16 16:42 1547次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-发送相关的寄存器DMA寄存器详解

    基于DWC2USB驱动开发-数据不能发送问题分析案例

    本文转自公众号欢迎关注 基于DWC2USB驱动开发-数据不能发送问题分析案例 (qq.com)
    的头像 发表于 08-08 09:43 2047次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>数据</b>不能发送问题<b class='flag-5'>分析</b>案例

    如何选择逻辑分析仪

    够大大提高工作效率,节约用户宝贵的时间逻辑分析仪是利用时钟驱动从测试设备上采集和显示数字信号的仪器,最主要作用在于数字电路的分析由于逻辑
    发表于 04-26 14:25

    基于WIN32的USB逻辑分析仪

    是在这里看到,设备量0x004。USB设备indentified提前(以及输出的一部分,在这里看到)是一个存储钥匙插入到同一台机器上。如果驱动程序安装不正确,逻辑
    发表于 07-18 15:40

    巧用逻辑分析仪 助力单片机开发

    ,也是非常成功的设计。 USBEE AX是一款集示波器,逻辑分析仪,方波发生器,频率计,数据记录计等十几种功能的USB虚拟仪器,主要适合单片机等常见低压数字系统的
    发表于 03-22 13:35

    逻辑分析仪是什么

    前后时间发生偏差时,通信误码率就会很高,导致电子系统工作异常。在工作机制方面,虚拟逻辑分析仪主要完成数据的高速采集,再利用USB接口将数据
    发表于 08-23 16:31

    USB逻辑分析仪

    、脉冲宽度、外部或丢失的数据等。除了拥有多路通道以外,逻辑分析仪还具有支持数字设计检验与故障查找等重要功能。LAB6052和LAB7504 USB
    发表于 07-05 09:21

    为什么要使用逻辑分析仪

    低于门槛电压时为逻辑0。图1.3为示波器与逻辑分析仪的测量结果比较。图1.3 示波器与逻辑分析仪
    发表于 10-13 09:23

    什么情况需要使用逻辑分析仪

    做嵌入式驱动开发,会使用逻辑分析仪是必不可少的技能。什么情况需要使用逻辑分析仪当你编写
    发表于 08-06 08:41

    kingst虚拟逻辑分析仪使用详解

    逻辑分析仪是利用时钟从测试设备上采集和显示数字信号的仪器,最主要作用在于时序判定和分析逻辑分析仪不像示波器那样有许多电压等级,而是只显示两
    发表于 11-17 15:54 52次下载

    基于DWC2USB驱动开发-0x0A ULPI接口同步模式介绍

    同步模式是ULPI必须支持的且主要的模式,内容比较多,对于软件开发人员来说重点关注下总线时序,即数据是如何交互的,这样必要的的时候可以使用逻辑分析仪
    的头像 发表于 06-04 15:35 3739次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-<b class='flag-5'>0x0</b>A <b class='flag-5'>ULPI</b>接口同步模式介绍

    usb逻辑分析仪怎么用

    usb逻辑分析仪怎么用 USB逻辑分析仪是一种用于分析
    的头像 发表于 09-19 16:03 2336次阅读