当前位置: 首页 > news >正文

深入解析TI TPS65987D:USB PD 3.0、FRS、死电池供电与BC1.2实战设计

1. 项目概述与核心价值

在如今这个Type-C接口一统天下的时代,我们手里的笔记本、手机、扩展坞,其背后高效、智能的电源与数据管理,很大程度上都依赖于一颗名为USB PD控制器的“大脑”。今天,我想以一个资深硬件工程师的视角,和大家深入聊聊德州仪器(TI)的TPS65987D这颗芯片。它远不止是一个简单的协议芯片,而是一个集成了USB Power Delivery (PD) 3.0、Type-C连接管理、BC1.2充电检测以及多种私有快充协议支持的完整电源管理解决方案。对于从事消费电子、电脑周边、工业设备设计的同行来说,吃透这颗芯片,就意味着掌握了设计高可靠性、高集成度Type-C系统的钥匙。

为什么TPS65987D值得深究?因为在真实的项目开发中,我们遇到的挑战往往不是协议本身,而是那些协议标准里语焉不详,或者需要芯片厂商用硬件巧妙实现的“魔鬼细节”。比如,当你的笔记本连接着一个大功率扩展坞时,突然拔掉电源适配器,如何让系统在毫秒内无缝切换为由扩展坞供电,保证屏幕不黑、数据不断?这就是快速角色交换(FRS)要解决的问题。再比如,你的设备电池彻底耗尽,按任何键都没反应,插上Type-C充电器后,如何让设备“起死回生”,完成初始启动并开始充电?这就涉及到死电池供电(Dead Battery Operation)的硬核电路设计。还有,面对市场上琳琅满目的充电器,如何让设备既能识别标准的BC1.2充电器,又能兼容苹果、三星等品牌的私有快充协议,实现最快充电?这就需要芯片内置强大且灵活的电池充电器检测与广告(BC1.2 Detection & Advertisement)模块。

本文将围绕TPS65987D,拆解这三个核心功能的硬件实现原理、固件配置要点以及实际设计中的避坑指南。我不会照本宣科地复述数据手册,而是结合我过去在多个笔记本和扩展坞项目中的实战经验,告诉你这些功能是如何协同工作的,在电路设计和软件调试时有哪些必须注意的“坑”,以及如何利用TPS65987D的高度可配置性,打造出既符合标准又具备产品差异化的电源系统。无论你是正在评估芯片选型,还是已经深陷调试泥潭,希望这篇近万字的深度解析能给你带来实实在在的帮助。

2. 快速角色交换(FRS)的硬件实现与实战策略

快速角色交换(Fast Role Swap, FRS)是USB PD 3.0引入的一项关键特性,旨在实现供电角色(Source/Sink)的快速、无缝切换。其设计初衷是为了应对一些关键场景:例如,一个由适配器供电的笔记本电脑(作为Sink),同时通过Type-C接口连接着一个扩展坞(作为Source为外设供电)。当用户意外拔掉笔记本的适配器时,系统需要在极短时间内(标准要求小于200ms)完成角色转换,让扩展坞立刻变为笔记本的电源(Source),而笔记本则变为Sink,从而保证系统持续运行,不出现断电重启或数据丢失。

2.1 FRS的硬件检测电路原理

TPS65987D实现FRS的核心,在于其CC引脚上的附加监控电路。根据数据手册中的框图,芯片在每个CC引脚(C_CC1和C_CC2)上都集成了一个由电阻R_FRSWAP和比较器构成的检测通路。这个电路独立于常规的Type-C状态机,专门用于监控CC线上的电压突变。

当端口配置为Sink(例如,我们的笔记本电脑连接着适配器)且使能了FRS功能时,TPS65987D会持续监测CC引脚上的电压。在正常供电状态下,作为Sink的设备会在CC线上呈现一个标准的Rd下拉电阻(约5.1kΩ),而Source端则会提供上拉电阻Rp或电流源。此时CC引脚电压是一个稳定的值(例如,在3A电流模式下,电压约为1.76V)。当Source端(适配器)突然断开或失效,导致VBUS断电时,Source端的上拉电阻会消失。由于CC线对地电容和线缆寄生参数的存在,CC引脚电压会开始下降。

