RK3576 Type-C 正反插检测与PD协商失败排查指南

电子说

1.4w人已加入

描述

适用场景:RK3576 板子 Type-C 口能充电但跑不了 PD 快充、DP Alt Mode 进不去、正反插识别不稳定、或者连上设备但 USB3 只有 USB2 的速度。

一、Type-C 连接器:不只是"长得对称"

Type-C 看起来正反都能插,但物理对称不等于电气对称。核心秘密在 CC 引脚。

1.1 CC 引脚决定一切

Type-C 24 个引脚里,最关键的是 CC1 和 CC2

引脚 作用 不接会怎样
CC1 检测连接、极性识别、PD 通信 无法检测设备插入
CC2 与 CC1 互为备份(正反插切换) 反面插没反应
VCONN 给有源线缆供电 5A 线缆无法工作
SBU1/SBU2 DP Alt Mode 辅助通道、正反插切换 反面插 DP 没信号

正反插原理:Type-C 的 CC1/CC2 是对称排列的。当 Source 端在 CC1 上拉 Rp 电阻,Sink 端在 CC1 下拉 Rd 电阻时,Source 检测到 CC1 电压下降,就知道设备插上了,并且 CC1 对应的是线缆的 A 面。如果插反了,Source 会在 CC2 上检测到电压下降,自动切换到 B 面。

1.2 Rp/Rd/Ra 电阻:三种角色的物理基础

CC 引脚上的电阻值决定了设备角色:

电阻 典型值 用途 说明
Rp 56k (default) / 22k (1.5A) / 12k (3A) Source 端上拉 阻值决定电流能力
Rd 5.1k +/- 20% Sink 端下拉 Source 通过检测 CC 电压判断连接
Ra 1.0k +/- 20% Accessory 端 音频配件/Debug 配件使用

内核里的实现:tcpm.c 中 Sink 端检测连接时,设置 CC 为 Rd(TYPEC_CC_RD),然后等待 Source 端的 Rp 上拉:

C
// tcpm.c SNK_UNATTACHED 状态
if (tcpm_start_toggling(port, TYPEC_CC_RD)) {
    tcpm_set_state(port, TOGGLING, 0);
}
tcpm_set_cc(port, TYPEC_CC_RD);

1.3 Source/Sink/DRP 三种角色

角色 缩写 说明 RK3576 典型场景
Source SRC 供电方(充电器、Host) 给下游设备供电
Sink SNK 受电方(手机、Peripheral) 板子接充电器
Dual-Role Power DRP 双向可切换 OTG 场景,既可充电又可对外供电

RK3576 的 DRD0 口通常配置为 DRP(Dual-Role Port),DTS 中表现为:

 

// tcpm.c SNK_UNATTACHED 状态if (tcpm_start_toggling(port, TYPEC_CC_RD)) {    tcpm_set_state(port, TOGGLING, 0);}tcpm_set_cc(port, TYPEC_CC_RD);

 

二、TCPM/TCPC:Type-C 协议栈的核心

2.1 架构分层

type-c

RK3576 常见的 CC 控制器有两种:

HUSB311:合泰半导体,I2C 地址 0x4e,驱动 kernel-6.1/drivers/usb/typec/tcpci_husb311.c

FUSB302:Fairchild/ON Semi,I2C 地址 0x22,驱动 kernel-6.1/drivers/usb/typec/fusb302.c

两者都走tcpci.c(TCPCI 标准接口层)向上对接 TCPM。

2.2 TCPM 状态机:连接检测的完整生命周期

板子上的实际路径

 

