QRB5165 硬件设计指南(7)

150 篇文章 7 订阅
25 篇文章 0 订阅


7 电池充电

7.1 SMB1390 电池充电概述

SMB1390 是一款单输入、可编程单节锂离子/锂聚合物电池充电器。SMB1390 是一款二分频电荷泵,可为大容量电池充电提供最高效率,每个 SMB1390 的快速充电能力高达 6 A。该器件可承受 +28V 直流电压、3.6V 至 12V 的宽工作输入范围,并允许消除降压稳压器解决方案中常见的电感器。

7.2 SMB1390电池充电特性

SMB1390 的主要特点是:

  • +2.5 V 至 +5 V 工作输出电压范围(输入电压 = 2 × 输出电压 + 增量)
  • +28 V 耐受输入电压,输出 2.5 V
  • 高效率,恒定 2:1 转换比
  • 可编程开关频率
    • 正常工作模式下为 100 kHz 至 2 MHz
    • 低电流模式下为 12.5 kHz 至 100 kHz
  • 每个器件输出电流高达 6 A,可通过双重实施进行扩展
  • 全集成、低 R DSON FET 开关
  • 双充电(两个 SMB1390 充电)操作与时钟同步,以减少整体电流纹波
  • 保护功能:
    • 可编程 0.5 A 至 3.2 A 输入过流保护 (OVP),每步 100 mA
    • 可编程输出过压保护
    • 慢启动
    • 输入过压锁定
    • 输入欠压锁定
    • 热关断
    • 反向电流保护
    • 模具温度传感引脚
    • 400 µA 典型待机静态电流
    • 1 µA 典型静态关断电流
图片 : 1. SMB1390 框图

8 设计指南

8.1 PCB 设计注意事项

在整个设计过程中以及 PCB 流片之前,请参阅以下检查表。

QRB5165 原理图清单
原理图清单是 QTI 内部参考设计和测试笔记的积累。QTI CE 团队将使用此清单来验证每个客户提交的原理图设计。在进行单独的产品设计时,请考虑其中的每一项。要查看原理图清单,请单击QRB5165 原理图审查清单(80-PV086-111)

QRB5165 布局清单
布局审查清单是 QTI 内部参考设计和测试笔记的积累。QTI CE 团队将使用此清单来验证客户提交的每个布局设计。在进行单独的产品设计时,请考虑其中的每一项。要查看布局审查清单,请单击QRB5165 布局审查清单(80-PV086-112)

8.1.1 关键元件布局

下面列出了 QRB5165 的关键组件布局。

  • 以下组件应放置在靠近其各自 QRB5165 引脚的位置。
  • 在大多数情况下,这些信号应路由至 PCB 第 1 层或第 2 层上的组件。
  • ZQ 和 EBIx_CAL 电阻器与 LPDDR5 PoP 存储器的 VDDQ 电源相连。
  • 所有 REXT 电阻应尽可能靠近 QRB5165 球放置,并且 REXT 布线应短且隔离。

在这里插入图片描述

8.1.2 QRB5165 PDN 规格

有关 PDN 规格,请参阅QRB5165 数据表(80-PV086-1)。

8.1.3 PDN 导轨的 DCR 测量

FTS 降压器是高电流稳压器,使用远程感应来帮助在 PCB 上实现低 DCR PDN 规格。

大容量电容器必须靠近负载放置,并且相应的检测线必须连接到大容量电容器处的域。

高频降压稳压器使用本地检测设置,这意味着降压的大容量电容器仍与其电感器相邻。

LDO 没有任何外部检测节点。应在 PMIC 上的 LDO 引脚和 SDM 上的负载引脚之间测量 LDO 直流电阻。

8.1.4 未使用的引脚端接

下表列出了各种接口中未使用的引脚终端。

笔记
如果未使用 PHY,则需要进行适当的软件更改以保持 PHY 处于关闭状态。

在这里插入图片描述

8.2 PCB 布局指南

8.2.1 PCB平面图推荐(C形)

QRB5165 芯片可以靠近板的顶部放置,PM8150L/PM8150A 位于北侧,PM8250 带 WWAN 位于南侧,与封装引脚图完全对齐。PM8250 和 PM8150L/PM8150A 应放置在 QRB5165 的另一侧。

摄像头连接器可以放置在 PCB 的北侧,显示器连接器可以放置在 PCB 的南侧。去耦电容器放置在 QRB5165 区域对面。UFS 位于 QRB5165 南侧的顶部。下图显示了以毫米为单位的测量值。

图:1. PCB 平面图建议(C 形)

8.2.2 PCB平面图推荐(H型)