TPS65987D内部设定了一个关键的阈值电压VTH_FRS。一旦检测到CC电压低于此阈值,硬件会立即(注意,是硬件级动作,不依赖软件轮询)向数字核心发送一个FRS事件信号。数字核心收到此信号后,会立即终止当前的Sink操作,并尝试发起作为Source的供电流程。这个过程是毫秒级的,远快于软件检测VBUS跌落再做出反应的速度。

反过来,当端口作为Source(例如扩展坞给笔记本供电)并需要主动发起FRS时(比如检测到自身输入电源丢失),数字核心可以通过固件控制,使能连接到对端CC引脚上的R_FRSWAP下拉电阻。这个动作会主动将对端的CC电压拉低,模拟了Source消失的场景,从而触发连接设备(笔记本)的FRS检测电路,使其切换为Sink角色。之后,TPS65987D自身再关闭Source功能,转换为Sink。

2.2 设计要点与避坑指南

理解了原理,在实际设计中我们需要注意以下几点:

1.VTH_FRS阈值的选择与系统稳定性:VTH_FRS的设定至关重要。如果设置得过低,可能会对CC线上的正常噪声过于敏感,导致误触发;如果设置得过高,则可能在角色需要切换时反应迟钝,无法满足PD协议对切换时间的要求。TPS65987D的阈值通常由内部固件或配置寄存器设定,我们需要在TI提供的配置工具(如TPS65987D Configuration Tool)中确认其默认值或根据系统容差进行调整。在我的一个项目中,就曾因为CC引脚上的滤波电容(用于抑制ESD和噪声)取值过大(例如超过220pF),导致CC电压下降沿变缓,在接近VTH_FRS时徘徊时间过长,偶尔引发状态机的不确定行为。后来我们将电容减小到手册推荐的100pF,并确保PCB布局中CC走线尽可能短,问题得以解决。

2. FRS使能与时序配置:FRS功能并非默认开启,需要在设备的PD源能力(Source Capabilities)和宿能力(Sink Capabilities)的PDO(Power Data Object)中明确声明支持。在TPS65987D的配置包(Configuration Bundle)里,我们需要在对应的端口策略中勾选启用FRS。同时,要仔细配置FRS信号发送(Swap to Sink)和接收(Swap to Source)的时序参数,例如信号保持时间、角色切换后的电源建立延时等。这些参数需要与对端设备(尤其是不同厂商的芯片)进行兼容性测试。一个常见的坑是,角色切换后,新的Source(原Sink)建立VBUS输出需要时间,如果原Source关闭太快,会导致供电中断。通常建议在固件中配置一个几毫秒的延时,确保供电的连续性。

3. 与系统电源路径管理的协同:FRS不仅仅是协议层的切换,更涉及到物理电源路径的切换。TPS65987D内部集成了高压电源路径开关(如PP_HVx)。在FRS触发时,固件需要精确控制这些开关的关断与开启顺序。例如,从Sink切换为Source时,必须先确保内部的Source供电电路(如Buck-Boost控制器)已经稳定输出,再开启连接VBUS的路径开关,防止倒灌或电压冲突。在采用外部电源开关的设计中,需要通过GPIO(如GPIO16)来控制外部MOSFET,此时GPIO的驱动时序和电平必须与TPS65987D内部状态机完美同步,这需要在固件中做细致的状态机编程和测试。

3. 死电池供电(Dead Battery Operation)的救命稻草

“死电池”模式是Type-C设备用户体验的基石。想象一下,你的笔记本电脑电池完全耗尽,插上Type-C电源后,按下电源键,系统顺利启动——这背后就是死电池供电机制在默默工作。传统设备在电池没电时,主电源管理芯片无法上电,整个系统是“死���的。Type-C标准通过CC引脚上的上拉/下拉电阻检测机制,巧妙地解决了这个“先有鸡还是先有蛋”的问题。

3.1 死电池模式下的硬件“自举”机制

TPS65987D的死电池操作核心,是一套精妙的硬件默认配置。在芯片完全无电(VIN_3V3和电池均无效)的状态下,其CC引脚上的下拉电阻电路会被强制配置为一个特定的、未经修整的阻值RD_DB。这个阻值被设计成符合Type-C标准中Sink所要求的Rd范围(标准Rd为5.1kΩ,但允许一定容差)。

