RK3588平台开发系列讲解(硬件篇-功能外设2)
USB2.0/USB3.0 电路
RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。 这些控制器与PHY的内部复用图如下:

USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出

USB 3.0 的 SS信号(5Gbps)与 DP1.4复用,采用USB/DP的Combo PHY;信号如下图的红色方框内。

由于USB3.0的OTG和USB2.0的OTG是同一个USB3.0的控制器,因此USB3.0和USB2.0的OTG 只能同时做Device或者做HOST,不能USB3.0的OTG做HOST,USB2.0的OTG做Device或者USB3.0 的OTG做Device而USB2.0的OTG做HOST。 USB3.0 Controller0 和 DP1.4 Controller0 通过USB3.0/DP1.4的Combo PHY0组合成一个完整的TYPEC 口,此Combo PHY支持Display Alter mode,Lane0 和 Lane2 在 DP mode 下做TX,在 USB mode下做RX;
TX和RX共享Lane0和Lane2。 USB3.0 Controller1 和 DP1.4 Controller1 组成的 TYPEC1 口同 TYPEC0 口一样,不再做重复描述。 这个USB3.0/DP1.4 的 Combo PHY 支持Lane间的交换(SWAP),因此一个TYPEC标准口可以有如 下五种的配置:
配置一:Type-C 4Lane(with DP function)

配置二:USB2.0 OTG+DP 4Lane(Swap OFF)

配置三:USB2.0 OTG+DP 4Lane(Swap ON)

配置四:USB3.0 OTG0+DP 2Lane(Swap OFF)

配置五:USB3.0 OTG+DP 2Lane(Swap ON)

USB2.0/USB3.0 设计中请注意:
TYPEC0_USB20_OTG_DP/TYPEC0_USB20_OTG_DM 是系统固件烧写口,如果产品不用这个接 口,在调试与生产过程中必须要预留此接口,不然会无法调试及生产烧写固件;
TYPEC_USB20_OTG0_ID内部有大概200Kohm电阻上拉到USB20_AVDD_1V8;
TYPEC_USB20_VBUSDET是OTG和Device模式检测脚,高有效,2.7-3.3V,TYP:3.0V,建议 在管脚放置一个100nF电容。
OTG模式可以设置以下三种模式:
OTG模式:根据ID脚状态自动切换是device模式或HOST模式,ID高为device,ID拉低为HOST, 处在device 模式时,还会判断VBUSDET脚是否为高(大于2.3V),如果为高,才会拉高DP, 开始枚举;
Device 模式:设置为这个模式时,无需ID脚,只需判断VBUSDET脚是否为高(大于2.3V), 如果为高,才会拉高DP,开始枚举;
HOST模式:设置为这个模式时,ID和VBUSDET状态都无需要关心。(如果产品只需要HOST 模式,但是由于仅TYPEC0_USB20_OTG_DP/ TYPEC0_USB20_OTG_DM是系统固件烧写口,在 调试与生产过程都需要用这个口,烧写和 adb 调试时,需要设置成 device 模式,因此 TYPEC_USB20/1_VBUSDET 信号也必须接)。

TYPEC 协议要求在SSTXP/N线上增加100nF交流耦合电容,AC耦合电容建议使用0201封装,更低 的ESR和ESL,也可减少线路上的阻抗变化。 TYPEC 座子所有信号都必须增加ESD器件,布局时靠近USB连接器放置。对于SSTXP/N,SSRXP/N 信号,ESD寄生电容不得超过0.3pF。
SATA3.0 电路
RK3588 芯片拥有3个SATA3.0控制器,和PCIe以及USB3_HOST2控制器复用PIPE PHY0/1/2,具体路 径请见下图。
支持SATA PM功能,每个port可以支持5个设备;
支持SATA 1.5Gb/s,SATA 3.0Gb/s,SATA 6.0Gb/s speeds ;
支持eSATA。