QRB5165芯片可以放置在板的中间,PM8150L/PM8150A位于东北侧,PM8250位于东南侧,与封装引脚图完全对齐。PM8250 和 PM8150L/PM8150A 应放置在 QRB5165 的另一侧。

摄像头连接器可以放置在 PCB 的北侧,显示器连接器可以放置在 PCB 的南侧。去耦电容器放置在 SDM 区域对面。UFS 位于 SDM 的东侧。

在这里插入图片描述

图:1. PCB 平面图建议(H 形)

8.2.3 陆侧电容器 (LSC) 禁区布线规则

LSC 禁止区域不得有任何裸露焊盘、走线或过孔

  • LSC 禁止区域下无裸露焊盘
  • LSC 禁止区域下没有暴露的痕迹
  • LSC 禁止区域下没有暴露的过孔

LSC 禁止区域下方的任何焊盘/走线/过孔必须被阻焊层覆盖。LSC 禁止区域下的铜间隙是建议的规则。有关详细信息,请参阅SMT 组装指南(SM80-P0982-1)。

图片 : 1. LSC 禁区路由规则

8.2.4 CXO 和 SLEEP_CLK 路由

所有 CLK 过孔在各层之间过渡时均应完全包围。C 形过孔环应成为所有时钟和 RF 线路转换的标准配置。

QRB5165 器件有两个主时钟输入:CXO 和 SLEEP_CLK。将每个时钟从 PM8250 路由至 QRB5165,同时参考实心 GND 平面。

  • 这些信号应远离敏感网络。
  • 可以控制 PM8250 时钟驱动器输出阻抗以匹配线路阻抗并减轻反射。
  • 当逃离 QRB5165 时,CXO 和 SLEEP_CLK 应立即通孔至内层,以保持与 BGA 扇出其余部分的隔离。

SLEEP_CLK 信号布线指南

下面列出了 SLEEP_CLK 信号布线指南。

  • SLEEP_CLK 缓冲器经过重新设计,具有更慢的边沿速率;因此,更有利于时钟的多目的地路由。
  • 星形路由或菊花链路由都是可以接受的。
    • 如果采用星形走线,请保证两分支长度差不要过大(建议小于30mm)。
    • 如果使用菊花链布线,请确保短截线尽可能短(建议短于 7 毫米)。

8.2.5 SS-USB 和 HS-USB 以及 PHY 布局指南

以下是 SS-USB 和 HS-USB 指南:

  • 外部组件必须位于 USB 连接器附近。
  • 边缘速率相对较快,因此必须将其布线远离敏感电路和信号(RF、音频和 38.4 MHz XO)。
  • 如果 USB 连接器用作充电器输入:
    • USB_VBUS 节点必须使用极宽的走线或子平面路由至 PMIC 器件。
    • 有关详细建议,请参阅PM8150/PM8250 电源管理 IC 设计指南/培训幻灯片(80-PD995-5)。
  • 即使USB连接器不用于充电,USB_VBUS也可以用作USB的电源总线。走线宽度的大小必须根据 VBUS 的长度和预期电流来确定。
    • USB 外设电流对于 SS 可达 900 mA,对于 HS 可达 500 mA。

其他 SS-USB 指南

- 在 USB 连接器和 RF 天线(尤其是 2.4 GHz)之间保持良好的隔离。
- 以 2.4 GHz 频率运行的 RF 信号与 USB0_SS_TX/RX 和 USB1_SS_TX/RX 走线具有尽可能高的隔离度。
- USB SS Tx 交流耦合可以位于线路上的任何位置,但最好放置在靠近源或 ESD/连接器侧的位置,以保持 PCB 上主线路的良好信号完整性 (SI)。
- 使用可靠的 GND 参考在内层中布线差分对,以实现良好的阻抗控制并最大限度地减少不连续性。
- 保持 Tx 对、Rx 对和 DP/DM 之间的隔离以避免串扰。
- DP/DM 线上的 1 kΩ 电阻短线应尽可能短。
- 如果使用核心过孔,则每条信号线使用的核心过孔不得超过两个,以限制短线。
- 如果通过柔性 PCB 发送 USB,请格外小心以满足整个通道插入损耗 (IL) 预算。不良的柔性将违反 USB IL 规范,并可能迫使需要将重驱动器电路添加到 eBOM。

8.2.6 HS-USB DP/DM 线路长度

下图显示了 HS-USB DP/DM 线路长度。

图片 : 1. HS-USB DP/DM 线路长度

8.2.7 USB 3.1/DisplayPort 路由限制