具体电路如手册图所示:在死电池状态下,控制下拉FET栅极的驱动器处于高阻态(Hi-Z)。当设备插入一个有效的Type-C Source(比如充电器)时,Source端的Rp上拉电阻会将CC线电压拉高。这个高电压会通过一个外部电阻R_RPD传递到FET的栅极,从而导通FET,在CC引脚和地之间呈现RD_DB电阻。此时,对端的Source检测到这个有效的Rd,便会开启5V VBUS供电。

VBUS供电进来后,TPS65987D便获得了初始工作电压。芯片内部的LDO开始工作,产生内核电压,数字核心启动。启动后,固件会迅速通过配置寄存器,将CC引脚的下拉电阻从默认的RD_DB切换为精确修整后的RD_CC(标准的5.1kΩ),并开始正常的PD通信,协商更高的电压和电流。

3.2 关键引脚配置:ADCIN1 (BUSPOWER) 的作用

TPS65987D的ADCIN1引脚(标记为BUSPOWER)是死电池模式配置的“总开关”。它必须通过一个外部分压电阻网络连接到LDO_3V3上。芯片上电时,内部ADC会读取这个引脚上的电压,数字核心根据此电压值来决定启动行为。

这个分压比(DIV = R2/(R1+R2))直接映射到不同的“死电池配置”和“设备配置”模式。例如:

  • BP_NoResponse: 芯片不响应VBUS供电,必须等VIN_3V3(系统主电)上电后才启动。适用于永远由系统主电供电的设备。
  • BP_WaitFor3V3_Internal/External: 开启内部或外部电源路径开关从VBUS取电,但会等待VIN_3V3有效后才继续启动流程。这是最常见的配置,确保系统主电优先。
  • BP_NoWait: 直接从VBUS取电并尝试启动,不等待VIN_3V3。适用于纯外部供电的设备。

设计陷阱与实战心得:

  1. 电阻精度与分压计算: 手册明确要求分压电阻需使用1%精度。我曾在一个早期样机上为了省成本用了5%的电阻,结果因为温漂和公差叠加,导致ADCIN1电压落在两个模式的临界区,造成设备启动行为随机——有时能从死电池启动,有时不能。务必使用1%精度的电阻,并计算其在不同温度下的最坏情况值,确保分压比稳稳落在目标模式的电压窗口中央。
  2. BP_WaitFor3V3_External模式下的GPIO16: 如果你选择了使用外部MOSFET作为VBUS电源路径开关(BP_WaitFor3V3_ExternalBP_ECWait_External),那么GPIO16这个引脚就被硬件固定用于控制这个外部开关。你不能再将它用作普通的GPIO或复用为其他功能。PCB布局时必须将GPIO16直接连接到外部MOSFET的栅极驱动电路。忽略这一点会导致死电池模式下VBUS无法给系统供电。
  3. 上电时序与浪涌电流: 在死电池模式下,VBUS(5V)是第一个上电的电源。此时,TPS65987D和后续负载的瞬间启动电流可能较大。如果VBUS电源路径(无论是内部开关还是外部MOSFET)的电流能力不足,或者VBUS输入端的电容过大,可能导致VBUS电压被瞬间拉低,触发Source端的过流保护而断开连接,造成启动失败。需要在VBUS输入端放置一个合适的缓启动电路或确保路径开关的电流余量充足。

4. BC1.2充电检测与私有协议广告的融合之道

虽然USB PD是未来,但庞大的存量市场充斥着仅支持BC1.2(Battery Charging Specification 1.2)或各种私有快充协议的充电器。TPS65987D集成了一个强大的BC1.2检测与广告模块,不仅能识别标准充电器,还能主动广告多种私有协议,极大提升了设备的充电兼容性。

4.1 BC1.2标准检测机制详解

BC1.2定义了三种下行端口(Downstream Port)类型:

  • 标准下行端口(SDP): 即普通的USB数据端口,D+和D-线上有15kΩ下拉电阻,限流500mA/900mA。
  • 充电下行端口(CDP): 支持数据传输和大电流充电(最高1.5A),端口内部有复杂的检测电路。
  • 专用充电端口(DCP): 纯充电端口,通常将D+和D-短接,限流1.5A。

