RK3562 Linux-5.10 内核HUSB311 Type-C 控制器芯片调试记录

[复制链接]
发表于 2025-7-21 21:07:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
HUSB311 是一款支持 USB Type-C 协议的芯片(常见于充电管理或端口控制),其 CC(Configuration Channel)逻辑 是 USB Type-C 接口的焦点功能之一,主要用于毗连检测、方向识别、功率协商和模式配置。以下是其具体工作原理和作用:
1. CC 通道的作用

USB Type-C 接口的 CC 引脚主要有以下功能:
(1) 毗连检测(Attachment Detection)


  •         通过检测 CC 引脚上的电压或电阻,判断装备是否插入(如 Source 检测 Sink 的存在)。
  •         比方:当 USB-C 线插入时,Sink 端会通过 CC 引脚下拉电阻(Rd)告知 Source 端装备已毗连。
(2) 方向识别(Orientation Detection)


  •         Type-C 接口是对称的,CC1 和 CC2 用于判断插头的方向(正插或反插)。
  •         主机(Source)会检测哪个 CC 引脚被拉低,从而确定数据通道(TX/RX)的映射关系。
(3) 功率协商(Power Negotiation)


  •         通过 CC 引脚通信,Source 和 Sink 可以协商供电能力(如 5V/3A、9V/2A 等)。
  •         支持 USB PD(Power Delivery)协议时,CC 线用于传输 PD 报文。
(4) 模式切换(Alternate Mode)


  •         通过 CC 通信,装备可以切换到非 USB 模式(如 DisplayPort、Thunderbolt 等)。
 
2. HUSB311 的 CC 逻辑工作原理

HUSB311 作为 USB Type-C 控制器,其 CC 逻辑主要涉及以下部分:
(1) 默认状态检测


  •         Source 端(如充电器):

    •                 通过 CC 引脚上拉电阻(Rp)提供电压(通常 5V)。
    •                 检测 CC 引脚是否被拉低(由 Sink 端的 Rd 电阻实现)。
           
  •         Sink 端(如手机):

    •                 通过 CC 引脚下拉电阻(Rd,通常 5.1kΩ)告知 Source 装备已毗连。
           
(2) 方向识别


  •         HUSB311 会监测 CC1 和 CC2:

    •                 假如 CC1 被拉低 → 正插(TX/RX 方向 A)。
    •                 假如 CC2 被拉低 → 反插(TX/RX 方向 B)。
           
(3) 电流能力检测


  •         Source 端通过不同的 Rp 阻值体现供电能力:

    •                 Rp = 56kΩ → 默认 500mA/900mA(USB 2.0/3.0)。
    •                 Rp = 22kΩ → 1.5A。
    •                 Rp = 10kΩ → 3A(USB PD 可能启用)。
           
(4) USB PD 通信(可选)


  •         假如支持 USB PD,HUSB311 会通过 CC 引脚进行双向半双工通信(BMC 编码),协商电压/电流(如 5V→9V→20V)。
  硬件原理:
1. type C 接口:

1.1  HUSB311芯片, CC1和CC2 逻辑接到HUSB311 上面, 接I2C0组和USBCC_INT_L

 USBCC_INT_L 接到GPIO0_A6 做为CC的逻辑停止


1.2  TYPEC_DP/TYPEC_DM

接到ARM 端的USB3.0  OTG上面


1.2  TYPEC_RX1P/TYPEC_RX1N 和 TYPEC_TX1P/TYPEC_TX1N

接到ARM端的这里来

上面为这个typeC 接口的硬件原理:

软件dts部分参考如下的来:
参考rk文档docs\cn\Common\USB\Rockchip_RK356x_Developer_Guide_USB_CN.pdf
Linux-5.10 RK3566 Type-C USB 2.0 + FUSB302 DTS 配置
  1. /* 配置 FUSB302 芯片硬件信息*/
  2. &i2c0 {                         /* 根据 FUSB302 I2C 实际硬件设计进行修改 */
  3.         //usbc0: fusb302@22 {
  4.         usbc0: husb311@4e {
  5.                 //compatible = "fcs,fusb302";
  6.                 //reg = <0x22>;
  7.                 compatible = "hynetek,husb311";
  8.                 reg = <0x4e>;
  9.                 //interrupt-parent = <&gpix>; /* 根据 FUSB302 INT 实际连接的 GPIO 进行修改 */
  10.                 interrupt-parent = <&gpio0>;
  11.                 //interrupts = <RK_PXX IRQ_TYPE_LEVEL_LOW>;
  12.                 interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
  13.                 pinctrl-names = "default";
  14.                 pinctrl-0 = <&usbc0_int>;
  15.                 //vbus-supply = <&vbus_typec>;
  16.                 status = "okay";
  17.                 ports {
  18.                         #address-cells = <1>;
  19.                         #size-cells = <0>;
  20.                         /* 用于关联 USB 控制器,实现 USB 角色切换的功能 */
  21.                         port@0 {
  22.                                 reg = <0>;
  23.                                         usbc0_role_sw: endpoint@0 {
  24.                                                 remote-endpoint = <&dwc3_role_switch>;
  25.                                         };
  26.                         };
  27.                 };
  28.                 usb_con: connector { /* 用于描述 PD 协议相关信息 */
  29.                         compatible = "usb-c-connector";
  30.                         label = "USB-C";
  31.                         data-role = "dual";
  32.                         power-role = "dual";
  33.                         try-power-role = "sink";
  34.                         op-sink-microwatt = <1000000>;
  35.                         sink-pdos =
  36.                                 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
  37.                         source-pdos =
  38.                                 <PDO_FIXED(5000, 1500, PDO_FIXED_USB_COMM)>;
  39.                 };
  40.         };
  41. };
复制代码
别的一部分的dts, 留意实际硬件是没有Vbus的硬件逻辑控制的,所以软件上面我们并没有做相应的逻辑配置.
  1. /* 使能 Type-C0 USB2.0 PHY */
  2. //&u2phy0 {
  3. //        status = "okay";
  4. //};
  5. //&u2phy0_otg {
  6. //        rockchip,dis-u2-susphy; /* 可选项,用于关闭 PHY 动态进入 suspend 的功能,提高USB 热拔插稳定性 */
  7. //        status = "okay";
  8. //};
  9. /* 使能 USB3 控制器父节点 */
  10. &usbdrd30 {
  11.         status = "okay";
  12. };
  13. /* 使能 USB3 控制器子节点 */
  14. &usbdrd_dwc3 {
  15.         status = "okay";
  16.         usb-role-switch; /* 用于使能 DWC3 驱动注册 USB Role Switch 回调函数 */
  17.         port {
  18.                 #address-cells = <1>;
  19.                 #size-cells = <0>;
  20.                 dwc3_role_switch: endpoint@0 {
  21.                         reg = <0>;
  22.                         remote-endpoint = <&usbc0_role_sw>; /* 关联 FUSB302,实现USB 角色切换的功能 */
  23.                 };
  24.         };
  25. };
  26. &pinctrl {
  27.         usb-typec {
  28.                 usbc0_int: usbc0-int { /* 配置 FUSB302 驱动的中断 gpio pinctrl */
  29.                         //rockchip,pins = <X RK_PXX RK_FUNC_GPIO &pcfg_pull_up>;
  30.                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
  31.                 };
  32.                 //vcc5v0_typec0_en: vcc5v0-typec0-en { /* 配置 FUSB302 驱动的 VBUS gpio pinctrl */
  33.                 //        rockchip,pins = <X RK_PXX RK_FUNC_GPIO &pcfg_pull_none>;
  34.                 //};
  35.         };
  36. };
复制代码
增长dts代码完毕,可以直接查看编译后的文件,看看修改前后的对比即可发生是否有更新到.
kernel/arch/arm64/boot/dts/rockchip$ vim -d  .rk3562-idd1.dtb.dts.tmp .rk3562-idd1.dtb.dts.tmp.bak1