# 查看 TCPM 端口ls /sys/kernel/debug/usb/# 输出: 23000000.usb  23400000.usb  tcpm-2-004e  devices  xhci# 实时查看 TCPM 日志(插入 Type-C 时观察)cat /sys/kernel/debug/usb/tcpm-2-004e/log | tail -30# 正常输出:# [2024-xx-xx 1000.000] state change SNK_UNATTACHED -> SNK_ATTACH_WAIT# [2024-xx-xx 1000.200] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED# [2024-xx-xx 1000.300] state change SNK_DEBOUNCED -> SNK_ATTACHED# [2024-xx-xx 1000.400] state change SNK_ATTACHED -> SNK_STARTUP# [2024-xx-xx 1000.500] state change SNK_STARTUP -> SNK_DISCOVERY# [2024-xx-xx 1000.600] state change SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES# [2024-xx-xx 1000.700] PD RX: Source Capabilities (3 PDOs)# [2024-xx-xx 1000.800] state change SNK_WAIT_CAPABILITIES -> SNK_NEGOTIATE_CAPABILITIES# [2024-xx-xx 1000.900] state change SNK_NEGOTIATE_CAPABILITIES -> SNK_TRANSITION_SINK# [2024-xx-xx 1001.000] state change SNK_TRANSITION_SINK -> SNK_READY

 

tcpm-2-004e 这个名字就是来自 HUSB311 的 I2C 地址 0x4e。

2.3 各状态的关键动作

状态 内核源码位置 做什么
SNK_UNATTACHED tcpm.c:4261 设置 CC=Rd,开启 Toggle 检测
SNK_ATTACH_WAIT tcpm.c:4278 等待 CC 去抖(tCCDebounce = 100~200ms)
SNK_DEBOUNCED tcpm.c:4294 确认 VBUS 出现,进入 Attached
SNK_ATTACHED tcpm.c:4350 调用tcpm_snk_attach(),记录极性
SNK_STARTUP tcpm.c:4357 初始化 PD 版本、消息 ID
SNK_DISCOVERY tcpm.c:4377 检测 VBUS,设置初始电流限制
SNK_WAIT_CAPABILITIES tcpm.c:4419 开启 PD RX,等待 Source Cap
SNK_NEGOTIATE_CAPABILITIES tcpm.c:4445 发送 Request,协商电压电流
SNK_TRANSITION_SINK tcpm.c:4485 等待 Source 转换 VBUS
SNK_READY tcpm.c:4507 协商完成,发起 Discover Identity

三、USB PD 协议:不只是"快充"

3.1 PD 消息类型

PD 协议在 CC 引脚上传输 BPM(Biphase Mark Code)编码的数据。消息分三大类:

type-c

内核里的定义(kernel-6.1/include/linux/usb/pd.h):

 

/* Control 消息 */enum pd_ctrl_msg_type {    PD_CTRL_GOOD_CRC = 1,    PD_CTRL_ACCEPT = 3,    PD_CTRL_REJECT = 4,    PD_CTRL_PS_RDY = 6,    ...};/* Data 消息 */enum pd_data_msg_type {    PD_DATA_SOURCE_CAP = 1,    PD_DATA_REQUEST = 2,    PD_DATA_SINK_CAP = 4,    ...};

 

3.2 PDO:Power Data Object

Source 端通过 Source Capabilities 消息把自己的能力列成一个清单,每个条目就是一个 PDO。

PDO 类型

类型 编码 含义 示例
Fixed 0 固定电压 5V/3A, 9V/3A, 15V/3A, 20V/3A
Battery 1 电池充电型 3.6~21V, 最大60W
Variable 2 可变电压 3.6~21V, 最大3A
APDO (PPS) 3 可编程电源 3.3~21V, 步进20mV

PDO 结构(32 bit):

 

Bit 31:30 ── PDO Type (00=Fixed, 01=Battery, 10=Variable, 11=APDO)Bit 29    ── Dual-Role Power 支持Bit 28    ── Suspend 支持 / Higher CapabilityBit 27    ── 外部供电Bit 26    ── USB 通信能力Bit 25    ── Data Role Swap 支持Bit 24    ── Unchunked Extended 支持Bit 23    ── FRS 电流能力Bit 22:10 ── 电压 (50mV 步进, 固定 PDO)Bit  9:0  ── 电流 (10mA 步进, 固定 PDO)

 

DTS 中 Sink 端 PDO 配置(来自kernel-6.1/arch/arm64/boot/dts/rockchip/rk3576-test1.dtsi):

 