TPS65987D的BC1.2模块通过其C_USB_P(D+) 和C_USB_N(D-) 引脚,集成了电压源、电流源和电阻网络,可以自动完成整个检测流程:

  1. 数据接触检测(DCD): 首先,芯片会在D+上输出一个微弱的电流源IDP_SRC,同时在D-下拉一个电阻RDM_DWN。如果连接的是一个充电器(尤其是DCP),D+的电压会被拉高,从而检测到物理连接已建立。
  2. 初级检测(Primary Detection): 接着,进行初级检测以区分SDP和充电端口。芯片会在D-上施加电压VDX_SRC,同时在D+上灌入电流IDX_SNK,然后通过内部ADC读取D+电压。根据电压值可以判断对端是SDP(有下拉电阻)还是充电端口(高阻抗或短接)。
  3. 次级检测(Secondary Detection): 如果是充电端口,则进行次级检测来区分CDP和DCP。检测逻辑类似,但通过不同的电压/电流组合和ADC读数,判断D+和D-之间的阻抗关系,最终确定端口类型。

4.2 私有快充协议广告的“黑科技”

除了标准检测,TPS65987D更厉害的地方在于能主动广告多种私有快充模式,吸引那些只认特定电压信号的设备进行大电流充电。这主要通过控制D+和D-线上的特定电压来实现:

  • 2.7V Divider3模式: 在D+和D-上各施加一个约2.7V的电压,并串联一个特定的输出阻抗R_DIV。这是为了兼容某些特定品牌的设备,使其允许从VBUS抽取超过1.5A的电流(例如2.4A)。重要提示:如果使能此模式,你必须确保你的VBUS电源路径能够提供至少2.4A的电流,否则可能触发过流保护。
  • 1.2V模式: 在D-上施加1.2V电压(输出阻抗R_1.2V),同时将D+和D-通过电阻RDCP_DAT短接。这是为了兼容另一类流行设备。
  • DCP自动模式(强烈推荐): 这是最智能的模式。在此模式下,TPS65987D的硬件会自动探测连接的设备类型。如果设备响应标准的DCP检测(短接模式),它就呈现标准DCP广告;如果设备响应2.7V Divider3检测,它就自动切换到2.7V Divider3广告;对于响应1.2V模式的设备亦然。最关键的是,这一切切换无需断开VBUS重连,实现了无缝、快速的协议适配,用户体验极佳。

4.3 外部电路的必要性与设计考量

手册中有一个非常重要的备注:USB 2.0标准所要求的Host或Device所需的D+/D-上拉/下拉电阻,TPS65987D并未提供,必须在外部电路中添加。

这是一个极易被忽视的坑!TPS65987D的BC1.2模块只负责检测和广告时的动态驱动。当你的设备需要作为USB Host(例如在笔记本模式下)或USB Device(例如在设备模式下)进行正常数据传输时,必须在C_USB_PC_USB_N引脚的外部,按照USB 2.0规范添加上拉(对于Device)或下拉(对于Host)电阻。通常,这些电阻(15kΩ)会放在USB 2.0高速数据开关(MUX)或PHY芯片附近。如果忘记添加,设备可能充电正常,但USB数据功能完全失效。

实战配置建议:在TI的配置工具中,BC1.2和私有协议广告的使能选项非常丰富。对于大多数消费类产品,我的建议是:

  1. 始终使能BC1.2检测,以确保对海量标准充电器的兼容性。
  2. 强烈建议使能DCP自动模式广告。这是覆盖最广私有协议且用户体验最好的方案。
  3. 谨慎使能特定的2.7V或1.2V模式,除非你明确知道你的目标用户群大量使用某一特定品牌的设备,且DCP自动模式对其效果不佳。同时,务必确认你的电源设计能满足相应模式下的电流要求。
  4. 仔细检查原理图,确保USB 2.0数据线的上拉/下拉电阻已正确放置。

5. 系统集成与固件配置实战指南

理解了三大核心功能的硬件原理后,如何将它们整合到一个实际产品中,并通过固件配置让芯片按照我们的意愿工作,是项目成功的关键。

5.1 电源状态管理与功耗优化

TPS65987D支持三种电源状态:激活(Active)、空闲(Idle)和睡眠(Sleep)。理解这些状态对于设计低功耗设备(如便携式扩展坞)至关重要。

  • 激活状态: 全功能运行。Type-C检测、PD通信、I2C/SPI通信、BC1.2检测全部可用。此时24MHz和100kHz振荡器均工作,功耗最高。
  • 空闲状态: 核心时钟频率降低(4-6 MHz),PD通信被暂停,但Type-C连接检测和I2C通信仍然有效。24MHz振荡器关闭,仅100kHz振荡器工作,功耗显著降低。设备可以从空闲状态通过连接事件、PD消息或I2C活动唤醒到激活状态。注意:从空闲状态被PD消息唤醒时,第一个收到的PD消息可能会丢失,固件需要有重试机制。
  • 睡眠状态: 最低功耗状态。仅Type-C连接检测和部分I2C地址监听功能可用。PD通信、SPI访问均不可用。24MHz振荡器关闭。只能通过连接事件或I2C通信唤醒。

