第2章 TJA1044芯片详解:从功能框图到实战选型
做CAN FD通信,收发器是MCU和物理总线之间的桥梁。TJA1044是我个人非常喜欢的一款芯片——它专为CAN FD优化,功耗低,而且兼容5V和3.3V的MCU。这一章我们把它拆开揉碎了讲清楚。
一句话总结:TJA1044是NXP推出的高速CAN收发器,支持CAN FD(最高5Mbps),具备低功耗待机模式,且VIO引脚可直连3.3V MCU。
2.1 TJA1044功能框图
先看整体架构。TJA1044内部主要分为三大部分:总线接口、逻辑控制、电源管理。我画了一张框图帮你快速建立印象。
从框图可以看出,TJA1044把MCU侧的TXD/RXD信号转换成CANH/CANL差分信号。核心逻辑里集成了模式控制和保护电路——这一点在实际项目中非常省心。
我的经验:以前用TJA1050时,待机模式需要额外加逻辑控制。TJA1044的STB和EN引脚组合就能搞定,省了一个GPIO。
2.2 引脚定义与功能
TJA1044采用SO8封装,一共8个引脚。我整理了一张表格,方便你对照查阅。
| 引脚号 | 名称 | 类型 | 功能描述 |
|---|---|---|---|
| 1 | TXD | 数字输入 | CAN发送数据输入,低电平有效(显性位) |
| 2 | GND | 电源 | 地 |
| 3 | VCC | 电源 | 5V供电(4.5V ~ 5.5V) |
| 4 | RXD | 数字输出 | CAN接收数据输出,反映总线差分状态 |
| 5 | STB | 数字输入 | 待机模式控制(低电平有效) |
| 6 | EN | 数字输入 | 使能控制(高电平进入正常/静音模式) |
| 7 | CANH | 模拟I/O | CAN总线高电平线 |
| 8 | CANL | 模拟I/O | CAN总线低电平线 |
这里有个细节我想强调一下:TXD引脚内部有上拉电阻。如果MCU没初始化好,TXD默认高电平,总线处于隐性状态,不会干扰其他节点。我曾经遇到过因为TXD浮空导致总线一直显性,整个网络瘫痪——后来加了上拉就解决了。
2.3 工作模式详解
TJA1044有3种工作模式:正常模式、静音模式、待机模式。模式由STB和EN引脚的电平组合决定。
| STB | EN | 工作模式 | 说明 |
|---|---|---|---|
| 0 | 1 | 正常模式 | 收发器全功能工作,TXD→CANH/CANL,RXD输出总线状态 |
| 1 | 1 | 静音模式 | 发送器关闭,接收器工作,RXD仍可接收数据 |
| X | 0 | 待机模式 | 超低功耗,仅监听总线唤醒(典型电流< 15μA) |
2.3.1 正常模式
这是最常用的模式。TXD输入被转换成CANH/CANL差分信号发送到总线。同时,总线上的差分信号被转换成RXD输出给MCU。CAN FD模式下,数据段速率最高可达5Mbps。
注意:正常模式下,如果TXD长时间保持低电平(显性位),芯片会触发显性超时保护,自动关闭发送器。这是为了防止总线被单节点锁死。
2.3.2 静音模式
静音模式下,发送器被禁用,但接收器仍在工作。RXD引脚会继续输出总线状态。这个模式常用于监听总线流量,或者作为CAN FD的“只听模式”。
我个人习惯在调试阶段用静音模式——先确认总线上的数据对不对,再切回正常模式发送。这样不会因为发送错误帧把整个网络搞乱。
2.3.3 待机模式
待机模式是TJA1044的亮点。EN=0时,芯片进入超低功耗状态,典型电流不到15μA。此时收发器会监听总线上的唤醒信号(显性脉冲)。
我曾经在做一个车载节点时,要求待机功耗低于50μA。TJA1044的待机模式配合STM32的Stop模式,整板功耗做到了30μA左右,完全满足要求。
2.4 VIO电源引脚说明
VIO引脚是TJA1044区别于老款芯片的一个重要特性。它给芯片的数字逻辑部分供电,电压范围是2.8V ~ 5.5V。
这意味着什么?
- 如果你的MCU是3.3V供电,VIO接3.3V,TXD/RXD直接连MCU,不需要电平转换。
- 如果你的MCU是5V供电,VIO接5V,同样直连。
- VIO和VCC是独立的——VCC始终需要5V给总线驱动供电。
选型建议:现在很多STM32系列(如G4、H7)都是3.3V供电。用TJA1044配合3.3V MCU,省掉电平转换芯片,BOM成本能降几毛钱,板子也干净。
2.5 与TJA1050的对比
很多工程师对TJA1050很熟悉。TJA1044可以看作是TJA1050的升级版。我列个对比表,差异一目了然。
| 特性 | TJA1050 | TJA1044 |
|---|---|---|
| CAN FD支持 | 不支持(最高1Mbps) | 支持(最高5Mbps) |
| VIO引脚 | 无(固定5V逻辑电平) | 有(2.8V~5.5V,支持3.3V MCU) |
| 待机模式 | 无 | 有(< 15μA) |
| 静音模式 | 无 | 有(通过STB+EN组合) |
| 显性超时保护 | 无 | 有(防止总线锁死) |
| 总线引脚耐压 | -27V ~ +40V | -27V ~ +40V(相同) |
| 工作温度 | -40°C ~ +125°C | -40°C ~ +150°C(更宽) |
从对比可以看出,TJA1044在CAN FD支持、低功耗、逻辑电平兼容性三个方面全面领先。如果你是新设计,我建议直接上TJA1044。TJA1050在低速CAN 2.0场景下还能用,但已经属于上一代产品了。
避坑指南:我曾经在一个项目里把TJA1050的板子直接换上TJA1044,没改电路。结果发现VIO没接,芯片不工作。TJA1044的VIO必须接,不能悬空!
2.6 小结
TJA1044是一款为CAN FD优化的收发器。它支持最高5Mbps速率,具备正常/静音/待机三种模式,VIO引脚让3.3V MCU可以直接连接。相比TJA1050,它在功能、功耗、兼容性上都有明显提升。