补充扩展Vbus的USB VBUS 配置:
Rockchip 平台的 USB VBUS 控制电路,主要有三种方案[3]: 1. 使用 GPIO 控制电源稳压芯片输出 Vbus 5V 供电电压; 2. 使用 PMIC(如RK809/RK817/RK818)输出 Vbus 5V 供电电压; 3. 开机后,硬件直接输出 Vbus 5V 供电电压,不需要软件控制,一样平常用于 USB Host 接口;

 RK356x SDK 主要使用的是第 1 种方案,以 RK3568 EVB 的 OTG 口和 HOST 口的 VBUS 配置为例
  1. vcc5v0_host: vcc5v0-host-regulator {
  2.         compatible = "regulator-fixed";
  3.         enable-active-high;
  4.         gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
  5.         pinctrl-names = "default";
  6.         pinctrl-0 = <&vcc5v0_host_en>;
  7.         regulator-name = "vcc5v0_host";
  8.         regulator-always-on; /* Host Vbus 为常供电,所以配置属性为 regulator-always-on */
  9. };
  10. vcc5v0_otg: vcc5v0-otg-regulator {
  11.         compatible = "regulator-fixed";
  12.         enable-active-high;
  13.         gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
  14.         pinctrl-names = "default";
  15.         pinctrl-0 = <&vcc5v0_otg_en>;
  16.         regulator-name = "vcc5v0_otg";
  17. };
  18. &pinctrl {
  19.         usb {
  20.                 vcc5v0_host_en: vcc5v0-host-en {
  21.                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
  22.                 };
  23.                 vcc5v0_otg_en: vcc5v0-otg-en {
  24.                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
  25.                 };
  26.         };
  27. };
  28. /* 注意: host 控制 vbus 的属性是 phy-supply */
  29. &u2phy0_host {
  30.         phy-supply = <&vcc5v0_host>;
  31.         status = "okay";
  32. };
  33. /* 注意: otg 控制 vbus 的属性是 vbus-supply */
  34. &u2phy0_otg {
  35.         vbus-supply = <&vcc5v0_otg>;
  36.         status = "okay";
  37. };
  38. &u2phy1_host {
  39.         phy-supply = <&vcc5v0_host>;
  40.         status = "okay";
  41. };
  42. &u2phy1_otg {
  43.         phy-supply = <&vcc5v0_host>;
  44.         status = "okay";
  45. };
复制代码
2025-06-03 扩展:

USB 3.0 和 Type-C 是两种不同的技术尺度,但它们可以结合使用。以下是关于 尺度 USB 3.0 Type-C 的具体说明:
1. USB 3.0(USB 3.1 Gen 1)


  •         速度:理论传输速率为 5 Gbps(约 500MB/s)。
  •         供电:最大供电能力为 5V/900mA(4.5W),但在某些模式下可支持更高功率(如 USB BC 1.2)。
  •         兼容性:向下兼容 USB 2.0(480 Mbps)和 USB 1.1。
2. Type-C 接口


  •         物理特性:

    •                 对称设计(正反可插)。
    •                 24 针脚,支持更多功能(如高速数据传输、视频输出、高功率充电等)。
           
  •         多功能性:支持 USB 协议、DisplayPort、Thunderbolt 3/4、PD 快充等(具体取决于装备实现)。
3. USB 3.0 Type-C 的组合


  •         当 Type-C 接口与 USB 3.0 协议结合时:

    •                 速度:保持 USB 3.0 的 5 Gbps 速率。
    •                 供电:支持 USB Power Delivery(PD)时,功率可提升至 最高 100W(20V/5A)。
    •                 兼容性:需留意线缆和装备的兼容性:

      •                         使用 Type-C 接口的 USB 3.0 线缆(通常标有 "SuperSpeed" 或 "SS" 标识)。
      •                         若毗连 USB 2.0 装备,速度会降至 USB 2.0 尺度。
                     
           
4. 常见应用场景


  •         智能手机、平板电脑(如部分安卓装备)。
  •         笔记本电脑(如 MacBook、部分 Windows 笔记本的 USB-C 接口)。
  •         外置硬盘、扩展坞(需确认是否支持 USB 3.0 速率)。