配置心得: 在扩展坞设计中,当没有设备连接时,可以将TPS65987D配置为进入空闲或睡眠状态。需要特别注意,如果使用了基于24MHz时钟的PWM功能(例如用于控制呼吸灯),在进入睡眠状态前必须将PWM时钟源切换到100kHz,否则PWM输出会停止。这需要在固件中做好状态切换时的外设管理。

5.2 配置包(Configuration Bundle)生成与烧录

TPS65987D的行为完全由其在启动时加载的配置包决定。TI提供了图形化的TPS65987D Configuration Tool软件来生成这个配置包。

配置流程关键点:

  1. 选择正确的引导模式: 在工具中,首先需要根据ADCIN1SPI_POCI引脚的上电状态(即你硬件设计的分压电阻和上拉电阻),选择对应的“Dead Battery Mode”和“Device Configuration”。这决定了芯片在找不到有效配置包时的默认行为(安全模式、无限等待或某种预设配置)。
  2. 端口策略(Port Policy)配置: 这是核心。你需要为每个Type-C端口详细定义:
    • 电源角色: 双角色电源(DRP)、仅源(Source-Only)、仅宿(Sink-Only)。
    • 源能力(Source Capabilities): 定义可以提供的电压/电流档位(PDO),例如5V/3A, 9V/3A, 15V/3A, 20V/5A。务必勾选需要支持的PD协议特性,如FRS
    • 宿能力(Sink Capabilities): 定义可以接受的电压/电流档位。
    • Alternate Mode支持: 是否支持DisplayPort Alt Mode, Thunderbolt等。
    • BC1.2与广告设置: 在此处使能BC1.2检测和DCP自动模式广告等。
  3. GPIO与事件映射: 将芯片的GPIO引脚配置为所需功能,例如控制外部电源开关、LED指示灯、或响应连接/断开等事件产生中断给主处理器。
  4. 生成与烧录: 配置完成后,工具会生成一个二进制文件(配置包)。这个文件需要通过I2C或SPI接口,在芯片首次上电或更新固件时,写入到TPS65987D外部的SPI Flash存储器中。芯片每次启动都会从Flash中读取此配置。

5.3 I2C通信与寄存器调试

TPS65987D提供了三个I2C端口与主机(如嵌入式MCU或x86 PCH)通信。I2C1可作为主或从,I2C2仅作为从,I2C3仅作为主。通常,I2C1或I2C2作为从设备,与系统主机通信,报告状态(连接状态、PD合约、告警等)并接收控制命令。I2C3可以作为主设备,用于控制外部器件,如高速数据复用器(MUX)或重定时器(Retimer)。

调试技巧

  • 地址设置: I2C1的从地址可以通过ADCIN2引脚的外部分压电阻进行硬件配置(3个比特位),这在同一I2C总线上使用多个TPS65987D时非常有用。I2C2的地址是固定的。但请注意,最终的I2C地址可能被固件覆盖,务必以实际读取的地址为准。
  • 时钟拉伸(Clock Stretching): TPS65987D的I2C从端口支持时钟拉伸。这意味着当它忙于处理内部事务时,可以通过拉低SCL线来让主机等待。主机端的I2C驱动程序必须支持这一特性,否则通信会超时失败。
  • 使用逻辑分析仪: 在调试PD协商失败、FRS触发异常等问题时,除了监控I2C命令,强烈建议使用USB PD协议分析仪抓取CC线上的BMC(Biphase Mark Coding)编码数据。同时,用示波器同时测量CC线电压和VBUS电压,可以直观地看到FRS触发瞬间的时序关系,是定位硬件/固件协同问题的利器。

6. 常见问题排查与硬件设计陷阱实录

即使原理清晰、配置正确,在实际调试中依然会遇到各种光怪陆离的问题。下面分享几个我亲身踩过的坑和对应的排查思路。

6.1 问题一:设备无法从“死电池”状态启动

