RK3568平台(USB篇)TYPE-C接口与PD协议

news2024/11/17 21:53:28

一.TYPE-C接口简介

type-c 插座:

type-c 插头: 

type-c 线缆:

type-c 接口定义之插座:

 type-c 硬件原理图:

VBUS:供电引脚,用于传输电源电压,一般为5V或12V。

GND:地引脚,用于传输电路的地电位。

CC1/CC2:通信引脚,用于传输USB Type-C设备之间的通信信号。

SBU1/SBU2:辅助引脚,用于传输辅助功能,如音频、视频等。

D+/D-:数据引脚,用于传输USB数据。

USB 2.0 DM/DP:USB 2.0数据引脚,用于传输USB 2.0数据。

USB 3.0 TX1+/TX1-/TX2+/TX2-:USB 3.0数据引脚,用于传输USB 3.0数据。

USB 3.0 RX1+/RX1-/RX2+/RX2-:USB 3.0数据引脚,用于接收USB 3.0数据。

Configuration Channel (CC):配置通道引脚,用于传输配置信息。

VCONN:供电引脚,用于传输USB PD协议中的VCONN电压,一般为5V或12V。

其中,CC1/CC2、VBUS、GND和Configuration Channel (CC)引脚是所有USB Type-C接口必备的引脚,其它引脚根据设备的需求和功能进行配置。需要注意的是,USB Type-C接口支持双向传输,因此需要对引脚进行正确的配置,才能实现功能的正常传输。

二.设备树DTS配置

控制器配置:USB3.0 OTG0(DWC3/xHCI)控制器设备节点usbdrd3_0

usbdrd3_0: usbdrd3_0 {
        compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3";
        clocks = <&cru 419>, <&cru 418>,
            <&cru 417>;
        clock-names = "ref", "suspend", "bus";
        #address-cells = <2>;
        #size-cells = <2>;
        ranges;
        status = "disabled";

        usbdrd_dwc3_0: usb@fc000000 {
        compatible = "snps,dwc3";
        reg = <0x0 0xfc000000 0x0 0x400000>;
        interrupts = <0 220 4>;
        power-domains = <&power 31>;
        resets = <&cru 676>;
        reset-names = "usb3-otg";
        dr_mode = "otg";
        phys = <&u2phy0_otg>, <&usbdp_phy0_u3>;
        phy-names = "usb2-phy", "usb3-phy";
        phy_type = "utmi_wide";
        linux,sysdev_is_parent;
        snps,dis_enblslpm_quirk;
        snps,dis-u1-entry-quirk;
        snps,dis-u2-entry-quirk;
        snps,dis-u2-freeclk-exists-quirk;
        snps,dis-del-phy-power-chg-quirk;
        snps,dis-tx-ipgap-linecheck-quirk;
        snps,parkmode-disable-ss-quirk;
        quirk-skip-phy-init;
        status = "disabled";
    };
 };

PHY配置:

USB2.0 OTG PHY0设备节点u2phy0_otg.

u2phy0: usb2-phy@0 {
    compatible = "rockchip,rk3588-usb2phy";
    reg = <0x0 0x10>;
    interrupts = <0 393 4>;
    resets = <&cru 786503>, <&cru 1160>;
    reset-names = "phy", "apb";
    clocks = <&cru 693>;
    clock-names = "phyclk";
    clock-output-names = "usb480m_phy0";
    #clock-cells = <0>;
    rockchip,usbctrl-grf = <&usb_grf>;
    status = "disabled";

    u2phy0_otg: otg-port {
    #phy-cells = <0>;
    status = "disabled";
    };
};

usbdp_phy0_u3:

 usbdp_phy0: phy@fed80000 {
    compatible = "rockchip,rk3588-usbdp-phy";
    reg = <0x0 0xfed80000 0x0 0x10000>;
    rockchip,u2phy-grf = <&usb2phy0_grf>;
    rockchip,usb-grf = <&usb_grf>;
    rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
    rockchip,vo-grf = <&vo0_grf>;
    clocks = <&cru 694>,
        <&cru 639>,
        <&cru 617>,
        <&u2phy0>;
    clock-names = "refclk", "immortal", "pclk", "utmi";
    resets = <&cru 40>,
        <&cru 41>,
        <&cru 42>,
        <&cru 43>,
        <&cru 1154>;
    reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
    status = "disabled";

    usbdp_phy0_dp: dp-port {
    #phy-cells = <0>;
    status = "disabled";
    };

    usbdp_phy0_u3: u3-port {
    #phy-cells = <0>;
    status = "disabled";
    };
 };

三.TYPE-C DP协议