5. 留意事项


  •         标识识别:

    •                 USB 3.0 Type-C 通常标有 "SS"(SuperSpeed) 或 "USB 3.0"。
    •                 纯 Type-C 接口(无 USB 3.0 支持)可能仅支持 USB 2.0 速度。
           
  •         线缆选择:

    •                 如需全功能(如高速传输+PD 充电),需选择支持 USB 3.0 的 Type-C 线缆。
           
  •         协议差异:

    •                 USB 3.0 Type-C ≠ USB 3.1/3.2 Gen 2(10 Gbps)或 Thunderbolt 3(40 Gbps)。
           

总结:

尺度 USB 3.0 Type-C 提供了 5 Gbps 传输速度 和 Type-C 接口的便利性(如正反插、高功率充电),但实际性能取决于装备和支持的协议。假如需要更高速度(如 10 Gbps 或 40 Gbps),需确认装备是否支持 USB 3.1/3.2 或 Thunderbolt。

USB Type-C 引脚全定义(24 Pin)

来张尺度的TypeC 引脚分组具体功能

 Type-C 接口采用对称设计,上下两排引脚(A/B 面)功能镜像分列,支持正反插。以下是完整引脚功能表:


PinA 面(正插)B 面(反插)功能说明A1, B1GNDGND接地(信号和电源参考地)A2, B2SSTXp1 (TX1+)SSRXp1 (RX1+)USB 3.0 差分信号对(SuperSpeed 发送/吸收正极,A2/B2 镜像对称)A3, B3SSTXn1 (TX1-)SSRXn1 (RX1-)USB 3.0 差分信号对(SuperSpeed 发送/吸收负极)A4, B4VBUSVBUS电源输入/输出(默认 5V,支持 USB PD 时可协商更高电压)A5, B5CC1 (Configuration)CC2 (Configuration)配置通道(检测插入方向、模式协商、PD 通信)A6, B6Dp1 (USB 2.0)Dp1 (USB 2.0)USB 2.0 差分信号对(D+)(与 USB 3.0 独立)A7, B7Dn1 (USB 2.0)Dn1 (USB 2.0)USB 2.0 差分信号对(D-)A8, B8SBU1 (Sideband Use)SBU2 (Sideband Use)边带信号(用于 Alternate Mode 如 DisplayPort 的辅助通道)A9, B9VBUSVBUS电源输入/输出(同 A4/B4)A10,B10SSRXn2 (RX2-)SSTXn2 (TX2-)USB 3.0 第二差分信号对(仅在全双工或更高版本中启用,USB 3.0 通常不用)A11,B11SSRXp2 (RX2+)SSTXp2 (TX2+)USB 3.0 第二差分信号对(同上)A12,B12GNDGND接地
USB 3.0 Type-C 的关键信号说明


  •         SuperSpeed (USB 3.0) 信号

    •                 TX1±/RX1±(A2/A3/B2/B3):
                      用于 USB 3.0 的 单向差分信号对(5 Gbps)。

      •                         正插时:A2/A3 为发送(TX),B2/B3 为吸收(RX)。
      •                         反插时:B2/B3 为发送(TX),A2/A3 为吸收(RX)。
      •                         *注:USB 3.0 仅需单组 TX/RX,第二组(TX2/RX2)在 USB 3.1 Gen 2 或更高版本中使用。*
                     
           
  •         USB 2.0 信号

    •                 Dp1/Dn1(A6/A7/B6/B7):
                      独立于 USB 3.0,兼容 USB 2.0 装备(480 Mbps)。
           
  •         CC(Configuration Channel)

    •                 CC1/CC2(A5/B5):

      •                         检测插入方向(正插/反插)。
      •                         协商电源协议(USB PD)。
      •                         确定当前模式(如 USB 3.0、Alternate Mode)。
                     
           
  •         VBUS(电源)

    •                 默认输出 5V,通过 PD 协议可支持 5V/9V/12V/15V/20V(最高 100W)。
           
  •         SBU(边带信号)

    •                 用于 Alternate Mode(如 DisplayPort 的 AUX 通道)
    •                
           
 2025-06-04 更新(调试记录回放):

