一、TC3xx电源架构概览:三大电源域的划分与作用
各位工程师朋友,咱们今天聊聊TC3xx的电源架构。说实话,我第一次看这个芯片的电源手册时,也被那密密麻麻的电源域给绕晕了。但后来我总结了一个方法——你只要记住三个核心域:PDOM(核心电源域)、STDBY(备用电源域)、SYS(系统电源域),其他都是它们的延伸。
为什么这么分?说白了,就是“什么时候用电、用多少电、能不能断电”这三个问题。咱们一个一个来看。
1.1 核心电源域(PDOM)——芯片的“心脏”
PDOM,全称Power Domain,是TC3xx的主电源域。它负责给CPU、SRAM、Flash、总线矩阵这些“大胃王”供电。我习惯把它比作人的心脏——一旦断电,整个系统就停了。
关键特征:
- 供电电压:通常为1.25V(内核电压)
- 供电范围:CPU0~CPU2、DSPR、PSPR、LMU、Flash等
- 功耗占比:占芯片总功耗的70%~80%
- 可关断性:支持软件控制的电源门控(Power Gating)
我在项目中遇到过一个问题:某次做低功耗设计时,我试图在待机时关掉PDOM,结果发现外设还在访问SRAM,直接导致数据丢失。嗯,这里要注意——关PDOM前,必须确保所有DMA、外设都停止访问内部存储器。
1.2 备用电源域(STDBY)——永不掉线的“哨兵”
STDBY域,说白了就是芯片的“备用电池”。它独立于主电源,由VDD备用引脚供电。你想想看,汽车熄火后,为什么还能遥控开门?靠的就是这个域。
| 特性 | 说明 |
|---|---|
| 供电电压 | 1.25V(与PDOM相同,但独立供电) |
| 包含模块 | 备用SRAM(8KB)、RTC、唤醒逻辑、GPIO保持寄存器 |
| 功耗 | 典型值约10μA(极低功耗) |
| 唤醒源 | 外部中断、RTC闹钟、CAN唤醒、LIN唤醒 |
我个人习惯在STDBY域里放一个“系统状态标志”——比如上次休眠前是正常关机还是异常复位。这样唤醒后第一件事就是读这个标志,判断是否需要执行自检。我曾经因为没做这个,导致一台设备在休眠后误判状态,多花了三天排查。
避坑指南:STDBY域的SRAM容量只有8KB,别想着存大数组。我建议只存关键状态变量,比如唤醒计数器、故障码、校验和。我曾经见过有人试图存一个512字节的日志缓冲区,结果直接溢出,系统反复复位。
1.3 系统电源域(SYS)——外设的“配电箱”
SYS域,就是给所有外设供电的。包括CAN、LIN、SPI、I2C、ADC、GTM、GPT等。它由VDD供电,但可以独立于PDOM进行电源管理。
为什么这么设计?你想想看:当CPU休眠时,你可能还想让CAN模块继续监听总线,或者让ADC继续采集温度。这时候,SYS域就可以独立工作。
SYS域的特点:
- 供电电压:3.3V(I/O电压)
- 可分区管理:每个外设模块可以单独关闭时钟或电源
- 与PDOM解耦:CPU休眠时,外设可以继续运行
- 唤醒能力:外设事件可以唤醒PDOM
我记得有一次做车载网关项目,要求CAN总线在休眠时保持监听。我一开始把CAN模块放在PDOM里,结果一休眠CAN就断了。后来改成SYS域独立供电,问题解决。说白了,外设的电源域归属,决定了它的“自主权”。
1.4 三个域的协同工作——一个实际案例
咱们看一个典型的低功耗场景:
- 正常运行:PDOM、SYS、STDBY全部上电。CPU跑应用,外设正常工作。
- 进入休眠:软件关掉PDOM(CPU停止),SYS域保留CAN和RTC,STDBY域保持唤醒逻辑。
- 唤醒过程:CAN总线收到报文 → STDBY域检测到唤醒事件 → 重新给PDOM上电 → CPU复位并恢复上下文。
这里有个细节:唤醒后CPU是复位还是继续执行?这取决于你配置的唤醒模式。我建议用“复位唤醒”,因为这样能保证所有寄存器回到已知状态。我曾经用“继续执行”模式,结果因为某个外设状态没恢复,导致数据错乱。
重要提醒:三个域的电源切换是有时序要求的。比如从休眠唤醒时,必须先给PDOM上电,再释放复位。如果顺序搞反,芯片可能进入未知状态。具体时序参数请参考TC3xx数据手册的“Power-Up Sequence”章节。
1.5 总结一下
好了,咱们捋一遍:
- PDOM:核心运算,功耗大,可关断
- STDBY:永不掉电,极低功耗,存关键状态
- SYS:外设供电,可独立管理,支持唤醒
这三个域就像一家三口:PDOM是拼命工作的爸爸,STDBY是24小时值班的保安,SYS是负责后勤的妈妈。各司其职,才能让整个系统既高效又省电。
下一章咱们会深入PDOM的电源门控设计,包括如何安全地关断和恢复。到时候我会分享一个我踩过的坑——因为忘记保存CPU上下文,导致唤醒后程序跑飞。敬请期待。