PD协议是一种充电协议,全称为“USB Power Delivery(USB PD)”,是由USB-IF(USB Implementers Forum)组织制定的一种标准协议。它是一种基于USB接口的快速充电技术,可以实现高达100W的最大功率输出,可以为各种设备提供更快、更高效、更安全的充电方式。

PD协议是指Power Delivery功率传输协议,它已经成为现代充电技术中的重要一环,尤其是随着Type-C接口成为电子设备主流接口后,PD协议的重要性变得更加明显。而PD协议的充电器输出必须采用Type-C接口输出,这是因为Type-C接口支持许多生活中常见的USB-A接口所没有的新特性。例如,Type-C接口可以正反插入,最大功率可达100W的电力传输,传输速度可达10Gbps的最高速度等。

fusb302是可编程的USB Type-C控制器,支持识别各种USB设备和对应的工作状态,且支持最高100W的PD协议。

其具有一下主要特征:

具备自主DRP切换的双重角色功能;

根据已连接的设备选择作为Host(主机)或Device(设备)进行连接;

通过软件配置为Host(主机)、Device(设备)或双重角色;

支持USB功率传递(PD)2.0:

 

与供应商沟通,原厂前期只提供了mcu的代码没提供linux的,因此这里的PD协议芯片需要烧写mcu固件。

fusb302配置:

fusb302上有IIC接口,SOC能通过IIC读取fusb302的寄存器信息。

&i2c4 {
    clock-frequency = <400000>;
    i2c-scl-rising-time-ns = <160>;
    i2c-scl-falling-time-ns = <30>;
    status = "okay";

    fusb0: typec-portc@22 {
        compatible = "fcs,fusb302";
        reg = <0x22>;
        interrupt-parent = <&gpio1>;
        interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&fusb0_int>;
        vbus-supply = <&vbus_typec>;
        status = "okay";
    };
};