Step1: 
        根据原理图检查一下HUSB311的SDA和SCL是否接反大概I2C0是否外挂其他外设(有些外设会没上电大概初始化会拉低i2c总线),可以先用i2cdump -y -f 0 0x4e雷同的指令确认一下i2c通讯是否正常。
answer:
  1. -->原理上看起来没多大的问题,I2C0这组上面就这两个设备,PMIC RK809 的I2C都是通讯正常的.
  2. [root@RK3562:/]# i2cdetect y -r 0
  3. 0 1 2 3 4 5 6 7 8 9 a b c d e f
  4. 00: - -- -- -- -- -- -- --
  5. 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6. 20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  7. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  8. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  10. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  11. 70: -- -- -- -- -- -- -- --
  12. [root@RK3562:/]#
  13. [root@RK3562:/]# i2cdump -y -f 0 0x4e
  14. No size specified (using byte-data access)
  15. 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
  16. 00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  17. 10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  18. 20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  19. 30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  20. 40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  21. 50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  22. 60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  23. 70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  24. 80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  25. 90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  26. a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  27. b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  28. c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  29. d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  30. e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  31. f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
  32. [root@RK3562:/]#
  33. 0x20 这个地址是rk809的
复制代码
i2cdetect 是一个 Linux 命令行工具,用于扫描 I2C(Inter-Integrated Circuit)总线 上毗连的装备,并列出它们的地点 
  1. 命令        用途
  2. i2cdetect -l        列出所有 I2C 总线
  3. i2cdetect -y <总线>        扫描指定总线上的设备
  4. i2cget -y <总线> <地址>        读取设备某个寄存器
  5. i2cdump -y <总线> <地址>        查看设备所有寄存器
  6. i2ctransfer        自定义 I2C 通信
  7. 如果你的设备未被检测到,可以尝试:
  8.     检查电路连接(SCL/SDA 是否接对,是否有上拉电阻)。
  9.     确认设备地址是否正确(查阅芯片手册)。
  10.     尝试 i2cdetect -y -r 强制扫描。
  11. 常见问题
  12. 1. 为什么有些地址显示 UU?
  13.     表示该地址已被内核驱动占用(如 RTC、EEPROM 等),普通扫描无法访问。
  14.     可通过 dmesg | grep i2c 查看哪些驱动占用了地址。
  15. 2. 为什么有些设备没被检测到?
  16.     设备未正确连接(检查电路、上拉电阻)。
  17.     设备需要初始化(某些传感器需要先发送激活命令)。
  18.     I2C 地址冲突(多个设备使用相同地址)。
  19. 3. 如何查看某个设备的详细信息?
  20. 使用 i2cdump 查看设备寄存器:
  21. i2cdump -y <总线编号> <设备地址>
  22. 或使用 i2ctransfer 进行自定义读写:
  23. i2ctransfer -y <总线编号> w1@<设备地址> <寄存器地址> r1
复制代码
Step2: 
        确认HUSB311的VDD供电是否符合要求,丈量一下其电压是否满足,对比我司公版的原理图,VDD和VCON的电压要求是不一样的,分别是3.3V 和 5V,你们这样的接法,我不确定HUSB311是否正常
answer:

       上图为husb311的框架图,这个typeC 不用OTG功能, 我们别的一个案子RK3576也都用到这颗husb311在电路上也都是同样的设计 ,所以一开始没怀疑到VDD和VCONN的供电引起i2c的不通,后面经同事的提示重新排查到VDD是没有引接上3.3V,通过飞线方式供3.3v过来即可解决。

其时的硬件原理,VCC 3.3V实测是没有电压的 

