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

一.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>;
        };
    };
		......
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用ChatGPT写论文,只需四步突破论文写作瓶颈!

欢迎关注&#xff0c;为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥&#xff08;yida985&#xff09;交流 地表最强大的高级学术AI专业版已经开放&#xff0c;拥有全球领先的GPT学术科研应用&#xff0c;有兴趣的朋友可…

一键式创建GTest测试平台

适用于C GTest测试平台搭建。直接上python脚本。 #!/usr/bin/env python3 # -*- coding: utf-8 -*-import argparse import os import platform import subprocess from xml.etree import ElementTree as ETdefault_root_path "d:\\test\\UTtest"class DeveloperTe…

文件扫描pdf怎么弄?5个简易高效的文件扫描方法

在繁忙的工作中&#xff0c;我们常常需要将纸质文件快速转换为电子文档&#xff0c;以便于编辑、存储或分享。 无论是合同、报告还是笔记&#xff0c;将这些纸质文件转换为Word格式&#xff0c;不仅能提高工作效率&#xff0c;还能确保信息的安全备份。然而&#xff0c;面对市…

Web3 ETF的主要功能

Web3 ETF的主要功能可以概括为以下几点&#xff0c;Web3 ETF仍是一项新兴投资产品&#xff0c;其长期表现仍存在不确定性。投资者在投资Web3 ETF之前应仔细研究相关风险&#xff0c;并做好充分的风险评估。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xf…

如何爱上阅读及阅读的意义有哪些?

第一个是“情绪决定”&#xff0c;比如看到人家健身&#xff0c;摄影&#xff0c;画画时&#xff0c;自己的肾上腺素开始飙升&#xff0c;马上表示自己也想做&#xff1b; 第二个是“理智决定”&#xff0c;理智决定同样表示想要一样东西&#xff0c;但表示人必定已经想好了为…

[pwn]静态编译

静态编译 1. 栈足够大的情况下 程序在ida打开后&#xff0c;左侧的函数栏目没有红色&#xff08;系统调用的函数&#xff09;&#xff0c;而只有一些静态函数&#xff0c;通常这类文件的大小会必普通的pwn题程序要大得多。 这种静态编译的题没有调用库函数&#xff0c;也就没…

Prometheus + Grafana 监控系统-PrometheusAlert安装与配置指南

背景 Grafana 目前对国内主流的消息通知渠道兼容性一般&#xff0c;因此可以考虑结合使用国产的 PrometheusAlert PrometheusAlert是开源的运维告警中心消息转发系统&#xff0c;支持主流的监控系统Prometheus、Zabbix&#xff0c;日志系统Graylog2&#xff0c;Graylog3、数据…

华为云生态和快速入门

华为云生态 新技术催生新物种&#xff0c;新物种推动新生态 数字技术催生各类运营商去重塑并颠覆各行业的商业模式 从业务层面看&#xff0c;企业始终如一的目标是业务增长和持续盈利&#xff0c;围绕这些目标衍生出提质、增效、降本、安全、创新和合规的业务诉求&#xff0c…

树形结构C语言的实现

一.什么是树&#xff1a; 树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构&#xff0c;所以这种结构多可以递归的表示。经典数据结构中的各种树状图是一种典型的树形结构&#xff1a;一棵树可以简单的表示为根&#xff0c;左子树&#xff0c;右子树。左子树…

Android HWASAN使用与实现原理

一、背景 为了提前检测出Android User Sapce的app或native进程的内存错误问题&#xff0c;帮助研发定位与分析这些问题&#xff0c;基于Android 14版本上对HWASAN做了调研分析。 二、ASAN介绍 HWASAN是在ASAN的基础上做了拓展&#xff0c;因此在介绍HWASAN之前先了解下ASAN.…

电源设计改进稳定度和误差放大器的解决方案