&pinctrl {
    fusb30x {
        fusb0_int: fusb0-int {
                rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
        };
    };
		......
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1884373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

类与对象(3)

1.首先我们先介绍一下 赋值重载 我们来举个例子来实现一下 赋值重载也叫赋值拷贝 void operator(const Date& d){//赋值拷贝 是拷贝给一个已经赋值好的对象 也叫赋值重载cout << "赋值重载" << endl;year d.year;month d.month;day d.day;} 如果…

Linux 高级编程——线程控制

线程控制&#xff1a;互斥与同步 概念&#xff1a; 互斥 》在多线程中对临界资源的排他性访问。 互斥机制 》互斥锁 》保证临界资源的 访问控制。 pthread_mutex_t mutex; 互斥锁类型 互斥锁变量 内核对象 框架&#xff1a; 定义互斥锁 》初始化锁 》加…

uniapp中如何进行微信小程序的分包

思路&#xff1a;在uniapp中对微信小程序进行分包&#xff0c;和原生微信小程序进行分包的操作基本上没区别&#xff0c;主要就是在pages.json中进行配置。 如图&#xff0c;我新增了一个包diver-page 此时需要在pages.json中的subPackages数组中新增一项 root代表这个包的根…

“论单元测试方法及应用”精选范文,软考高级论文,系统架构设计师论文

论文真题 1、概要叙述你参与管理和开发的软件项目,以吸你所担的主要工作。 2、结给你参与管理和开发的软件项目&#xff0c;简要叙述单元测试中静态测试和动态测试方法的基本内容。 3、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…

Sourcecodester Fantastic Blog CMS v1.0 SQL 注入漏洞(CVE-2022-28512)

前言 CVE-2022-28512 是一个存在于 Sourcecodester Fantastic Blog CMS v1.0 中的 SQL 注入漏洞。攻击者可以通过 "/fantasticblog/single.php" 中的 id 参数注入恶意 SQL 查询&#xff0c;从而获得对数据库的未经授权的访问和控制。 漏洞详细信息 漏洞描述: 该漏…

QML学习——Qt Quick Extras Examples 1.4(八)

Qt Quick Extras Examples 阅读官方的源码然后尝试做了下 01 A car dashboard 样例演示&#xff1a; 说明&#xff1a; ValueSource组件控制数值相关的动画&#xff0c;例如图中数值的变化&#xff1b;TurnIndicator组件是控制左右方向灯的闪烁和背景&#xff0c;里面使用…

深入解析HDFS:定义、架构、原理、应用场景及常用命令

引言 Hadoop分布式文件系统&#xff08;HDFS&#xff0c;Hadoop Distributed File System&#xff09;是Hadoop框架的核心组件之一&#xff0c;它提供了高可靠性、高可用性和高吞吐量的大规模数据存储和管理能力。本文将从HDFS的定义、架构、工作原理、应用场景以及常用…

【Kotlin】Kotlin 基础语法指南

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

vue项目手机录音

手机实现录音功能&#xff0c;安卓和苹果都可。功能&#xff0c;点击开始录制录音后&#xff0c;随时可以停止录音&#xff0c;如果不点击停止最多录制15秒。 页面结构 <!--音频--> <div class"audio-box"><audio id"audioPlayer"controlsc…

excel修改批量一列单价的金额并保留1位小数

1.打开表格&#xff0c;要把单价金额变成现在的两倍&#xff0c;数据如下&#xff1a; 2.把单价这一列粘贴到一个新的sheet页面&#xff0c;在B2单元格输入公式&#xff1a;A2*2 然后按enter回车键,这时候吧鼠标放到B2单元格右下角&#xff0c;会出现一个黑色的小加号&#xf…

泰国火出圈的slots游戏联动本土网盟广告推广优势

泰国火出圈的slots游戏联动本土网盟广告推广优势 在泰国&#xff0c;Slots游戏凭借其独特的魅力和吸引力&#xff0c;迅速成为玩家们的热门选择。然而&#xff0c;要在竞争激烈的市场中脱颖而出&#xff0c;推广策略显得尤为重要。本土网盟广告以其独特的优势&#xff0c;为Sl…

制氢厂氢气泄漏安全监测:氢气传感器守护“氢”安全

随着全球能源结构的转型和清洁能源的需求日益增长&#xff0c;氢能作为一种高效、清洁的能源载体&#xff0c;受到了广泛关注。制氢厂作为氢能产业的重要组成部分&#xff0c;其安全问题也日益凸显。在制氢过程中&#xff0c;氢气泄漏是潜在的安全隐患之一&#xff0c;因此&…

数据结构/作业/2024/7/11

1.在堆区申请两个长度为32的空间&#xff0c;实现两个字符串的比较【非库函数实现】 #include <stdio.h> #include <stdlib.h> void input(char*p); void my_strcmp(char *p1,char *p2); int main(int argc, const char *argv[]) {//申请内存空间32个字节 char *p…

vue3 elementplus Springboot 课程购买系统案例源码

系统演示 项目获取地址 Springboot vue3 elementplus 课程购买系统案例源码 附带系统演示&#xff0c;环境搭建教程,开发工具 技术栈:SpringBoot Vue3 ElementPlus MybatisPlus 开发工具:idea 后端构建工具:Maven 前端构建工具:vite 运行环境:Windows Jdk版本:1.8 Nod…

javaweb(四)——过滤器与监听器

文章目录 过滤器Filter基本概念滤波器的分类: 时域和频域表示滤波器类型1. 低通滤波器(Low-Pass Filter)2. 高通滤波器(High-Pass Filter)3. 带通滤波器(Band-Pass Filter)4. 带阻滤波器(Band-Stop Filter) 滤波器参数1. 通带频率(Passband Frequency)2. 截止频率(Cutoff Frequ…

Cesium与Three相机同步(3)

Cesium与Three融合的案例demo <!DOCTYPE html> <html lang"en" class"dark"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content&q…

【论文阅读】-- M4:面向可视化的时间序列数据聚合

M4: A Visualization-Oriented Time Series Data Aggregation 摘要1 引言2. 查询重写3.时间序列可视化4. 数据缩减运算符4.1 面向可视化的数据聚合4.2 M4聚合4.3 聚合相关的像素错误4.4 M4 上限 5. 时间序列数据缩减6. 评估6.1 真实世界时间序列数据6.2 查询执行性能6.3 可视化…

ByLabel标签打印系统有人用过吗,哪些打小票的软件比较方便?热敏打印机

刚接触小票机热敏打印机ZDesigner ZD888-203dpi ZPL&#xff0c;看网上的说明是要用ZPL打印机协议&#xff0c;一时学不会。 看一个小票机个子小小的&#xff0c;费用要一二千元&#xff0c;外国人真会赚钱。 斑马打印机&#xff0c;网上说的是中文要转换成图片&#xff0c;或者…

ChatGPT 官方发布桌面端,向所有用户免费开放

Open AI 官方已经发布了适用于 macOS 的 ChatGPT 桌面端应用。 此前&#xff0c;该应用一直处于测试阶段&#xff0c;仅 Plus 付费订阅用户可以使用。 目前已面向所有用户开放&#xff0c;所有 Mac 用户均可免费下载使用。 我们可以访问官网下载安装包&#xff1a;https://op…

【netty系列-04】反应堆模式的种类和具体实现

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…