装备供电飞线方式解决i2c通讯问题后,
  1. 关于反馈的USB仅识别为USB2.0的问题,请把usbdrd_dwc3 节点的以下属性删掉,这几个属性会限制DWC3控制器为高速,并且Bypass掉USB3.0 PHY的初始化等配置。
  2. +    maximum-speed = "high-speed";
  3. +    phys = <&u2phy_otg>;
  4. +    phy-names = "usb2-phy";
  5. combphy_pu 节点检查一下是否为 okay;
  6. RK3562使用 naneng combphy 支持USB3.0 和 PCIE共用,不支持Type-C正反插,仅支持USB3.0 Type-A接口。对于Type-C接口如果没有调试正反插,可能会存在仅有一侧识别到USB3.0一侧识别为USB2.0的问题。
  7. 需要支持正反插还需要硬件上贴切换开关,如GMA340等3.0信号的Switch,建议提供一下原理图和dts.tmp文件。
  8. GMA340 DataSheet:https://www.grandmicro.com.cn/web/uploads/file/20240322/Bdd208Z9ut0HCv17hx166o2ngO8L011l.pdf
  9. 看硬件上接线应该有一半能识别到USB3.0,另一半识别不到;你那边实测是什么效果。可以接入USB3.0设备后执行以下指令并提供完整Log。
  10. cat /sys/kernel/debug/usb/tcpm/0-004e/log
  11. 标准参考设计见附件截图,需要外挂Switch切换开关。
  12.     文件 tcpm-0-004e-infor.txt tcpm-0-004e-infor.txt 已添加
  13. 这节点没cat到信息cat /sys/kernel/debug/usb/tcpm/0-004e/log
  14. 只获取到如下的(tcpm-0-004e-infor.txt)
  15. cat /sys/kernel/debug/usb/tcpm-0-004e
  16. 需要外挂Switch切换开关
  17. -->我们硬件上不需要type-C USB 3.0 的OTG功能,理论上是不需要这个Switch切换开关吧
  18. ----
  19. 不需要USB3.0的话那就保持把#17的配置加回去吧,配置成Only USB2.0模式即可。
  20. ----
  21. 补充一下需求,是需要type-C USB 3.0功能,但不需要type-C USB 3.0 OTG 功能。现在的问题是usb 3.0 都还没通,速率还没达到
  22. Switch开关才能实现正反插识别到USB3.0的模式,OTG模式只需要HUSB311这种CC逻辑芯片即可检测到。
  23. 前者是数据通信转换芯片,后者是Type-C接口CC状态检测芯片,两个的功能是不同的。
  24. ----
  25. 按照我们目前硬件的设计 type-C USB 3.0接口,目前只是有 TYPEC_RX1P/ TYPEC_RX1N, TYPEC_DP/TYPEC_DM , VBUS5V0_TYPEC,TYPEC_CC2/TYPEC_CC1
  26. 硬件上只是少了一路USB30_OTG_SSTXN/USB30_OTG_SSTXP,理论上只要DTS配置好, type-C只要尝试正插或者反插一面入PC电脑端,应该是存在一面(正插或者反插)是可以识别上usb 3.0的,
  27. RK3562是做从设备,PC端的usb是3.0的
  28.     文件 UsbTreeView_x64.zip UsbTreeView_x64.zip 已添加
  29. 是的,理论上有一侧能识别到USB3.0,可以用附件工具看看是否能识别到SuperSpeed。
  30. 不是,识别到High-Speed了,Device maximum Speed代表设备RK3562可以支持USB3.0,Port maximum Speed代表当前端口可以支持的最大速度(不过USB3.0作主机是双总线)是高速,Device Connection Speed才是真实的速度。
  31. 你正反插试试看看,接PC不行的话就试试接外设。
  32. -->有尝试正反插验证,貌似还不行。我们这个rk3562的供电就是靠这个usb 5V供过来的,没法试接其他usb外设来测试。所以只能通过读 /sys/bus/usb/devices/usb*/speed 速率
  33. 好像反插usb一面,所获取的数据不一样
  34. Port maximum Speed : SuperSpeed
  35. Device maximum Speed : SuperSpeed
  36. Device Connection Speed : SuperSpeed
复制代码
 这里是HOST模式下总线1和总线2的速度,假如USB3.0的总线注册上的话,需要根据xhci驱动分配给当前端口的总线号进行判断,估计不是usb1和usb2,具体结合串口日志日志,比方:

cat /sys/class/udc/fe500000.usb/current_speed
这个节点读出来的是super-speed 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表