下表列出了 USB 3.1 和 DisplayPort 的路由限制。

在这里插入图片描述

1 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.8 USB 2.0 路由限制

下表列出了 USB 2.0 和 DisplayPort 的路由限制。

在这里插入图片描述

8.2.9 MIPI_CSI D-PHY 路由限制(高达 2.5 Gbps)

为了解释下表,以 500 Mbps/lane 为例。如果电缆插入损耗为 -0.5 dB 或更好,则走线长度需要 ≤ 260 mm。如果电缆插入损耗在-0.5 dB 和-1.0 dB 之间,则走线长度需要≤ 190 mm。如果电缆插入损耗低于-1.0 dB,则需要更换更高质量的柔性电缆,以降低插入损耗。

差分和单端阻抗目标从传统的 100 Ω 差分和 50 Ω 单端目标放宽,以更好地反映超薄 PCB 的设计限制。这已经通过仿真得到验证。

在这里插入图片描述

1 本表中使用的柔性电缆长度是具有指定插入损耗的示例。
2 插入损耗是在 0.5 × 数据速率 (Gbps)(以 GHz 为单位)下测量的。柔性电缆插入损耗可以使用矢量信号分析仪进行测量,或者从柔性电缆数据表中获取。设计上的电缆插入损耗不应比上面列出的更差。
3 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.10 MIPI_DSI D-PHY 路由限制(高达 2.5 Gbps)

为了解释此表,请使用 500 Mbps/通道作为示例。如果电缆插入损耗为 -0.8 dB 或更好,则走线长度需要 ≤ 280 mm。如果电缆插入损耗在-0.8 dB 和-1.4 dB 之间,则走线长度需要≤ 210 mm。如果电缆插入损耗低于-1.4 dB,则需要更换更高质量的柔性电缆,以降低插入损耗。

差分和单端阻抗目标从传统的 100 Ω 差分和 50 Ω 单端目标放宽,以更好地反映超薄 PCB 的设计限制。这已经通过仿真得到验证。
在这里插入图片描述
1 本表中使用的柔性电缆长度是具有指定插入损耗的示例。
2 插入损耗是在 0.5 × 数据速率 (Gbps)(以 GHz 为单位)下测量的。柔性电缆插入损耗可以使用矢量信号分析仪进行测量,或者从柔性电缆数据表中获取。设计上的电缆插入损耗不应比上面列出的更差。
3 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.11 C-PHY(DSI 和 CSI)路由限制

为了解释下表,以 1.5 Gsps/lane 为例。如果电缆插入损耗为-0.9 dB 或更好,则走线长度需要≤ 250 mm。如果电缆插入损耗在-0.9 dB 和-1.8 dB 之间,则走线长度需要≤ 165 mm。如果电缆插入损耗低于-1.8 dB,则需要更换更高质量的柔性电缆,以降低插入损耗。

单端阻抗目标从传统的 50 Ω 单端目标放宽,以更好地反映超薄 PCB 的设计限制。这已通过仿真得到验证。
在这里插入图片描述
1 本表中使用的柔性电缆长度是具有指定插入损耗的示例。
2 插入损耗是在 0.5 × 数据速率(以 Gsps 为单位)下测量的,单位为 GHz。柔性电缆插入损耗可以使用矢量信号分析仪进行测量,或者从柔性电缆数据表中获取。设计上的电缆插入损耗不应比上面列出的更差。
3 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.12 PCIe 布局指南

以下是一般 PCIe 路由指南:

  • 必须保护所有其他敏感/高速信号和电路免受 PCIe 损坏。

  • 必须保护 PCIe 信号免受噪声信号(时钟、SMPS 等)的影响。

  • 请特别注意串扰、ISI、通道内偏移和阻抗不连续性。

  • 对于单板设计,PCIe Tx AC 耦合电容器可以位于线路上的任何位置,但最好放置在靠近源端或接收器侧的位置,以保持 PCB 上主线路的良好 SI。

  • 每条走线都需要与接地层相邻。

  • 为了保持阻抗平衡,请在信号及其返回路径方面尽可能保持正负走线平衡。

  • 避免宽边耦合并将一条信号走线直接布线到另一条信号走线上。

  • 为了降低层间制造差异的可能性,请尽量减少主线路上的层过渡(换句话说,仅在 QRB5165 器件分线和连接器处应用层过渡,以确保主线路上的层过渡最少)。
    附加布局指南

  • 不需要参考时钟、Tx 和 Rx 对之间的走线长度匹配。不需要跟踪蛇纹石。

  • 确保不要交错电容器。这会影响设计的差分完整性并产生 EMI。

  • 对于蛇形线,必须对差分对中的一条线路进行布线,以构成长度增量,然后必须在源头(突破)处对其进行布线——这可确保线路此后保持差分状态。