sink-pdos =    ;  /* 5V/1A */source-pdos =    ;  /* 5V/3A */

 

3.3 RDO:Request Data Object

Sink 端收到 Source Capabilities 后,选择一个最合适的 PDO,用 Request 消息回复。RDO 告诉 Source:"我要第几个 PDO、要多少电流"。

 

Bit 31:29 ── 对象位置(选 Source Cap 中第几个 PDO,从 1 开始)Bit 28    ── GiveBack(允许 Source 降低供电)Bit 27    ── Capability Mismatch(不满足需求)Bit 26    ── USB 通信能力Bit 25    ── No SuspendBit 24:20 ── 操作电流 (10mA 步进)Bit 19:10 ── 最大电流 (10mA 步进)

 

3.4 完整的 PD 协商流程

内核源码中的关键路径(tcpm.c:4445):

 

case SNK_NEGOTIATE_CAPABILITIES:    port->pd_capable = true;    port->hard_reset_count = 0;    ret = tcpm_pd_send_request(port);  // 发送 Request    if (ret < 0) {        tcpm_set_state(port, SNK_WAIT_CAPABILITIES, 0);  // 失败重试    } else {        tcpm_set_state_cond(port, hard_reset_state(port), PD_T_SENDER_RESPONSE);    }

 

四、DisplayPort Alt Mode:Type-C 口输出视频

4.1 Alt Mode 是什么

Alt Mode(Alternate Mode)允许 Type-C 接口复用高速通道来传输非 USB 协议。DP Alt Mode 就是把 USB3 的 TX/RX Lane 借给 DisplayPort 传输视频信号。

SVID(Standard/Vendor ID):DP Alt Mode 的 SVID 固定为 0xff01,这是 USB-IF 分配给 DisplayPort 的标准 ID。

4.2 DP Alt Mode 进入流程

type-c

4.3 Lane 配置:2-lane USB3 + 2-lane DP vs 4-lane DP

DP Alt Mode 定义了多种 Pin Assignment,最常用的是 C/D/E:

Pin Assign USB2 USB3 DP Lane 适用场景
C 正常 2-lane (TX1/RX1) 2-lane (TX0/RX0) USB3 + DP 同时用
D 正常 关闭 4-lane (全部) 纯 DP 输出,最高分辨率
E 正常 关闭 4-lane + SBU 用于 AUX 需要 DP AUX 通道

RK3576 USBDP Combo PHY 的 Lane 映射(来自rk3576-test1.dtsi):

 

&usbdp_phy {    orientation-switch;                  /* 支持正反插切换 */    svid = <0xff01>;                     /* DP Alt Mode SVID */    sbu1-dc-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;  /* SBU 检测 */    sbu2-dc-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;    rockchip,dp-lane-mux = <2 3>;        /* DP Lane 使用 Lane 2 和 Lane 3 */    status = "okay";    port {        usbdp_phy_orientation_switch: endpoint@0 {            remote-endpoint = <&usbc0_orien_sw>;  /* 连接 CC 控制器 */        };        usbdp_phy_dp_altmode_mux: endpoint@1 {            remote-endpoint = <&dp_altmode_mux>;  /* 连接 DP Alt Mode mux */        };    };};

 

rockchip,dp-lane-mux = <2 3> 的含义:DP 使用 USB3 的 Lane 2 和 Lane 3。这样 Lane 0 和 Lane 1 留给 USB3,实现 2-lane USB3 + 2-lane DP。如果不需要 USB3 同时工作,可以配成 4-lane DP,此时 USB3 完全关闭。

内核中的 DP Alt Mode 定义(kernel-6.1/include/linux/usb/typec_dp.h):

 

#define USB_TYPEC_DP_SID    0xff01       /* DP SVID */#define USB_TYPEC_DP_MODE   1            /* Mode Index */enum {    TYPEC_DP_STATE_C = TYPEC_STATE_MODAL,  /* 2-lane DP + 2-lane USB3 */    TYPEC_DP_STATE_D,                       /* 4-lane DP */    TYPEC_DP_STATE_E,                       /* 4-lane DP + SBU AUX */};

 