电池&#xff0c;变压器&#xff0c;电源和转换器会不断受到能量损失的影响。结果&#xff0c;负载上的输出电压会降低。温度是性能的另一个关键特征。通过创建误差放大系统&#xff0c;可以在任何类型的负载下稳定输出电压。 稳压二极管稳定器 使用功率晶体管以及电流放大器…

自己动手实现语音识别

声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移。 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础。 语音mfc…

比赛获奖的武林秘籍:02 国奖秘籍-大学生电子计算机类竞赛快速上手的流程,小白必看

比赛获奖的武林秘籍&#xff1a;02 国奖秘籍-大学生电子计算机类竞赛快速上手的流程&#xff0c;小白必看 摘要 本文主要介绍了大学生参加电子计算机类比赛&#xff08;电赛、光电设计大赛、计算机设计大赛、嵌入式芯片与系统设计大赛等比赛&#xff09;的流程和涉及到的知识…

【Portswigger 学院】文件上传

教程和靶场来源于 Burpsuite 的官网 Portswigger&#xff1a;File upload vulnerabilities - PortSwigger 原理与危害 很多网站都有文件上传的功能&#xff0c;比如在个人信息页面允许用户上传图片作为头像。如果网站应用程序对用户上传的文件没有针对文件名、文件类型、文件内…

解决中型组织三个人力资源基础问题的方法

中型企业 (通常在700 - 5000名员工之间)是从中小企业发展起来的&#xff0c;但不称为大型企业。虽然个别市场取得了成功&#xff0c;但到2023年&#xff0c;中端市场经历了一个艰难的结局&#xff0c;受到了更广泛的经济挑战的影响。然而&#xff0c;它仍然具有灵活性和乐观性&…

24_嵌入式系统输入输出设备

目录 GPIO原理与结构 A/D接口基本原理 A/D接口原理 A/D转换的重要指标 D/A接口基本原理 D/A接口原理 DAC的分类 D/A转换器的主要指标 键盘接口基本原理 键盘接口原理 用I/O口实现键盘接口 显示接口基本原理 基本结构和特点 基本原理 LCD种类 市面上出售的LCD的类…

dtpay聚合支付系统在跨境支付场景中技术及业务方案

1 什么是跨境支付 我们从两个维度来分析什么是跨境支付&#xff0c;第一个维度我们从资金流向分析&#xff0c;国内的消费者在境外进行消费对于国内资金流来说这属于资金流出&#xff0c;这是跨境支付的第一种应用场景。第二个场景国外游客在国内进行消费&#xff0c;这属于资…

【ECCV 2024】首个跨模态步态识别框架:Camera-LiDAR Cross-modality Gait Recognition

【ECCV 2024】首个跨模态步态识别框架&#xff1a;Camera-LiDAR Cross-modality Gait Recognition 简介&#xff1a;主要方法&#xff1a;实验结果&#xff1a; 论文&#xff1a;https://arxiv.org/abs/2407.02038 简介&#xff1a; 步态识别是一种重要的生物特征识别技术。基…

【论文阅读】-- Strscope:不规则测量的时间序列数据的多尺度可视化

Stroscope: Multi-Scale Visualization of Irregularly Measured Time-Series Data 摘要1 引言2相关工作2.1&#xff08;大型&#xff09;时间序列数据可视化2.2 事件序列数据可视化2.3 评价 3问题分析3.1 数据集3.2 场景——现状3.3 设计流程3.4 设计原理 4 涟漪图&#xff1a…

十大排序:插入/希尔/选择/堆/冒泡/快速/归并/计数/基数/桶排序 汇总(C语言)

目录 前言非线性时间比较类插入排序(1) 直接插入排序(2) 希尔排序 选择排序(3) 选择排序优化版(4) 堆排序 交换排序(5) 冒泡排序(6) 快速排序hoare版本挖坑版前后指针版非递归版 归并排序(7) 归并排序递归版非递归版 线性时间比较类(8) 计数排序基数排序与桶排序 总结 前言 在计…