ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TXS0102电平转换芯片翻车实录:三大常见错误与避坑指南

TXS0102电平转换芯片翻车实录:三大常见错误与避坑指南 1. 为什么TXS0102这么容易翻车TXS0102这颗芯片在电子圈里的地位挺微妙的。几乎每个做过3.3V和5V混合供电项目的工程师都听说过它甚至抽屉里就躺着几片样品。但你要是去论坛里搜一圈会发现一个很有意思的现象用TXS0102出问题的人比用两个MOS管搭电平转换出问题的人还多。这听起来不太合理毕竟TXS0102是专门为电平转换设计的芯片内部集成了上拉电阻和方向控制按理说应该比分立方案更省心才对。问题恰恰出在“省心”这两个字上。TXS0102的官方数据手册写得很清楚它是一颗自动方向感应的电平转换器支持开漏和推挽两种输出模式A端参考电压范围1.65V到3.6VB端2.3V到5.5V最高速率能跑到24Mbps推挽和2Mbps开漏。这些参数看起来都很美好但手册里有一句话经常被忽略TXS0102的A端和B端都内置了10kΩ的上拉电阻且这些电阻是连接到各自VCCA和VCCB的。这意味着什么意味着你在外部如果再并联上拉电阻等效阻值会变小上升沿变快但下降沿的驱动能力是固定的边沿不对称的问题就来了。我见过太多新手拿到这颗芯片直接照着参考电路连上然后发现I2C通信时好时坏或者SPI时钟波形惨不忍睹。他们第一反应是芯片坏了换一片还是不行。第二反应是焊接问题重新吹一遍依然不行。最后跑到群里问得到的回答往往是“加个上拉电阻试试”——然后问题更严重了。这就是典型的“不知道自己在做什么”导致的连环翻车。这篇文章就是写给那些正在或者准备用TXS0102做电平转换的朋友。我会把最常见的三个错误拆开揉碎讲清楚每个错误都配上原理分析、实测波形对比和具体的修改方案。不管你是刚入门的电子专业学生还是工作了两三年但一直没搞明白电平转换细节的工程师看完之后至少能少走半年弯路。2. 错误一把TXS0102当成万能双向电平转换器2.1 自动方向感应的真实工作原理很多人对TXS0102最大的误解就是以为它像一颗理想的“双向电平转换器”——A端给什么信号B端就自动转换成对应电压的信号反之亦然。这个理解不能说完全错但漏掉了关键的限制条件。TXS0102的内部结构其实是一个单发器one-shot驱动的MOS开关加上弱上拉电阻的组合。当A端检测到下降沿时内部单发器触发短暂打开MOS管把B端拉低当B端检测到下降沿时同样触发单发器把A端拉低。注意这里的关键词是“下降沿”。也就是说TXS0102的方向感应是基于边沿检测的而不是基于电平高低。这个机制决定了它在开漏输出场景下工作得最好因为开漏输出只有下降沿是主动的上升沿靠上拉电阻。但在推挽输出场景下如果两端的驱动能力不匹配就会出现问题。举个例子A端是3.3V的推挽输出B端是5V的推挽输出两边同时驱动同一个通道如果A端先拉低B端还在输出高电平那么MOS管打开时B端的5V会通过MOS管灌到A端形成瞬间大电流。虽然TXS0102内部有保护但长期这样工作芯片寿命会大打折扣。2.2 什么时候必须用开漏模式判断标准其实很简单看你的信号线上有没有多个设备共享一根线。I2C是最典型的例子SDA和SCL都是开漏结构总线上可以挂多个主从设备任何一个设备拉低总线其他设备都能检测到。这种场景下TXS0102的自动方向感应机制完美匹配因为每个设备只负责拉低上升沿由总线上拉电阻完成。但如果你用的是SPI情况就不同了。SPI的MOSI和SCK是主设备推挽输出MISO是从设备推挽输出。虽然TXS0102也能用但你需要确认两端的驱动能力是否对称。我实测过的一个案例STM32F103的SPI13.3V推挽通过TXS0102连接到W25Q64 Flash3.3V推挽通信速率10MHz波形还算干净。但换成5V的AVR单片机做主设备时同样的电路在5MHz就开始出现数据错误。原因就是AVR的推挽驱动能力比STM32强B端拉低时A端还没完全释放导致MOS管直通时间过长。注意如果你的信号是推挽输出且速率超过5MHz建议优先考虑TXB0102或者分立MOS方案TXS0102在推挽模式下的边沿对称性确实一般。2.3 一个真实的翻车案例去年帮一个朋友调试他的项目他用TXS0102做UART电平转换MCU端3.3V外设端5V波特率115200。电路很简单VCCA接3.3VVCCB接5VA1接MCU的TXB1接外设的RXA2接MCU的RXB2接外设的TX。上电后能通信但每隔几十个字节就丢一个。他用示波器看波形发现B1端的下降沿很陡但上升沿有台阶像是被什么东西拽住了。我让他把外设端的TX断开只测MCU发往外设的方向波形正常。再把MCU端的TX断开只测外设发往MCU的方向波形也正常。两边同时接上就出问题。后来查了半天发现是外设的TX引脚在空闲时输出高电平而MCU的RX引脚内部有弱上拉两个高电平通过TXS0102的MOS管和上拉电阻形成了微弱的电流通路导致上升沿被拖慢。解决方案很简单在MCU的RX引脚上串联一个100Ω电阻限制这个电流。或者更彻底一点把外设的TX配置成开漏输出外部加上拉电阻。这个案例说明了一个道理TXS0102不是“接上就能用”的芯片你必须清楚两端设备的输出结构。3. 错误二上拉电阻乱加波形越调越烂3.1 内置上拉电阻的隐藏陷阱TXS0102的数据手册第一页就写了“内置10kΩ上拉电阻”但很多人看到这句话的反应是“哦省事了”而不是“等等这个电阻会带来什么影响”。10kΩ的上拉电阻在100kHz的I2C总线上是够用的但在400kHz甚至1MHz的速率下上升时间会变得非常可观。上升时间的计算公式是t_r ≈ 2.2 × R_pullup × C_bus。假设你的总线电容是50pF一个典型的PCB走线加两个器件的引脚电容10kΩ上拉电阻对应的上升时间是1.1μs。对于100kHz的I2C周期10μs1.1μs的上升时间占11%勉强能接受。但对于400kHz的I2C周期2.5μs上升时间占了44%眼图已经快闭合了。这时候如果你在外部再并联一个10kΩ上拉电阻等效阻值变成5kΩ上升时间降到0.55μs看起来是改善了。但下降沿呢下降沿的驱动能力是由TXS0102内部的MOS管决定的典型导通电阻是几十欧姆加上外部上拉电阻的灌电流下降时间基本不变。结果就是上升沿变快、下降沿不变占空比失真时序余量反而变小了。3.2 正确的上拉电阻计算方法那到底该不该加上拉电阻答案是看速率和总线电容。我的经验法则是这样的信号速率总线电容建议上拉电阻备注≤100kHz≤100pF不外加用内置10kΩ上升时间约2.2μs够用400kHz≤50pF外加4.7kΩ等效约3.2kΩ上升时间约0.35μs1MHz≤30pF外加2.2kΩ等效约1.8kΩ上升时间约0.12μs≥2MHz≤20pF考虑换芯片TXS0102推挽模式上限24Mbps但边沿质量下降这个表格是基于实测经验总结的不是理论推导。实际使用时还要考虑VCCA和VCCB的电压差。如果VCCA1.8VVCCB5V压差很大内置上拉电阻的电流会比较大这时候外加电阻要谨慎避免总灌电流超过芯片的绝对最大额定值。提示TXS0102的每个通道最大灌电流是±50mA但这是极限值长期工作建议控制在20mA以内。计算方法是I VCCB / R_等效。比如VCCB5VR_等效3.2kΩ电流约1.56mA完全安全。3.3 实测波形对比加与不加的区别我用同一个电路做了两组测试MCU端3.3V外设端5VI2C速率400kHz总线电容约45pF。第一组不加外部上拉电阻第二组在B端并联4.7kΩ上拉电阻。用示波器抓SDA线的波形结果如下不加外部上拉时上升沿从0.3V到4.7V用了约1.2μs下降沿约80ns。上升沿明显偏慢在400kHz下勉强能识别但噪声容限很低。加上4.7kΩ后上升沿降到约0.4μs下降沿基本不变。波形看起来对称多了通信也稳定了。但这里有个细节我加的是4.7kΩ不是10kΩ。为什么因为并联10kΩ后等效5kΩ上升时间约0.55μs改善不够明显。4.7kΩ并联10kΩ后等效约3.2kΩ上升时间约0.35μs效果更好。但如果你加的是1kΩ等效约0.9kΩ上升时间约0.1μs看起来更快了但灌电流变成5.5mA功耗增加而且下降沿的MOS管需要吸收更大的电流可能导致地弹。所以上拉电阻不是越小越好要找到平衡点。4. 错误三PCB布局把电平转换芯片当普通逻辑芯片处理4.1 去耦电容不是“有就行”TXS0102的VCCA和VCCB引脚都需要去耦电容这是常识。但很多人在PCB布局时把0.1μF的电容放在离芯片两厘米远的地方觉得“反正都是同一个电源网络放哪儿都一样”。这个想法在低频电路里可能没问题但在电平转换电路里去耦电容的位置直接决定了芯片能否稳定工作。TXS0102内部有单发器电路单发器的触发依赖于电源电压的稳定。当输出端发生快速跳变时芯片内部的MOS管开关会在电源线上产生瞬间的电流尖峰。如果去耦电容离得远电源线的寄生电感会让这个尖峰变成电压波动轻则导致单发器误触发重则导致输出波形出现振铃。我实测过去耦电容距离芯片超过5mm时输出波形的过冲能到1V以上在5V系统里这是很危险的。正确的做法是每个电源引脚配一个0.1μF的陶瓷电容距离引脚不超过2mm并且电容的地端要直接打到芯片下方的地平面。如果空间允许再并联一个1μF的电容放在稍远一点的位置用来滤低频噪声。4.2 走线长度和参考平面的关系电平转换芯片通常放在两个不同电压域的边界上比如3.3V区域和5V区域的交界处。这时候走线长度就很关键了。A端的走线如果太长会引入额外的寄生电容和电感影响上升沿。B端的走线如果太长同样会影响下降沿。我的经验是A端和B端的走线都尽量控制在10mm以内如果实在做不到优先保证B端走线短因为B端电压高同样的寄生参数下高电压信号的边沿更容易受干扰。另外走线下方一定要有完整的参考平面。如果A端和B端分别参考不同的地平面两个地平面之间要用0Ω电阻或者磁珠连接避免地电位差导致逻辑误判。注意如果A端和B端的地是同一个地那没问题。但如果是隔离的两个地TXS0102不能直接跨地使用需要额外的隔离器件。4.3 一个因为布局导致的诡异故障有个做工业控制的朋友他的板子上TXS0102用来转换RS485收发器的逻辑信号。原理图检查了三遍没问题元器件也都是正品但通信就是不稳定偶尔丢包。他用示波器看波形发现A端的信号很干净B端的信号在下降沿有振铃幅度大概0.8V。他以为是收发器的问题换了一片还是这样。后来我让他把PCB的布局图发过来一眼就看出了问题TXS0102的VCCB去耦电容放在板子背面通过一个过孔连接到正面过孔距离芯片大概8mm。而且B端的走线从芯片出来之后绕了一个大弯才到收发器总长度超过25mm。这两个因素叠加导致B端的电源阻抗和信号回路电感都偏大下降沿的振铃就是回路电感引起的。修改方案很简单把去耦电容移到芯片正面距离VCCB引脚1.5mmB端走线重新拉直长度控制在8mm以内。改完之后振铃降到0.2V以下通信稳定了。5. 常见问题速查与排查思路5.1 通信不稳定时好时坏这是最常见的症状。排查顺序应该是先看电源再看波形最后看时序。电源方面用万用表测VCCA和VCCB的电压是否在数据手册规定的范围内纹波是否超过50mV。波形方面用示波器抓上升沿和下降沿看是否有振铃、台阶或者过冲。时序方面确认信号的速率是否超过了TXS0102在该模式下的上限。我整理了一个速查表按症状分类症状可能原因排查方法解决方案偶尔丢包上升沿太慢测上升时间减小上拉电阻波形有振铃去耦不良测电源纹波靠近引脚加0.1μF下降沿有台阶两端驱动冲突断开一端测波形改开漏或串电阻完全无输出方向感应失效测输入边沿确认输入有下降沿发热严重直通电流过大测电源电流检查两端电平冲突5.2 开漏和推挽到底怎么选这个问题在论坛里被问过无数次。我的判断逻辑是这样的如果信号线上有多个设备且任何一个设备都可能拉低总线那就必须用开漏模式比如I2C、SMBus、1-Wire。如果信号是点对点的且发送端是推挽输出那可以用推挽模式比如SPI、UART。但要注意推挽模式下TXS0102的速率上限虽然标称24Mbps实际使用中超过10Mbps就开始出现边沿劣化建议留足余量。还有一个折中方案如果两端都是推挽输出但速率不高比如1MHz以下可以在TXS0102的A端或B端串联一个33Ω到100Ω的电阻用来限制直通电流同时不影响正常通信。这个电阻的值需要根据实际波形调整太大影响上升沿太小起不到保护作用。5.3 能不能用两个MOS管替代TXS0102可以而且很多老工程师更倾向于分立方案。两个N沟道MOS管背靠背连接源极接低电压端漏极接高电压端栅极接低电压端的电源。这个电路的成本比TXS0102低而且没有方向感应的限制双向都能工作。但缺点是MOS管的导通电阻和寄生电容会影响速率而且需要额外的上拉电阻。如果你的信号速率在1MHz以下分立方案完全够用而且更灵活。如果速率更高或者板子空间紧张TXS0102还是更方便的选择。6. 几个容易被忽略的细节6.1 输入信号的边沿速率要求TXS0102的数据手册里有一个参数叫“输入边沿速率”单位是V/ns。这个参数很多人不看但它直接决定了单发器能否可靠触发。如果输入信号的边沿太慢比如超过10ns从0V上升到3.3V单发器可能检测不到有效的下降沿导致输出不动作。我遇到过用RC电路做延时的场景信号边沿被电容拖得很慢TXS0102就完全不工作了。解决方案是在输入端加一个施密特触发器整形或者换用带施密特输入的电平转换芯片。6.2 电源上电顺序的影响如果VCCA和VCCB不是同时上电的比如VCCA先上电VCCB后上电在VCCB还没建立的时候A端的信号可能会通过内部MOS管的体二极管灌到B端导致B端出现异常电压。虽然TXS0102内部有一定的保护但长期这样工作会影响可靠性。建议在VCCB上并联一个肖特基二极管到VCCA或者使用带电源顺序控制的电平转换芯片。6.3 温度对内置上拉电阻的影响TXS0102内置的10kΩ上拉电阻是半导体电阻温度系数比较大。在-40°C到85°C的范围内阻值可能变化±20%。这意味着在低温下上升时间会变长在高温下上升时间会变短但灌电流会增大。如果你的产品要在宽温范围内工作外部上拉电阻要选温度系数小的金属膜电阻并且留足余量。7. 我的实操心得调了这么多年的电平转换电路我最大的体会是不要相信“自动”两个字。TXS0102的自动方向感应确实方便但方便的前提是你理解它的工作原理和限制条件。我见过太多人把芯片焊上就去调软件调了半天发现是硬件问题。也见过有人把示波器探头往上一搭看到波形“差不多”就认为没问题结果批量生产时一致性很差。如果你正在用TXS0102我建议你至少做三件事第一用示波器仔细看上升沿和下降沿不要只看有没有波形第二确认两端设备的输出结构是开漏还是推挽驱动能力如何第三去耦电容一定要靠近引脚这是花小钱办大事的典型。这三件事做完90%的问题都能避免。最后分享一个小技巧如果你不确定上拉电阻该用多大可以先不外加用示波器测上升时间。如果上升时间小于信号周期的10%就不用加如果在10%到30%之间加一个4.7kΩ到10kΩ的电阻如果超过30%要么加更小的电阻要么降低通信速率。这个方法虽然土但很实用比翻手册算公式快多了。
返回列表