五、RK3576 Type-C 实现细节

5.1 HUSB311 CC 控制器

HUSB311 是合泰半导体的 Type-C CC 控制器,通过 I2C 接口与 SoC 通信。在 RK3576 上,它作为 TCPCI 兼容设备挂载在 I2C 总线上。

DTS 配置(rk3576-test1.dtsi):

 

&i2c2 {    usbc0: husb311@4e {        compatible = "hynetek,husb311";        reg = <0x4e>;                    /* I2C 地址 0x4e */        interrupt-parent = <&gpio0>;        interrupts = ;  /* 中断引脚 */        vbus-supply = <&vbus5v0_typec>;  /* VBUS 供电控制 */        status = "okay";        port {            usbc0_role_sw: endpoint {                remote-endpoint = <&usb_drd0_role_switch>;  /* 连接到 DWC3 */            };        };        usb_con: connector {            compatible = "usb-c-connector";            power-role = "dual";            try-power-role = "sink";            op-sink-microwatt = <1000000>;            sink-pdos = ;            source-pdos = ;            altmodes {                altmode@0 {                    reg = <0>;                    svid = <0xff01>;     /* DP Alt Mode */                    vdo = <0xffffffff>;  /* 支持所有 Pin Assignment */                };            };            ports {                port@0 {                    usbc0_orien_sw: endpoint {                        remote-endpoint = <&usbdp_phy_orientation_switch>;                    };                };                port@1 {                    dp_altmode_mux: endpoint {                        remote-endpoint = <&usbdp_phy_dp_altmode_mux>;                    };                };            };        };    };};

 

5.2 角色切换链路

 

HUSB311 (CC 检测)    │    ├──→ tcpm-2-004e (TCPM 状态机)    │         │    │         ├──→ usb_role_switch_set_role()  ──→ DWC3 切换 Host/Device    │         │    │         └──→ tcpm_mux_set()  ──→ USBDP PHY 切换 Orientation/DP Mode    │    └──→ vbus5v0_typec regulator  ──→ GPIO 控制 VBUS 开关

 

5.3 SBU GPIO 配置

SBU(Sideband Use)引脚在 DP Alt Mode 下用作 DP AUX 通道,在正常 USB 模式下用于检测正反插。

 

sbu1-dc-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;sbu2-dc-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;

 

SBU1/DC:对应 Type-C 连接器的 A5 引脚

SBU2/DC:对应 Type-C 连接器的 B5 引脚

•正反插时,SBU1 和 SBU2 会互换角色

如果这两个 GPIO 没配或配错,正反插时 DP 信号就会断。

六、调试方法

6.1 TCPM 日志查看

 

# 查看完整的 TCPM 状态机日志cat /sys/kernel/debug/usb/tcpm-2-004e/log | tail -50# 实时监控(插入线缆时观察)watch -n 0.5 'cat /sys/kernel/debug/usb/tcpm-2-004e/log | tail -10'# 过滤特定状态cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "SNK_|SRC_|PD TX|PDO"

 

6.2 端口状态查看

 

# 查看 USB 设备列表cat /sys/kernel/debug/usb/devices# 查看 UDC 状态cat /sys/class/udc/23000000.usb/statecat /sys/class/udc/23000000.usb/current_speed# 查看 regulator 状态ls /sys/kernel/debug/regulator/ | grep -i typeccat /sys/kernel/debug/regulator/regulator_summary | grep -i vbus# 查看 GPIO 状态cat /sys/kernel/debug/gpio | grep -i sbu

 

6.3 PD 协商结果验证

 

# 查看 TCPM 日志中的 PDO 解析结果cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep "PDO"# 输出示例:# PDO 0: type 0, 5000mV, 3000mA# PDO 1: type 0, 9000mV, 3000mA# PDO 2: type 0, 15000mV, 3000mA# 查看 PD 协商是否成功cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "Accept|Reject|PS_RDY|Request"

 

七、实战案例

案例一:PD 协商失败,只能跑 5V/1A