现象: 电池耗尽的设备,插入Type-C充电器后毫无反应,VBUS有5V,但系统不启动。排查步骤

  1. 测量CC引脚电压: 使用示波器或万用表,测量设备Type-C接口的CC1/CC2引脚对地电压。在插入Source的瞬间,你应该能看到一个电压跳变(例如从0V跳变到约0.7V或1.76V,取决于Source的电流能力)。如果电压始终为0或极低,说明Rd未正确呈现。
  2. 检查ADCIN1分压网络: 测量ADCIN1引脚的实际电压,与理论计算值对比。确认使用的电阻是否为1%精度,阻值是否正确。这是最常见的原因。
  3. 检查GPIO16(如果使用外部路径): 如果配置为BP_WaitFor3V3_External模式,测量GPIO16在插入充电器后的电平。它应该输出高电平以打开外部MOSFET。如果始终为低,检查固件配置或芯片是否已损坏。
  4. 检查VBUS路径: 确认从Type-C连接器VBUS引脚到TPS65987D的VBUSx引脚,再到系统供电点的路径是否畅通,保险丝、MOSFET是否完好。
  5. 确认Source能力: 使用一个已知良好的、支持Type-C标准的充电器进行测试,排除Source端问题。

6.2 问题二:FRS功能不稳定,偶尔切换失败

现象: 在模拟电源切换测试时,大部分时间FRS成功,但偶尔会发生角色切换失败,导致设备重启。排查步骤

  1. 检查CC引脚滤波电容: 如前所述,过大的CC引脚对地电容(如>220pF)会延缓电压变化,可能导致FRS检测超时或误判。将其减小至100pF。
  2. 测量FRS时序: 用双通道示波器,一个通道测原Source的VBUS,另一个通道测CC线电压。触发原Source VBUS掉电的瞬间。观察CC电压下降到VTH_FRS以下的时间,以及新Source建立VBUS的时间。确保整个切换过程在200ms以内。
  3. 检查固件配置: 确认FRS相关的时间参数配置合理。例如,FRS_Role Swap Delay是否给新Source留足了建立电压的时间。
  4. 电源路径切换冲突: 检查在角色切换过程中,是否存在短暂的两个Source(原Source和��Source)同时向同一个VBUS网络供电的“争抢”情况。这可能会引起电压毛刺或过流。确保固件控制开关的逻辑是“先断后通”,并有足够的死区时间。

6.3 问题三:BC1.2充电器可以识别,但USB数据功能失效

现象: 设备插入电脑USB口(SDP)可以充电,但无法被识别为U盘或串口设备。排查步骤

  1. 确认USB 2.0数据线上拉/下拉电阻: 这是最高频的原因!如果你的设备需要作为USB Device,检查C_USB_P(D+) 线上是否连接了一个1.5kΩ的上拉电阻到3.3V。这个电阻通常不在TPS65987D附近,而是在USB PHY或连接器附近。用万用表测量D+线对地电阻,在设备上电后应能看到约1.5kΩ的上拉。
  2. 检查USB数据通路开关: 如果设计中使用多路复用器(MUX)来切换USB数据通路(例如在DRP模式下,数据方向可能改变),检查MUX的控制信号是否由TPS65987D的GPIO正确控制,MUX的电源和使能引脚是否正常。
  3. 检查ESD防护器件: D+/D-线上的ESD防护二极管是否对称?其结电容是否过大(通常应小于0.5pF)?过大的寄生电容会严重影响USB 2.0高速信号(480Mbps)的完整性。

6.4 问题四:I2C通信异常,无法读取芯片状态

现象: 主处理器无法通过I2C访问TPS65987D的寄存器,或读取的数据全为0xFF/0x00。排查步骤

  1. 测量I2C总线波形: 使用逻辑分析仪抓取SCL和SDA的波形。检查起始信号、地址字节、ACK信号是否正常。特别注意是否有时钟拉伸导致的SCL被长时间拉低的情况。许多MCU的默认I2C驱动不支持时钟拉伸,需要修改驱动或降低通信频率。
  2. 确认I2C地址: 使用逻辑分析仪解码出的从设备地址,与你在代码中配置的地址进行比对。别忘了7位I2C地址需要左移一位再加上R/W位。
  3. 检查上拉电阻: I2C总线必须通过上拉电阻接到电源(通常是LDO_3V3)。电阻值典型为4.7kΩ或10kΩ,取决于总线速度和负载电容。电阻过大可能导致上升沿太慢,通信失败。
  4. 检查电源和复位: 确认TPS65987D的VIN_3V3LDO_3V3LDO_1V8电源引脚电压稳定,HRESET引脚已释放为高电平。