下表列出了 PCIe 路由限制。
在这里插入图片描述
1 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.13 SDC2外置SD卡布线限制

下表列出了 SDC2 外部 SD 卡布线限制。请注意,总线长度的指导基于 SD 卡 I/O 驱动器功能和每个 SD 卡规格的最大负载电容。如果需要,QRB5165 SDIO 焊盘功能可以驱动更长的总线。

在这里插入图片描述
1 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.14 UFS 路由限制

下表列出了 UFS 路由约束。请注意,没有 Rx 到 Tx 通道间匹配要求。
在这里插入图片描述
1 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

8.2.15 SPMI布局规则

下表列出了 SPMI 路由约束。

在这里插入图片描述
1 PCB 阻抗范围包括制造偏差。PCB 设计人员负责与 PCB 供应商合作,确保每个设计都在公布的阻抗范围内。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将RSA公钥表示成字符串的形式,在进行加密时需要先将其转换成公钥结构体类型,然后再使用mbedtls库提供的接口进行加密。 以下是一个示例代码,假设公钥数据已经以字符串的形式存储在`public_key_str`中: ```c #include "mbedtls/rsa.h" #include "mbedtls/pk.h" // RSA公钥字符串 const char *public_key_str = "-----BEGIN PUBLIC KEY-----\n" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw7Yj9RbqL6pG9Sv3GnZg\n" "h0T3Wz5c0XeX5G8tF/NVbzXUEDRqOZkdt3jv5+0fV5hX6gDZGxhW2k6B9GjPf4XQ\n" "TFYFhCjG5+Y2u4kR7BF0/3KzVcDKMxYmKo7rj2y5OvI5u5zPj6VhKRMoV9JNv5oM\n" "gGpZoF2LwRjuzl7a2MfPZz3+J8+htnLWlVwJyvGn1+sIi3rY9yjV9I6X1hPcqKb8\n" "0KaD0B20qRb4H7rG9yf9FwK7DcC+Zf9jJv4nI8UvRhQ/2zOj9fvy/1aRDN3qQ3Sf\n" "cLJ7fW1dK2RzB5E5XfJZkJwvZVfLHt/1QZGjz5QIg4sB9Xc2zQXmZL+LwN0CF0k+\n" "iwIDAQAB\n" "-----END PUBLIC KEY-----\n"; // 加密函数 int rsa_encrypt(const unsigned char *input, size_t ilen, unsigned char *output, size_t *olen) { int ret = 0; mbedtls_pk_context pk; mbedtls_rsa_context *rsa = NULL; // 初始化公钥结构体 mbedtls_pk_init(&pk); // 解析公钥字符串,填充到公钥结构体 ret = mbedtls_pk_parse_public_key(&pk, (const unsigned char *)public_key_str, strlen(public_key_str) + 1); if (ret != 0) { mbedtls_pk_free(&pk); return ret; } // 获取RSA公钥结构体 rsa = mbedtls_pk_rsa(pk); if (rsa == NULL) { mbedtls_pk_free(&pk); return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } // 进行加密操作 ret = mbedtls_rsa_pkcs1_encrypt(rsa, NULL, NULL, MBEDTLS_RSA_PUBLIC, ilen, input, output); if (ret != 0) { mbedtls_pk_free(&pk); return ret; } // 获取输出数据长度 *olen = mbedtls_rsa_get_len(rsa); // 释放资源 mbedtls_pk_free(&pk); return 0; } // 主函数 int main(void) { unsigned char input[] = "Hello, world!"; unsigned char output[256] = {0}; size_t olen = 0; int ret = 0; // RSA加密 ret = rsa_encrypt(input, sizeof(input) - 1, output, &olen); if (ret != 0) { printf("RSA encrypt error: %d\n", ret); return ret; } // 输出加密结果 printf("Encrypted message: "); for (size_t i = 0; i < olen; i++) { printf("%02X ", output[i]); } printf("\n"); return 0; } ``` 在上述代码中,`rsa_encrypt`函数用于进行RSA加密,输入数据为`input`,输入数据长度为`ilen`,输出数据为`output`,输出数据长度为`olen`。`main`函数中,调用`rsa_encrypt`函数进行加密,将加密结果输出到控制台上。 需要注意的是,在进行加密操作时,需要对输出缓冲区进行合适的大小分配。在上述代码中,输出缓冲区的大小为256字节,这个大小需要根据加密数据的长度和RSA密钥长度来进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值