现象:RK3576 板子接 PD 充电器,但电压始终 5V,电流只有 1A,没有上升到 9V 或 15V。

排查过程

 

# 1. 先看 TCPM 日志cat /sys/kernel/debug/usb/tcpm-2-004e/log | tail -50# 输出:# [xxxx] state change SNK_UNATTACHED -> SNK_ATTACH_WAIT# [xxxx] state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED# [xxxx] state change SNK_DEBOUNCED -> SNK_ATTACHED# [xxxx] state change SNK_ATTACHED -> SNK_STARTUP# [xxxx] state change SNK_STARTUP -> SNK_DISCOVERY# [xxxx] state change SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES# [xxxx] PD RX: Source Capabilities (1 PDOs)  ← 注意只有 1 个 PDO# [xxxx] state change SNK_WAIT_CAPABILITIES -> SNK_NEGOTIATE_CAPABILITIES# [xxxx] PDO 0: type 0, 5000mV, 1000mA       ← 充电器只提供 5V/1A# [xxxx] state change SNK_NEGOTIATE_CAPABILITIES -> SNK_TRANSITION_SINK# [xxxx] state change SNK_TRANSITION_SINK -> SNK_READY

 

分析:Source 只提供了一个 5V/1A 的 PDO。说明问题不在 RK3576,而是充电器不支持 PD 协议,或者用了 USB-A to Type-C 线缆(A 口没有 CC 引脚,无法 PD 通信)。

 

# 2. 确认线缆类型# 换一根 C to C 的线,再看日志cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep "PDO"# 正常输出(C to C PD 充电器):# PDO 0: type 0, 5000mV, 3000mA# PDO 1: type 0, 9000mV, 3000mA# PDO 2: type 0, 15000mV, 3000mA

 

根因:用了 USB-A to Type-C 线缆,PD 通信物理上就不可能。换 C to C 线缆后协商正常。

案例二:DP Alt Mode 无法进入,接显示器无信号

现象:Type-C 接显示器扩展坞,USB 识别正常,但 HDMI/DP 输出无信号。

排查过程

 

# 1. 确认 PD 协商成功cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep "SNK_READY"# 有输出 → PD 协商 OK# 2. 检查是否发现了 DP Alt Modecat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "SVID|Alt|Mode|0xff01"# 输出空 → 没有 Discover SVIDs/Discover Modes# 3. 检查 DTS 中 altmodes 配置cat /sys/firmware/devicetree/base/i2c@*/husb311@4e/connector/altmodes/altmode@0/svid# 输出空 → altmode 节点没生效# 4. 检查 DTS 中 orientation-switch 和 SBU GPIOcat /sys/firmware/devicetree/base/phy@2b010000/orientation-switch# 输出空 → 没配 orientation-switchcat /sys/firmware/devicetree/base/phy@2b010000/sbu1-dc-gpios# 输出空 → SBU GPIO 没配

 

根因:DTS 中 usbdp_phy 节点缺少orientation-switch 属性,altmodes 节点可能没被编译进 DTB。

修复

1.确认 DTS 中 usbdp_phy 有orientation-switch;

2.确认usb_con 的altmodes 节点正确

3.确认usbdp_phy 的port endpoint 连接到了 CC 控制器和 DP mux

4.重新编译 DTB 并烧录

案例三:Type-C 正反插检测失败,反着插不识别

现象:Type-C 线正面插正常,反面插无任何反应。

排查过程

 

# 1. 正面插,看 TCPM 日志cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "state change|polarity"# 输出:# state change SNK_UNATTACHED -> SNK_ATTACH_WAIT# state change SNK_ATTACH_WAIT -> SNK_DEBOUNCED# polarity 0                          ← 正常,极性 = 0 (Normal)# 2. 拔出来,反面插cat /sys/kernel/debug/usb/tcpm-2-004e/log | tail -5# 输出:# state change SNK_UNATTACHED -> SNK_UNATTACHED  ← 没有状态变化!# 3. 检查 SBU GPIO 是否配了cat /sys/firmware/devicetree/base/phy@2b010000/sbu1-dc-gpios# 输出空 → SBU GPIO 没配!# 4. 检查 HUSB311 中断是否正常cat /proc/interrupts | grep husb311# 如果中断计数不增加 → 中断没触发

 

