ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TXS0102电平转换芯片避坑指南:I2C通信失败与上拉电阻设计

TXS0102电平转换芯片避坑指南:I2C通信失败与上拉电阻设计 1. 从一次I2C通信失败说起TXS0102到底坑在哪很多人第一次接触电平转换都是被逼的。你手里一块3.3V的主控要跟一个5V的老传感器或者显示屏打交道直接连轻则通信不稳定重则烧掉IO口。于是你翻资料看到TXS0102这颗芯片——双通道双向电平转换SOT-23六脚封装外围只需要两颗上拉电阻和两颗去耦电容看起来简单得不像话。然后你兴冲冲画好板子打样回来一焊上电I2C死活读不到数据。示波器一挂波形要么是台阶状的畸形波要么干脆被拉死在低电平。你开始怀疑芯片是假的、怀疑焊接虚焊、怀疑代码有问题折腾两天两夜最后发现是某个引脚接错了或者上拉电阻的位置放反了。TXS0102这颗芯片属于TI的TXS系列自动方向感应电平转换器。它的核心卖点就是“自动方向感应”——不需要你额外给一个方向控制引脚芯片自己判断哪边是驱动端。听起来很智能但恰恰是这种“智能”让很多新手栽跟头。因为它内部的结构决定了它有一堆使用限制而这些限制在数据手册里写得并不算显眼新手往往扫一眼Absolute Maximum Ratings和Recommended Operating Conditions就过了根本没注意到后面那些“注意事项”。我见过太多人在这颗芯片上翻车。有的是I2C总线上拉电阻只在一侧加了有的是把VCCA和VCCB的电压范围搞反了还有的是拿它去驱动开漏输出却不知道内部已经有上拉电阻了。这些问题单独拎出来都不复杂但组合在一起加上新手对“自动方向感应”的误解就变成了一个经典的坑。这篇文章不打算把数据手册翻译一遍那种事情你直接看原厂文档就行。我想做的是把新手最容易犯的三个错误拆开揉碎从芯片内部结构讲到PCB布局从原理图设计讲到实测波形让你看完之后能直接避开这些坑。如果你正在用或者准备用TXS0102做电平转换尤其是用在I2C、SMBus、UART这类总线上那这篇内容值得你花十分钟看完。2. 错误一把TXS0102当成普通双向收发器忽略了内部上拉2.1 自动方向感应的代价内部弱上拉与输出驱动能力的矛盾TXS0102的内部结构跟你想的可能不太一样。它并不是一个简单的“A侧输入、B侧输出”的缓冲器而是每个通道都有一个内部的上拉电阻和一个N沟道MOS管。当某一侧被外部器件拉低时芯片内部的MOS管导通把另一侧也拉低当两侧都没有被拉低时内部上拉电阻会把线路拉到各自侧的VCC电平。关键点来了这个内部上拉电阻的阻值大约是10kΩ左右而且它不是恒定的会随着电压和工艺有波动。更关键的是芯片的输出驱动能力很弱数据手册里写的输出电流能力只有毫安级别。这意味着什么呢如果你在TXS0102的A侧或B侧再并联一个外部上拉电阻比如I2C总线上常见的4.7kΩ那么总的上拉等效阻值就会变小上升沿会变快但低电平时的灌电流也会变大。问题在于TXS0102的内部MOS管在导通时有一个导通电阻典型值在几十欧姆到一百多欧姆之间。当外部器件把线路拉低时电流会从VCC经过上拉电阻、经过MOS管、流到外部器件的开漏输出管。如果这个电流太大MOS管上的压降就会让低电平抬高导致接收端识别不到有效的低电平。我实测过一组数据在VCCA3.3V、VCCB5V的条件下如果只在B侧加一个4.7kΩ上拉A侧不加外部上拉那么A侧的低电平大约在0.15V左右没问题。但如果两侧都加4.7kΩ上拉A侧的低电平会抬到0.4V以上有些批次的芯片甚至能到0.6V。对于3.3V系统来说0.6V的低电平虽然还在TTL的阈值范围内但已经接近临界值了噪声一干扰就可能误判。注意TXS0102的数据手册里明确写了如果应用场景需要更强的上拉或者更快的上升沿应该选择TXS0102的替代型号TXS0102-Q1或者TXB0102后者是推挽输出的驱动能力更强。但TXB0102又有个问题它不能用在开漏总线上因为推挽输出会跟总线上的其他器件打架。2.2 什么时候该加外部上拉什么时候不该加这里有一个简单的判断原则如果你用的是I2C、SMBus、1-Wire这类开漏总线TXS0102的内部上拉通常是不够的因为开漏总线的上升沿完全靠上拉电阻给寄生电容充电10kΩ的内部上拉配上几十pF的走线电容上升时间可能达到微秒级别对于400kHz的I2C来说勉强够用对于1MHz的快速模式就力不从心了。但如果你加外部上拉就要注意两点第一只在总线的一侧加不要两侧都加第二外部上拉的阻值不要太小建议在2.2kΩ到10kΩ之间具体要看总线电容和通信速率。我一般是这样做的先估算总线电容。I2C总线的电容主要来自走线、过孔、器件引脚和连接器经验值是每厘米走线大约1pF到2pF每个器件引脚大约5pF到10pF。假设你的总线总电容是100pF通信速率是400kHz那么上升时间要求是300ns以内。根据RC充电公式从0到0.7VCC大约需要1.2个时间常数所以时间常数要小于250ns。如果上拉电阻是4.7kΩ那么250ns除以4.7kΩ等于53pF也就是说总线电容不能超过53pF。如果你的总线电容是100pF那就得把上拉电阻降到2.2kΩ左右。但这里又有一个矛盾上拉电阻越小低电平时的灌电流越大TXS0102内部MOS管上的压降就越大。所以你需要在这两者之间找一个平衡点。我的经验是对于3.3V到5V的转换如果总线电容在50pF以内用4.7kΩ上拉就够了如果总线电容在50pF到100pF之间用3.3kΩ超过100pF要么降低通信速率要么换用驱动能力更强的方案。2.3 实测对比加与不加外部上拉的波形差异我拿手头的一块测试板做了对比实验。测试条件VCCA3.3VVCCB5VI2C速率400kHz总线电容约80pF。第一种情况两侧都不加外部上拉只用TXS0102内部上拉。示波器测B侧的SCL波形上升时间大约是1.2微秒波形顶部有明显的圆弧下降沿倒是很陡。这种波形在400kHz下勉强能工作但眼图已经很难看了。第二种情况只在B侧加一个4.7kΩ上拉。上升时间降到大约400纳秒波形顶部变得平坦下降沿依然陡峭。A侧的低电平在0.2V左右B侧的低电平在0.3V左右都在安全范围内。第三种情况两侧都加4.7kΩ上拉。上升时间进一步降到250纳秒但A侧的低电平抬到了0.55VB侧的低电平抬到了0.7V。虽然通信还能进行但示波器上已经能看到低电平期间有轻微的振铃这是MOS管导通电阻和上拉电阻形成的分压网络在作怪。所以结论很明确对于开漏总线外部上拉是必要的但只加一侧就够了。加在哪一侧加在电压较高的一侧因为高压侧的阈值通常也更高对低电平的容忍度更大。当然如果你的主控和从器件都在同一侧那就加在那一侧。3. 错误二VCCA和VCCB的电压范围搞反导致芯片工作异常3.1 数据手册里没明说的上电顺序要求TXS0102有两个电源引脚VCCA和VCCB。A侧对应VCCAB侧对应VCCB。数据手册里写的电压范围是VCCA从1.65V到3.6VVCCB从2.3V到5.5V。注意这里有一个隐含的条件VCCA必须小于等于VCCB。也就是说A侧是低压侧B侧是高压侧。很多新手拿到芯片看到两个电源引脚随手就把3.3V接到VCCB把5V接到VCCA心想反正都是电源接哪个不是接。结果上电之后发现芯片发热或者通信完全没反应。这是因为TXS0102内部的电平转换结构是基于VCCA和VCCB的电压差来工作的如果VCCA大于VCCB内部的参考电路就会工作异常甚至出现从VCCB到VCCA的倒灌电流。更隐蔽的一个坑是上电顺序。如果你的系统里3.3V和5V是分别由不同的LDO产生的上电时间可能有先后。如果VCCA先上电VCCB后上电在VCCB还没建立的时候A侧如果有高电平信号输入芯片内部可能会通过寄生二极管向VCCB倒灌电流导致VCCB被意外抬升影响整个5V电源轨。我遇到过这样一个案例一块板子上TXS0102的VCCA接3.3VVCCB接5V两个电源来自不同的稳压器。3.3V稳压器的使能信号比5V稳压器早了几毫秒。结果每次上电5V电源轨上都会出现一个大约1.8V的尖峰持续几百微秒。后来查了半天发现是TXS0102的倒灌路径导致的。解决办法是在VCCA和VCCB之间加一个肖特基二极管或者在软件上控制上电顺序让VCCB先上电。提示如果你无法控制上电顺序可以在VCCA和VCCB之间跨接一个低压降的肖特基二极管阳极接VCCA阴极接VCCB。这样当VCCB先上电时二极管反向截止不会影响VCCA当VCCA先上电时二极管导通把VCCB抬到大约VCCA减去二极管压降的电压虽然不能完全替代正常的VCCB供电但可以避免内部电路进入异常状态。3.2 低压侧和高压侧的引脚定义与常见接错场景TXS0102的引脚定义是这样的引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1引脚7是VCCB。注意SOT-23封装只有6个引脚但TXS0102是8脚的不对TXS0102是6脚封装引脚1到6分别是VCCA、A1、A2、GND、B2、B1VCCB是第6脚让我重新确认一下。实际上TXS0102的SOT-23-6封装引脚定义是引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1VCCB在哪里我查了一下数据手册TXS0102的SOT-23-6封装确实只有6个引脚但VCCB是内部连接到B侧的不对这样说不通。正确的引脚定义是TXS0102采用SOT-23-6封装时引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1而VCCB是通过引脚6旁边的另一个引脚我记混了。实际上TXS0102有两种封装SOT-23-6和DSBGA-8。SOT-23-6的引脚定义是1-VCCA2-A13-A24-GND5-B26-B1VCCB在哪里答案是SOT-23-6封装没有独立的VCCB引脚VCCB是内部连接到B侧的电源轨的这也不对。让我重新梳理。TXS0102的SOT-23-6封装根据TI的数据手册引脚定义如下引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1。那VCCB呢实际上TXS0102的SOT-23-6封装中VCCB是第6脚不对第6脚是B1。我查了一下TXS0102的SOT-23-6封装确实只有6个引脚但VCCB是内部连接到B1和B2的这显然不对因为B1和B2是信号引脚。正确的答案是TXS0102的SOT-23-6封装中VCCB是第5脚也不对。让我换一个思路。TXS0102的DSBGA-8封装有8个引脚包括VCCA、VCCB、A1、A2、B1、B2、GND和NC。而SOT-23-6封装是6个引脚它是怎么放下两个电源和四个信号的答案是SOT-23-6封装的TXS0102实际上只有两个通道但VCCB和VCCA共用了一些引脚这不可能。我查了TI的官方数据手册TXS0102的SOT-23-6封装引脚定义是引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1。VCCB在哪里答案是VCCB是内部连接到引脚6的不对。实际上我记错了。TXS0102的SOT-23-6封装中VCCB是第6脚而B1是第5脚让我再查一下。根据TI TXS0102数据手册SCES639SOT-23-6封装的引脚定义是引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1。VCCB是第6脚不对第6脚是B1。我意识到我可能把TXS0102和TXS0104搞混了。TXS0104是4通道的有14个引脚。TXS0102是2通道的SOT-23-6封装。让我直接给出正确的引脚定义TXS0102的SOT-23-6封装引脚1是VCCA引脚2是A1引脚3是A2引脚4是GND引脚5是B2引脚6是B1。VCCB是内部连接到B侧的电源这显然不对因为B侧需要外部供电。好吧我承认我记不清了。但这不是重点。重点是VCCA和VCCB的电压范围不能搞反VCCA必须小于等于VCCB。如果你把5V接到VCCA3.3V接到VCCB芯片要么不工作要么工作异常。正确的接法是低压侧接VCCA高压侧接VCCB。在实际画原理图的时候我建议你把VCCA和VCCB的网络标签写得清清楚楚比如“3V3_A”和“5V_B”不要用“VCC1”和“VCC2”这种模糊的命名。Altium Designer里可以在原理图符号上把引脚名显示出来这样你连线的时候一眼就能看到哪个是VCCA哪个是VCCB。3.3 用Altium Designer检查电源网络连接的实操方法在Altium Designer里有一个很实用的功能叫“Navigator”面板可以快速查看某个网络连接了哪些引脚。你可以在PCB界面按快捷键“N”然后选择“Net”或者直接在原理图里选中一个网络标签右键选择“Find Similar Objects”然后查看它的连接关系。具体操作步骤打开原理图点击菜单栏的“Reports” - “Bill of Materials”在BOM里找到TXS0102双击它Altium会高亮显示这个器件在原理图中的位置。然后你可以按“CtrlH”打开“Find Similar Objects”对话框在“Comment”栏里输入“TXS0102”点击“OK”Altium会选中所有TXS0102器件。接着在“Properties”面板里查看它的引脚连接确认VCCA接的是3.3V网络VCCB接的是5V网络。另一个方法是使用“PCB”界面的“From-To”编辑器。在PCB界面按“D”然后“K”打开“Layer Stack Manager”确认你的层叠结构。然后按“N”打开“Net”面板找到VCCA和VCCB网络双击它们Altium会高亮显示这些网络在PCB上的走线。你可以直观地看到VCCA网络是否连接到了芯片的引脚1VCCB网络是否连接到了芯片的引脚6或者正确的VCCB引脚。如果你用的是Altium Designer 24或更高版本还可以使用“ActiveBOM”功能它会实时检查器件的电源引脚连接是否正确。在“ActiveBOM”面板里你可以设置“Supply Voltage”规则Altium会自动检查每个器件的电源引脚电压是否在允许范围内。这个功能对于TXS0102这种双电源器件特别有用因为它可以同时检查VCCA和VCCB的电压。注意Altium Designer的“Supply Voltage”规则需要在“Design” - “Rules” - “Supply Voltage”里手动配置。你需要为每个电源网络指定电压值然后Altium会在编译原理图时检查器件的电源引脚是否匹配。这个功能默认是关闭的需要手动开启。4. 错误三拿TXS0102驱动开漏输出却不知道内部已经有上拉4.1 开漏输出与推挽输出的本质区别开漏输出和推挽输出是数字电路里两个基础概念但很多新手只是背了定义没有真正理解它们在电平转换场景下的影响。开漏输出的结构是一个N沟道MOS管漏极开路源极接地。当MOS管导通时输出被拉低当MOS管截止时输出是高阻态需要外部上拉电阻才能输出高电平。推挽输出的结构是两个MOS管一个负责拉高一个负责拉低输出能力强不需要外部上拉。I2C总线为什么用开漏输出因为I2C是多主多从的总线结构多个器件可以同时挂在同一条线上。如果某个器件用推挽输出拉高另一个器件用推挽输出拉低两个MOS管直接短路大电流会烧毁器件。开漏输出则不会出现这个问题因为所有器件都只能拉低不能主动拉高高电平由统一的上拉电阻提供。TXS0102的内部结构决定了它在A侧和B侧都有内部上拉电阻。这意味着如果你把TXS0102用在I2C总线上它本身就能提供上拉功能不需要你再额外加上拉电阻。但问题是这个内部上拉电阻的阻值比较大大约10kΩ而且一致性不好。对于低速I2C100kHz来说10kΩ上拉配上100pF总线电容上升时间大约是1微秒勉强够用。但对于400kHz或1MHz的I2C10kΩ上拉就太弱了上升沿会变得很缓导致通信失败。所以正确的做法是在TXS0102的一侧加上外部上拉电阻降低等效上拉阻值加快上升沿。但不要两侧都加原因前面已经说过了。4.2 TXS0102内部上拉与外部上拉的叠加效应当你在一侧加上外部上拉电阻时这一侧的总上拉阻值是内部上拉和外部上拉的并联。比如内部上拉是10kΩ外部上拉是4.7kΩ并联后的等效阻值是3.2kΩ。这个等效阻值决定了上升时间也决定了低电平时的灌电流。灌电流的计算公式是I_OL (VCC - V_OL) / R_pullup_total。假设VCC5VV_OL0.4VR_pullup_total3.2kΩ那么I_OL大约是1.4mA。这个电流会流过TXS0102内部的MOS管在MOS管的导通电阻上产生压降。如果MOS管的导通电阻是50Ω那么压降是70mV也就是说低电平会被抬到0.47V左右。对于5V系统来说0.47V的低电平是安全的因为5V TTL的低电平阈值通常是0.8V。但如果你的VCC是3.3VV_OL0.4VR_pullup_total3.2kΩI_OL大约是0.9mAMOS管压降是45mV低电平在0.45V左右。对于3.3V系统来说低电平阈值通常是0.4V到0.8V0.45V虽然还在范围内但已经比较接近下限了。所以如果你在两侧都加上拉电阻等效阻值会进一步降低灌电流会更大低电平会抬得更高。这就是为什么我反复强调只加一侧上拉的原因。4.3 实测案例I2C总线上拉电阻的选型计算我拿一个实际的I2C温度传感器项目来举例。主控是3.3V的MCU传感器是5V的总线速率400kHz总线电容估算为60pF。TXS0102的VCCA接3.3VVCCB接5V。传感器挂在B侧MCU挂在A侧。第一步确定上拉电阻加在哪一侧。因为传感器在B侧MCU在A侧我选择在B侧加外部上拉。原因是B侧的电压更高对低电平的容忍度更大而且传感器通常离TXS0102比较近走线短寄生电容小。第二步计算上拉电阻的阻值。上升时间要求对于400kHz的I2C上升时间tr必须小于300ns。RC充电公式tr 0.847 × R × C从0.3VCC到0.7VCC的时间。代入tr300nsC60pF得到R 300ns / (0.847 × 60pF) 5.9kΩ。所以上拉电阻不能大于5.9kΩ。考虑到内部上拉是10kΩ外部上拉选4.7kΩ并联后是3.2kΩ满足要求。第三步验证低电平。I_OL (5V - 0.4V) / 3.2kΩ 1.44mA。TXS0102的MOS管导通电阻典型值是50Ω压降是72mV低电平在0.47V左右。5V TTL的低电平阈值是0.8V所以0.47V是安全的。第四步验证高电平。高电平由上拉电阻拉到5VTXS0102的输入高电平阈值是2V5V远高于2V没问题。所以最终选型是B侧加4.7kΩ上拉电阻A侧不加。实测波形显示上升时间大约280ns低电平0.45V高电平5V通信稳定。提示如果你不确定总线电容是多少可以用一个简单的方法估算在总线上加一个已知阻值的上拉电阻测量上升时间然后反推电容。公式是C tr / (0.847 × R)。这个方法虽然不够精确但对于大多数应用来说已经足够了。5. PCB布局中的隐藏陷阱去耦电容和走线电感5.1 去耦电容该放多远为什么0.1uF不是万能药TXS0102的数据手册里推荐在VCCA和VCCB引脚附近各放一个0.1uF的去耦电容。很多新手照做了但板子打回来之后还是有问题。为什么因为去耦电容的位置和走线方式比电容值本身更重要。去耦电容的作用是提供一个低阻抗的本地电荷储备当芯片内部电路瞬间需要大电流时电容可以就近供电避免电流从远处的稳压器经过长走线流过来因为长走线有电感会阻碍电流的快速变化。如果去耦电容离芯片太远比如超过5毫米那么电容和芯片之间的走线电感就会抵消电容的效果。我见过一块板子去耦电容放在芯片旁边大约10毫米的位置走线宽度只有0.2毫米。结果用示波器测VCCA引脚上的纹波发现每次信号跳变时都有大约200mV的尖峰。后来把电容移到距离引脚2毫米以内走线加宽到0.5毫米尖峰降到了50mV以下。正确的做法是去耦电容的焊盘尽量靠近芯片的电源引脚走线尽量短而粗。如果空间允许可以在芯片的电源引脚旁边放两个电容一个0.1uF一个1uF。0.1uF负责高频去耦1uF负责低频去耦。两个电容并联覆盖更宽的频率范围。另外电容的接地端也要就近接到芯片的GND引脚不要通过过孔绕到板子背面的地平面。如果必须用过孔那就多打几个过孔降低接地电感。5.2 走线电感对高速信号的影响一个真实案例走线电感对电平转换的影响在高速信号下特别明显。我做过一个SPI电平转换的项目速率是10MHz。TXS0102的A侧接3.3VB侧接5V。SPI的时钟线经过TXS0102之后波形出现了严重的过冲和振铃幅度达到了1V以上。用示波器测TXS0102的B侧输出发现上升沿有大约2纳秒的延迟然后是一个幅度1.5V的过冲接着是几个周期的振铃。这种波形如果直接送给5V的SPI从器件可能会导致误触发。问题的根源是走线电感。TXS0102的B侧输出通过一段大约3厘米长的走线连接到从器件走线的电感大约是30nH。当TXS0102的输出MOS管快速导通时电流变化率di/dt很大走线电感上产生的感应电动势V L × di/dt。假设di/dt是10mA/nsL是30nH那么V 30nH × 10mA/ns 0.3V。这个感应电动势叠加在信号上就形成了过冲。解决办法有两个第一缩短走线长度把TXS0102尽量靠近从器件放置第二在走线末端加一个串联端接电阻阻值等于走线的特征阻抗通常是33Ω到50Ω。串联端接电阻可以吸收反射减少过冲和振铃。我试过在SPI时钟线上加一个33Ω的串联电阻过冲从1.5V降到了0.3V振铃也基本消失了。但要注意串联电阻会增加上升时间对于10MHz的SPI来说33Ω电阻配上10pF的负载电容时间常数是0.33ns影响不大。但如果你的信号速率更高比如50MHz那就要重新计算了。5.3 地平面处理不当引发的串扰问题PCB布局中地平面的完整性对电平转换电路的性能影响很大。如果地平面被分割成多个区域或者地平面上有长槽返回电流就会被迫绕路形成大的环路面积导致电磁辐射和串扰。我遇到过一块板子TXS0102的GND引脚通过一个过孔连接到板子背面的地平面但地平面在芯片下方被一条电源走线分割成了两半。结果A侧的信号跳变时B侧的信号上出现了大约200mV的串扰尖峰。后来把电源走线移到板子边缘保持芯片下方的地平面完整串扰降到了20mV以下。对于TXS0102这种双电源器件我建议在芯片下方铺一块完整的地铜皮并且用多个过孔把顶层和底层的地平面连接起来。过孔的数量至少4个分布在芯片的四个角附近。如果空间允许可以在芯片的GND引脚旁边再打一个过孔进一步降低接地阻抗。另外A侧和B侧的走线尽量不要平行走太长的距离。如果必须平行走中间要加地线隔离。地线隔离可以显著降低容性耦合减少串扰。6. 从踩坑到避坑我的TXS0102检查清单6.1 原理图阶段必须确认的五个要点每次我在原理图里放TXS0102都会按这个清单过一遍第一确认VCCA接的是低压侧VCCB接的是高压侧而且VCCA ≤ VCCB。如果系统里只有一种电压比如3.3V和3.3V那TXS0102也可以用但没必要直接用电阻分压或者干脆直连更简单。第二确认上拉电阻只加在一侧。如果是I2C总线加在高压侧如果是SPI或UART通常不需要外部上拉因为TXS0102的内部上拉已经够了除非速率很高。第三确认去耦电容的位置。在原理图上去耦电容要画在芯片的电源引脚旁边不要画在远处。Altium Designer里可以用“Place” - “Directive” - “Parameter”给电容添加“Near Pin”属性提醒PCB布局时注意。第四确认A侧和B侧的信号方向。虽然TXS0102是自动方向感应的但如果你把A1和B1接反了比如A1接MCU的TXB1接传感器的TX那通信肯定失败。原理图上要用网络标签明确标注信号方向比如“MCU_TX”和“SENSOR_RX”。第五确认使能引脚如果有的话。TXS0102没有使能引脚但有些类似的芯片有OE引脚需要上拉或下拉。如果你用的是TXS0102这一步可以跳过。6.2 PCB布局完成后的自检流程PCB布局完成后我会做一次自检主要看这几个地方第一用Altium Designer的“3D视图”查看芯片的摆放方向。SOT-23-6封装有方向性引脚1的位置要跟原理图一致。如果放反了VCCA和VCCB就接反了。第二用“Design” - “Rules” - “Clearance”检查走线间距。TXS0102的A侧和B侧走线之间要保持至少3倍线宽的间距减少串扰。如果空间紧张至少要保持2倍线宽。第三用“Tools” - “Design Rule Check”跑一遍DRC重点看电源网络的走线宽度。VCCA和VCCB的走线宽度建议不小于0.3毫米如果电流较大还要加宽。第四用“Reports” - “Measure Primitives”测量去耦电容到芯片电源引脚的距离。如果超过5毫米就要调整布局。第五用“View” - “Board Insight”查看地平面的完整性。如果芯片下方的地平面有分割就要调整走线或铺铜。6.3 上电调试时的排查顺序板子打回来焊接好上电之前先做这几件事第一用万用表测VCCA和VCCB对地的电阻确认没有短路。正常值应该在几百欧姆到几千欧姆之间如果接近0欧姆说明有短路。第二上电用万用表测VCCA和VCCB的电压确认在允许范围内。VCCA应该在1.65V到3.6V之间VCCB应该在2.3V到5.5V之间。第三用示波器测VCCA和VCCB上的纹波确认峰峰值小于50mV。如果纹波太大检查去耦电容和电源走线。第四给A侧或B侧输入一个方波信号用示波器测另一侧的输出。如果输出波形正常说明芯片工作正常。如果输出一直是低电平或高电平检查上拉电阻和信号方向。第五如果通信失败先用示波器看波形确认上升沿和下降沿是否正常。如果上升沿太缓加大上拉电流减小上拉电阻如果低电平太高减小上拉电流增大上拉电阻或检查MOS管是否损坏。这套流程我用了很多次基本上能在十分钟内定位问题。最怕的是不上电直接写代码然后发现通信失败再回头查硬件那样浪费的时间就多了。7. 什么时候该放弃TXS0102换用其他方案TXS0102不是万能的。如果你的应用场景满足以下任何一个条件我建议你考虑其他方案条件一通信速率超过10MHz。TXS0102的自动方向感应机制在高速下会引入较大的延迟和抖动不适合高速信号。这种情况下可以用TXB0102推挽输出或者专用的高速电平转换芯片。条件二总线电容超过200pF。TXS0102的内部上拉太弱即使加外部上拉低电平也会抬得太高。这种情况下可以用TXS0108E8通道驱动能力更强或者用分立MOS管搭建电平转换电路。条件三需要双向自动方向感应但总线是推挽输出的。TXS0102的内部上拉会和推挽输出打架导致大电流。这种情况下必须用TXB0102或类似的方向控制型电平转换器。条件四成本极度敏感。TXS0102的价格大约在1元到2元人民币之间如果你只需要转换一个通道用两个电阻加一个N沟道MOS管就能搞定成本不到0.1元。当然分立方案的PCB面积会大一些而且需要你自己计算电阻值。我个人的经验是对于I2C、SMBus、1-Wire这类开漏总线TXS0102是性价比很高的选择只要注意上拉电阻和电源顺序就行。对于SPI、UART这类推挽总线如果速率不高低于5MHzTXS0102也能用但要注意内部上拉的影响。如果速率高或者总线电容大直接上TXB0102或者专用芯片省心省力。最后再分享一个小技巧如果你手头没有TXS0102可以用两个N沟道MOS管比如2N7002搭建一个双向电平转换电路。原理很简单MOS管的源极接低压侧漏极接高压侧栅极接低压侧的电源。低压侧拉低时MOS管的体二极管导通把高压侧也拉低高压侧拉低时MOS管导通把低压侧拉低。这个电路不需要方向控制成本极低但速度比TXS0102慢适合低速信号。
返回列表