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

    文章

    7640

    浏览量

    148509
  • usb
    usb
    +关注

    关注

    59

    文章

    7436

    浏览量

    258185
  • 逻辑分析仪
    +关注

    关注

    3

    文章

    200

    浏览量

    22914
  • 驱动开发
    +关注

    关注

    0

    文章

    129

    浏览量

    12010
  • DWC2
    +关注

    关注

    0

    文章

    35

    浏览量

    98
收藏 人收藏

    评论

    相关推荐

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

    本文转自公众号,欢迎关注 基于DWC2USB驱动开发-0x01开篇介绍与新思DWC2 USB2
    的头像 发表于 05-08 18:10 3171次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-0x01开篇介绍与新思<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 6142次阅读
    基于<b class='flag-5'>DWC2</b>的<b class='flag-5'>USB</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b>-0x02 <b class='flag-5'>DWC2</b> <b class='flag-5'>USB</b>2.0 IP功能特征介绍

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

    本文转自公众号欢迎关注 基于DWC2USB驱动开发-数据不能发送问题分析案例 (qq.com)
    的头像 发表于 08-08 09:43 1136次阅读
    基于<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>案例

    逻辑分析仪的原理和应用

    具有 4K(4096 样本)存储器的定时分析仪在 16.4ms 后将停止采集数据,使您不能捕获到第二个数据突发。图2 高分辨率采样在通常的调试工作中,我们采样和保存了长时间没有活动的
    发表于 11-27 08:19

    如何选择逻辑分析仪

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

    基于WIN32的USB逻辑分析仪

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

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

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

    逻辑分析仪年初扫盲

    二进制、八进制、十进制、十六进制等显示数据,用定时图显示信息之间的时序关系。 具有驱动时域仪器的能力,以便复显待测信号的真实波形及有利于故障定位。 具有可靠的毛刺检测能力。 逻辑分析仪
    发表于 01-11 17:10

    逻辑分析仪是什么

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

    USB逻辑分析仪

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

    为什么要使用逻辑分析仪

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

    Agitekservice网络分析仪维修中心揭秘如何正确选择逻辑分析仪

    、操作复杂,对使用者的要求高;  2、与示波器功能差不多;  3、价格昂贵。  其实不然,逻辑分析仪在最近的几年中随着数字电路的广泛使用发展迅速,已经成为很多电子开发公司的必选设备之一
    发表于 03-16 15:57

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

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

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

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

    usb逻辑分析仪怎么用

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