SATA设计中请注意:
Slot设计时,外围电路及电源需要满足Spec要求;
PCIE20_SATA30_0/1_AVDD_0V85/PCIE20_SATA30_USB30_2_AVDD_0V85 这三路 0.85V 合并 供电,需放置1x10uF+1x1uF +1x100nF去耦电容, 布局时,靠近RK3588管脚放置。 PCIE20_SATA30_0/1_AVDD_1V8/PCIE20_SATA30_USB30_2_AVDD_1V8 三路 1.8V 合并供电, 需放置2x1uF +1x100nF去耦电容,布局时,靠近RK3588管脚放置。
SATA接口的TXP/N,RXP/N 差分信号上串接的10nF交流耦合电容,AC耦合电容建议使用0201 封装,更低的ESR和ESL,也可减少线路上的阻抗变化;
eSATA接口座子所有信号都必须增加ESD器件,布局时靠近座子放置,ESD寄生电容不得超过0.4pF
PCIe2.0
Slot设计时,外围电路及电源需要满足Spec要求;
PCIe2.0接口的TXP/N差分信号上串接的100nF交流耦合电容,AC耦合电容建议使用0201封装, 更低的ESR和ESL,也可减少线路上的阻抗变化;
PCIE2.0_CLKREQn和PCIE20_WAKEn必须使用功能脚,不能用GPIO替代,特别说明:选择时, 必须都是选择_M0或_M1或_M2,不能一个_M0一个_M1;
PCIE20_PERSTn 可以选择功能脚也可以使用 GPIO 替代,选择功能脚时,必须和 PCIE20_CLKREQn 和PCIE20_WAKEn同一组_Mx;
标准的PCIe Slot:PCIE20_CLKREQn,PCIE20_WAKEn,PCIE20_PERSTn为3.3V 电平;
PCIE20_PRSNT为Add In Card插入检测脚,可以使用GPIO;
使用PCIE20功能时候,复用的SATA/USB30功能无法使用,SATA/USB30对应的功能模块说明;
PCIe2.0 功能模块没有使用,数据线 PCIE20_TXP/TXN、PCIE20_RXP/RXN 和参考时钟线 PCIE20_REFCLKP/ REFCLKN 悬空即可;
PCIe2.0接口匹配设计推荐如下表所示:

PCIE30_REF_CLKP/N 仅支持输入:
需要提供HCSL电平时钟输入;
必须提供满足PCIe3.0以上的时钟要求;
RK3588 PCIe3.0 X4Lane RC 模式。兼容PCIe3.0 X2Lane RC 模式,
兼容PCIe3.0 X1Lane RC 模式。
相关文章:
RK3588平台开发系列讲解(硬件篇-功能外设2)
USB2.0/USB3.0 电路 RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。 这些控制器与PHY的内部复用图如下: USB3.0 OTG0 控制器支持SS/H…...
SpringBoot学习记录
SpringBoot是用于加速Spring开发的。 我们先来看看如何使用SpringBoot来创建一个基于Web的程序,可以发现相较于SpringMVC其有巨大改变。 3.开发控制器类 GetMapping("/{id}")public String getById(PathVariable Integer id){System.out.println("…...
财富池指标--通达信顾比均线实战指标免费源码
顾比均线是由两组均线构成,短期组为3、5、8、10、12、15。长期组为:30、35、40、45、50、60。顾比均线由澳大利亚的投资家戴若-顾比先生发明,因此叫顾比线。 顾比均线可以广泛运用于股票、期货和外汇交易中,只要是能运用K线图的投…...
AJAX(一):初识AJAX、http协议、配置环境、发送AJAX请求、请求时的问题
一、什么是AJAX 1.AJAX 就是异步的JS和XML。通过AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 2.XML 可扩展标记语言。XML被设计用来传输和…...
idea常用的快捷键总结:
idea常用的快捷键总结: Ctrl相关的: Ctrl F 在当前文件进行文本查找 (必备) Ctrl R 在当前文件进行文本替换 (必备) Ctrl Z 撤销 (必备) Ctrl Y 删除光标所在行 或 删除选中的…...
LeetCode 热题 100 题解(一):哈希部分
《LeetCode热题 100》 经过了两个多月,终于刷完了代码随想录的题目,现在准备开始挑战热题一百了,接下来我会将自己的题解以博客的形式同步发到力扣和 c 站,希望在接下来的征程中与大家共勉! 题组一:哈希 题…...
C语言 | qsort()函数使用
目录: 1.qsort介绍 2.使⽤qsort函数 排序 整型数据 3.使⽤qsort函数 排序 结构体数据 4. qsort函数的模拟实现冒泡排序 qsort()函数 是一个 C语言编译器函数库自带的排序函数, 它可以对指定数组(包括字符串,二维数组&#x…...
继承的特点 | java
/*Java中继承的特点:A:Java只支持单继承,不支持多继承。 B:Java支持多层继承(继承体系),间接继承 */class Father(){} class Mother(){}class son extends Father(){} // 正确 class son2 extends Father , Mother {} // 不正确 1. Java只支持单继承…...
6、jenkins项目构建类型-项目类型介绍
文章目录 一、自由风格项目1、拉取代码2、演示改动代码后的持续集成二、Maven项目构建三、Pipeline流水线项目构建(☆☆☆)1、Pipeline简介(1)概念(2)使用Pipeline有以下好处(3)如何创建Jenkins Pipeline呢?2、安装Pipeline插件3、Pipeline语法快速入门(1)Declarati…...
指针函数的应用——找出哪些学生有不及格的科目
下面的代码实现了以下功能: 定义了一个函数 getFailStudent,它接收一个指向整数数组的指针,并遍历该数组,查找是否存在不及格的成绩。如果找到了不及格的成绩,就返回指向不及格学生所在行的指针;否则返回 N…...
【微服务】Gateway
文章目录 1.基本介绍官方文档:https://springdoc.cn/spring-cloud-gateway/#gateway-starter1.引出网关2.使用网关服务架构图3.Gateway网络拓扑图(背下来)4.Gateway特性5.Gateway核心组件1.基本介绍2.断言3.过滤 6.Gateway工作机制 2.搭建Gat…...
王道C语言督学营OJ课后习题(课时14)
#include <stdio.h> #include <stdlib.h>typedef char BiElemType; typedef struct BiTNode{BiElemType c;//c 就是书籍上的 datastruct BiTNode *lchild;struct BiTNode *rchild; }BiTNode,*BiTree;//tag 结构体是辅助队列使用的 typedef struct tag{BiTree p;//树…...
Filter、Listener、AJAX
Filter 概念:Filter 表示过滤器,是JavaWeb三大组件(Servlet、Filter、 Listener)之一。 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感…...
FastAPI+React全栈开发04 FastAPI概述
Chapter01 Web Development and the FARM Stack 04 Introducing FastAPI FastAPIReact全栈开发04 FastAPI概述 Now we will look at a brief introducion to the Python REST-API framework of choice - FastAPI. Additionally, we will go over a high-level overview of t…...
基于单片机的二维码LCD显示控制设计
**单片机设计介绍,基于单片机的二维码LCD显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的二维码LCD显示控制设计是一个集硬件、软件与通信于一体的综合性项目。此设计的主要目标是实现单片机…...
Ubuntu20.04下PCL安装,查看,卸载等操作
Ubuntu20.04下PCL安装,查看,卸载等操作 项目来源 https://github.com/PointCloudLibrary/pclhttps://pointclouds.org/documentation/modules.htmlhttps://pcl.readthedocs.io/projects/tutorials/en/master/ 点云学习: https://github.c…...
Android TargetSdkVersion 30 安装失败 resources.arsc 需要对齐且不压缩。
公司项目,之前targetSDKVersion一直是29,近期小米平台上架强制要求升到30,但是这个版本在android12上安装失败,我用adb命令安装,报错如下图 adb: failed to install c: Program Files (x86)(0A_knight\MorkSpace \Home…...
c++20中的jthread再谈
一、介绍 在前面的C20新功能中,简单的介绍过相关的std::jthread的应用。当时觉得它虽然比std::thread方便一些,但也没有多大的优势。可在后面的不断的学习中,发现std::jthread的使用上确实有优秀之处,相对于传统的线程编程&#…...
Fastgpt 无法启动或启动后无法正常使用的讨论(启动失败、用户未注册等问题这里)
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! FastGPT是非常实用并且相当厉害的个人知识库AI项目,项目是非常…...
Rust 实战练习 - 7. FFI, 库, ABI, libc
FFI FFI(Foreign Function Interface)是这样一种机制:用一种编程语言写的程序能调用另一种编程语言写的函数(routines)。 调用约定,类型表示和名称修饰这三者的统称,即是众所周知的应用二进制…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