7. 总结与个人体会

深入折腾TPS65987D这类高度集成的USB PD控制器,是一个从协议理解到硬件设计,再到固件调试的完整闭环。它不再是一个简单的“黑盒”芯片,而是一个需要你精心配置和协同的系统核心。回顾整个设计过程,我最深刻的体会是:细节决定成败,而数据手册是唯一可信的圣经。

对于FRS,关键在CC引脚电路的纯净度和时序参数的微调;对于死电池供电,核心是ADCIN1分压网络的精度和电源路径开关的可靠控制;对于BC1.2和私有协议,则要平衡兼容性与功耗,并牢记外部电阻的必要性。TI提供的配置工具极大地降低了开发门槛,但工具生成的配置,一定要结合实际的电路板和负载进行充分的兼容性测试和压力测试。

最后,给正在或即将使用TPS65987D的工程师一个忠告:尽早搭建一个可靠的调试环境。投资一个USB PD协议分析仪和一台支持Type-C触发与测量的示波器,它们在你排查那些“时好时坏”、“仅在某批充电器上出现”的玄学问题时,价值连城。多看、多测、多思考数据手册里的每一句话和每一个图表,你就能真正驾驭这颗强大的芯片,打造出稳定可靠的Type-C电源产品。

http://www.jsqmd.com/news/1196069/

相关文章:

  • 《深入理解计算机系统》虚拟存储器
  • Prompt 效果漂移检测:模型偷偷更新了,Prompt 还在用旧的
  • TI CC2652RB无线MCU:BAW无晶体技术与多协议物联网开发实战
  • 2026达州卫生间漏水、外墙、楼顶、地下室、阳台渗漏怎么选?3家靠谱服务商(7月) - 防水企业百科
  • QOJ7937 题解
  • 自动驾驶横向控制算法——从几何模型到工程实践:Pure Pursuit的优化与挑战
  • 深度解析BabelDOC:新一代智能PDF文档翻译引擎的架构设计与性能优化
  • 构建高性能存储网络:NVMe-oF、SPDK与RDMA的融合实践
  • python 连接拓竹打印机
  • 66AK2G12 QSPI/SPI/UART接口时序深度解析与设计实践
  • 智慧充电系统定时任务处理异常订单实战方案
  • Codex CLI本地化部署实战:从环境配置到VSCode集成
  • 2026驻马店楼顶漏水、卫生间漏水、外墙、地下室、阳台+阳光房渗漏不用愁!3家正规公司(7月) - 防水企业百科
  • 2026年7月市面上靠谱的抖音推广厂商推荐,抖音推广/矩阵系统,抖音推广公司推荐 - 品牌推荐师
  • LLM应用安全加固:企业级提示词防护与输出校验实践
  • 基于STM32单片机的手环脉搏心率血氧体温血压无线视频监控/WiFi/蓝牙APP设计DIY-T082X
  • 管理系统UI 统一设计规范skill
  • 2026南通卫生间漏水、外墙、楼顶、地下室、阳光房渗漏别着急!3家正规服务商(7月) - 防水企业百科
  • 你了解的spring都用到哪些设计模式?
  • sed 配合 visudo 校验可以实现自动化配置
  • HEAD请求实战指南:从原理到性能优化的深度探索
  • 全球植被物候期|植被郁闭度|地表动态反馈|多分辨率栅格
  • 代码审查中的上下文感知:跨文件依赖分析与变更影响范围评估
  • 2026济宁楼顶漏水、卫生间漏水、外墙、地下室、阳台渗漏怎么选?3家正规公司(7月) - 防水企业百科
  • 存量报告隐患一键清零!IACheck AI报告审核通审Agent版全文档批量溯源排查避险
  • 杭州爱彼回收价格查询及靠谱回收平台实测排行(2026年7月最新数据) - 尊奢回收二奢平台
  • 杭州GEO公司哪家好?制造企业GEO服务商TOP5专项推荐 - 资讯纵览
  • MOS管实战指南:从基础原理到电机驱动应用
  • 首次适应算法在动态分区管理中的C语言实现与内存链维护
  • redis集群的实现原理是什么?