根因:usbdp_phy 节点缺少 SBU GPIO 配置,或者 CC 控制器的中断引脚 DTS 没配好。反面插时,CC 引脚的 Rp/Rd 检测需要 HUSB311 报告给 TCPM,如果中断没触发,TCPM 完全不知道有设备插入。

修复

 

&usbdp_phy {    orientation-switch;    sbu1-dc-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;    sbu2-dc-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;};&i2c2 {    husb311@4e {        interrupts = ;  /* 确认引脚正确 */        pinctrl-0 = <&usbc0_int>;                   /* 确认 pinctrl */    };};

 

案例四:DP Alt Mode 进入了但只有 2-lane,分辨率上不去

现象:DP Alt Mode 能进入,显示器能识别,但最高只到 2K@60Hz,上不去 4K。

排查过程

 

# 1. 检查当前 Lane 配置cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "Configure|Pin"# 输出:# Rx VDM cmd ... DP Configure (Pin C)  ← Pin C = 2-lane DP# 2. 检查 DTS 中 dp-lane-mux 配置cat /sys/firmware/devicetree/base/phy@2b010000/rockchip,dp-lane-mux# 输出: 2 3  ← 只配了 2 个 lane# 3. 检查对端 DP Capabilitiescat /sys/kernel/debug/usb/tcpm-2-004e/log | grep "DP Cap"# 确认显示器支持 Pin D (4-lane)

 

根因:DTS 中 rockchip,dp-lane-mux = <2 3> 只配置了 2 个 lane,同时 USB3 占用了另外 2 个 lane。如果不需要 USB3 和 DP 同时工作,需要切换到 4-lane DP 模式。

修复:修改altmode@0 的vdo 值,让对端协商时选择 Pin D(4-lane)而非 Pin C(2-lane):

 

altmode@0 {    reg = <0>;    svid = <0xff01>;    vdo = <0x00001046>;  /* 设置支持 Pin D 的 VDO */};

 

八、调试命令速查表

目标 命令 说明
TCPM 日志 cat /sys/kernel/debug/usb/tcpm-2-004e/log 状态机完整日志
PDO 列表 cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep PDO Source Capabilities 解析
PD 协商 cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep -E "Accept|Reject|Request" 协商过程
VDM 通信 cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep "VDM" Alt Mode 通信
USB 速度 cat /sys/class/udc/23000000.usb/current_speed SuperSpeed/HighSpeed
极性检测 cat /sys/kernel/debug/usb/tcpm-2-004e/log | grep polarity 正反插结果
DTS dr_mode cat /sys/firmware/devicetree/base/usb@23000000/dr_mode OTG/Host/Peripheral
orientation-switch cat /sys/firmware/devicetree/base/phy@2b010000/orientation-switch 正反插使能
SBU GPIO cat /sys/firmware/devicetree/base/phy@2b010000/sbu1-dc-gpios SBU 引脚配置
VBUS regulator ls /sys/kernel/debug/regulator/ | grep vbus VBUS 供电状态
USB 设备树 cat /sys/kernel/debug/usb/devices 已枚举设备
中断检查 cat /proc/interrupts | grep husb311 CC 控制器中断计数

九、总结

Type-C 和 PD 的调试,核心就三句话:

1.CC 引脚是入口:正反插检测、角色识别、PD 通信全走 CC1/CC2,出了问题先看 tcpm-2-004e/log

2.PDO/RDO 是语言:Source 说"我能提供什么"(PDO),Sink 说"我要什么"(RDO),协商不对先看双方 PDO 列表是否匹配

3.Alt Mode 是叠加:在 PD 协商完成(SNK_READY)之后才启动,需要 orientation-switch、SBU GPIO、dp-lane-mux 三个配置都对

审核编辑 黄宇

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分