ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

双通道双向电平转换芯片MAX14595:嵌入式I2C电压匹配的实用方案

双通道双向电平转换芯片MAX14595:嵌入式I2C电压匹配的实用方案 直接上一颗冷门但好用的料MAX14595ETAT。名字念起来拗口本质就是个双通道、双向、超低功耗的逻辑电平转换器。如果你干嵌入式这几年被“3.3V单片机接1.8V传感器”这种破事折腾过或者调I2C时因为电平不匹配导致通讯时好时坏这玩意儿能帮你省掉一大半烦恼。先说清楚它到底解决了什么问题。现在的芯片电压越来越低1.8V甚至1.2V的内核电压很常见但外围传感器、屏幕、存储芯片还大量停留在3.3V甚至5V。两边要通信电平标准不一样直接怼上去轻则逻辑判错、重则烧引脚。传统的方案是拿MOS管加电阻搭分立转换电路或者用电阻分压硬凑但遇到双向总线比如I2C就特别麻烦。MAX14595这种专用芯片把两条通道的双向转换做进了一个SOT-23-8封装里外部几乎不用加任何东西还支持超低功耗关断模式。适合做手机、可穿戴设备、电池供电的物联网节点凡是讲究“省电”和“小板子”的地方都用得上。这篇文章不讲虚的直接把选型思路、电路设计、实测踩坑都写清楚看完你能对照自己的项目直接抄作业。1. 整体设计与选型思路1.1 为什么需要专用电平转换芯片先聊个基础但关键的问题既然网上到处是分立MOS管电平转换电路为什么还要买芯片2019年我做一个温湿度采集器主控用nRF528321.8V/3.3V可配置传感器是SHT30标准的I2C接口工作电压3.3V。当时图省事直接用了两颗2N7002搭的经典双向转换电路结果在常温下跑得好好的一到低温环境零下10度左右通讯就偶尔卡死。排查了很久最后发现是分立电路的上拉电阻和MOS管栅极电容在低温下充放电时间变长导致I2C的上升沿斜率不达标时序边缘超了规格。专用电平转换芯片内部是经过设计的有源电路自带驱动能力和边沿整形不会出现分立MOS管那种“看温度脸色”的问题。MAX14595这类的另一个优势是通道间一致性很好两条通道参数基本一致不像自己挑的电阻、MOS管总有离散性。所以如果你做的是量产产品或者环境条件比较严苛直接用芯片反而整体成本更低——省下的调试时间远比分立元件省下的几毛钱值钱。1.2 MAX14595的核心参数解读这颗料有几个关键指标值得多看两眼。第一是电压范围。VCC和VL两个电源域各自支持1.2V到5.5V这意味着它能覆盖目前主流的低压和传统高压组合。比如1.2V转1.8V、1.8V转3.3V、2.5V转5V全部通吃。你不需要针对每一种电压组合买不同的料一颗搞定大部分场景。第二是静态电流。正常工作时静态电流在微安级别这已经算很低了。更夸张的是关断模式当EN引脚拉低后芯片进入关断状态静态电流能降到纳安级别对电池供电的设备来说这个数字基本可以忽略不计。这是它和普通缓冲器之间最大的区别。第三是速率。虽然它不是为高速信号设计的那是电平转换器的另一个细分方向但应付I2C的标准模式100kbps和快速模式400kbps绰绰有余SPI的几兆赫兹也没问题。如果你的项目用到的是UART、I2C、低速SPI、GPIO按键检测这类场景完全够用。下面这个表是我整理的不同工作状态下电流消耗的参考数据和注意事项工作状态静态电流典型值说明正常工作非翻转微安级两个通道都使能VL和VCC都供电动态翻转随频率升高略有增加几十kHz以下基本可以忽略关断模式EN低电平纳安级芯片内部所有电路断电输出高阻1.3 两个电源域的特殊行为这颗料和普通电平转换器不太一样的地方是它对两个电源域的上电顺序有一定的容忍度。有些芯片要求VCC必须先于VL上电不然会通过内部的ESD保护二极管倒灌电流导致芯片损坏或者系统异常启动。MAX14595的设计相对宽容一些用户手册里明确说两个电源域哪个先上电都行内部有防止倒灌的机制这在多电压系统里非常实用因为很多时候电源时序不是设计者能完全控制的。不过我要提醒一句宽容不等于可以乱来VL和VCC的电压差尽量不要超过5.5V的绝对最大值尤其是VL接5V、VCC接1.2V这种极端组合虽然芯片不会立刻坏但长期可靠性没有保证。2. 核心原理与原理解析2.1 双通道双向传输的工作机制先说双向。很多第一次接触电平转换的工程师会困惑一个引脚既要输入又要输出芯片怎么知道这个引脚现在是输入还是输出实际上MAX14595这类芯片不是“判断”方向而是“自适应”方向。内部采用类似模拟开关配合传输门的设计当一侧总线被拉低时另一侧也会被拉低当一侧释放为高阻时另一侧由上拉电阻拉到高电平。方向是自动的不需要额外的方向控制引脚也不需要软件配置。这种设计的典型受益场景就是I2C。I2C是漏极开路结构设备拉低总线来传输数据多主机时还要做仲裁。如果用方向控制的转换器得先判断当前是主设备在发还是从设备在回逻辑处理非常棘手。MAX14595这种无方向引脚的设计天然适合处理这种双向半双工总线。2.2 开漏与推挽两种模式的区别电平转换芯片通常会区分两种信号类型开漏open-drain和推挽push-pull。开漏信号靠外部上拉电阻提供高电平芯片只需要把低电平传递过去推挽信号则是指芯片内部有源驱动既能拉低也能拉高。MAX14595比较聪明的地方是它把通道做成了两种模式都能支持。对于开漏信号芯片内部会在低压侧和高压侧之间传递低电平状态两侧各配合适的上拉电阻就能工作对于推挽信号芯片会主动驱动两侧不需要外部上拉电阻。这个特性让它的适用范围变得非常广。我建议你这样记忆如果你的总线是I2C或者SMBus那就是开漏模式两侧都要加上拉电阻如果是普通的GPIO按键、UART TX/RX、SPI的MOSI/MISO这类信号那就是推挽模式芯片自己就能驱动外部不需要额外元件。2.3 为什么能做到超低功耗芯片的低功耗设计来自几个层面的协作。第一层是静态电流控制内部参考电路和偏置电路经过优化在保证正常工作的前提下把恒定消耗压到最低。第二层是动态电流优化信号翻转时只在边沿瞬间消耗电流电平稳定时不额外耗电。第三层就是前面提到的关断模式EN引脚直接切断内部主电路几乎只剩下漏电流。打个比方普通电平转换器像一盏一直亮着的白炽灯不管有没有人经过都耗着电MAX14595像感应灯有人来了才亮人走了自动灭而且感应器本身耗的电也极少。对于一年换一次纽扣电池的设备来说这种差异就是能用三个月和能用一年的区别。3. 实操过程与电路设计要点3.1 最小系统电路搭建下面是我在一个实际项目里用到的连接方式主控是1.8V的STM32L0系列外设是3.3V的BME280环境传感器走I2C。这是参考连接关系以引脚功能为准VL - 1.8V低压侧电源 VCC - 3.3V高压侧电源 GND - 共同地 EN - 1.8V或3.3V使能高电平工作 VL端I/O - 接主控I2C引脚1.8V侧 VCC端I/O - 接传感器I2C引脚3.3V侧芯片的VL侧对应低压电源域VCC侧对应高压电源域一一对应连好即可。EN引脚直接接到低压侧的电源上保证上电就工作。两个I2C引脚都是开漏结构所以两侧都需要接上拉电阻。上拉电阻的取值有讲究低压1.8V侧用2.2kΩ到4.7kΩ都可以高压3.3V侧用4.7kΩ到10kΩ具体根据I2C总线上挂了多少设备、总线电容多大来调整。如果两侧的总线上已经各有了上拉电阻那就不用重复加。但要注意有些开发板上的I2C上拉电阻是已经焊死的这时你需要在计算总线上拉强度时把两边的电阻并联效果考虑进去避免上拉过强导致低电平拉不下去。3.2 上拉电阻的选型计算与实测上拉电阻太大边沿变缓高速通信时波形就变形了上拉电阻太小低电平灌电流变大功耗升高芯片可能承受不住。以I2C快速模式400kbps为例上升沿时间要求不超过300ns上拉电阻的最大值取决于总线电容。通常可以用一个简化公式估算R_pullup ≤ t_rise / (0.8473 × C_bus)假设总线电容C_bus是100pF上升沿要求300ns那R_pullup ≤ 300ns / (0.8473 × 100pF) ≈ 3.54kΩ。所以取值3.3kΩ或者2.2kΩ比较稳。如果总线距离很长、设备很多C_bus往200pF以上走就得用小一点的上拉比如1.5kΩ到2.2kΩ。我在实际操作中习惯先在默认值低压侧2.2kΩ高压侧4.7kΩ下跑一遍通信测试然后用示波器看波形如果上升沿有明显的梯形畸变就减小电阻如果低电平电压超过0.4V对3.3V系统来说就加大电阻。示波器是调试电平转换电路最好的工具没有之一。3.3 针对I2C总线的完整配置示例这里给一个可以直接照抄的硬件配置参考针对最常见的1.8V主控和3.3V从设备元件推荐值备注VL侧上拉电阻2.2kΩ 到 3.3kΩ如果VL侧总线上已带上拉可不加VCC侧上拉电阻4.7kΩ 到 10kΩ3.3V侧阻值可以略大EN引脚连接直接接VL电源如果需要软件控制关断接GPIO注意GPIO电平去耦电容VL和VCC各一个0.1μF靠近芯片引脚放置总线速率100kbps / 400kbps实测在400kbps下波形良好要注意的是EN引脚的电压域。如果EN引脚接的是1.8V的GPIO那么EN的高电平就是1.8V这对芯片来说是有效的逻辑高没问题。但如果你想直接用3.3V的GPIO来控制EN而VL是1.8V最好确认一下芯片的EN输入是否兼容这个电压否则建议串联一个限流电阻或者用分压的方式降一下再进去。3.4 推挽信号场景下的连接技巧推挽信号和开漏信号不一样不需要上拉电阻但要注意输入侧不能有外部上拉把电平拽住否则会出现驱动力对抗的问题。比如UART的TX引脚如果外部有一颗10kΩ电阻上拉到3.3V而芯片这一侧是1.8V的VL那就可能出现高电平无法完全拉到1.8V的情况导致接收端判断不准确。正确的做法是把推挽信号直接接到转换器的两端确保输入侧没有额外的上拉或者下拉电阻。如果主控的IO配置了内部上拉要在软件里把内部上拉关掉再测这个坑我踩过一次。当时一个项目里GPIO内部上拉默认开启外部接了电平转换后低电平被拉高到0.6V怎么调都调不好最后发现是内部上拉在捣乱。4. 常见问题与排查技巧实录4.1 通讯不稳定时好时坏这种问题在电平转换电路里最常见的三个原因电源去耦不良、上拉电阻不匹配、地平面连接不畅。先看电源。用示波器探头夹在VL或者VCC引脚上看如果电压在信号翻转时有明显的毛刺或者跌落多半是去耦电容不够或者位置离芯片太远。0.1μF的陶瓷电容应该尽可能靠近电源引脚走线短而粗最好再并联一个1μF到10μF的电容稳住低频。再看上拉。前面讲过I2C开漏信号靠上拉提供高电平如果上拉电阻选大了上升沿变缓在400kbps下就可能产生误码。把总线速率降到100kbps试试如果问题消失大概率是上拉太弱。最后看地。两个电压域的“地”必须是同一点最好通过星型连接汇聚到主控的GND上不要在两侧之间形成地环路。地环路会引起共模噪声导致信号电压的参考点漂移问题很隐蔽。4.2 输出高电平电压不对有次调试遇到一个奇怪的现象低压侧输出高电平只有0.9V而预期是1.8V。查了半天发现VL侧的总线上挂着一个内部带上拉的传感器这个传感器是3.3V供电它的内置上拉把信号线拉到了3.3V然后通过芯片内部的保护二极管反向倒灌到1.8V电源上直接把系统拉垮了。这种“不同电压域之间意外连接”的问题在多设备系统里特别容易发生。排查方法是把总线上所有设备的引脚状态逐一确认看有没有哪颗芯片的引脚默认配置了上拉或者下拉。很多传感器上电默认就是开漏加上拉模式这个状态在初始化之前就可能影响总线电平。4.3 关断模式下电流还是很大EN拉低以后芯片应该进入关断模式纳安级的电流。如果实测电流明显超标先看EN引脚电压是否真的低于阀值。有些万用表测出来是0V但实际因为走线过长、受到串扰芯片引脚上的电压可能有零点几伏的波动导致芯片没有完全关断。另外如果电平转换器两侧还接着其他芯片这些芯片的漏电流也会叠加到总电流里这锅不能全让转换器背。测功耗的时候把其他负载断开单独测转换器一路才能得到准确的数据。4.4 问题排查速查表故障现象可能原因排查方法与对策通讯完全不通电源接反或漏接先用万用表量VL、VCC和GND对地电压通讯时好时坏上拉电阻偏大或偏小示波器看上升沿调整上拉阻值低电平不为0总线外部有其他上拉逐一排查总线上所有设备的默认引脚状态高电平偏低电压域间异常导通检查是否有内部保护二极管被正向偏置功耗异常高EN没有真正拉低确认EN电压检查走线串扰高速模式波形差总线电容过大减小上拉电阻或者降低速率4.5 关于“双向rrt”这类热词的联动思考最近在论坛里看到“双向rrt”这种词频繁出现一开始还以为是电路术语后来发现是某个圈子里的黑话大概是“双向认证”之类的东西。在电平转换这个领域真正和“双向”强相关的就是I2C这种半双工总线的处理能力。MAX14595自适应的双向能力让我在做系统设计时少考虑了很多方向控制的逻辑这点对固件工程师来说很友好。如果换用需要方向控制脚的转换芯片底层驱动就得频繁切换方向不仅代码变复杂还可能因为切换时机不对导致总线冲突。5. 选型对比与场景适配建议5.1 什么时候选MAX14595什么时候选别的市面上电平转换方案很多MAX14595有自己合适的生态位也有不适合的场景。如果你的信号速率是几十兆赫兹以上比如SDIO、DDR接口那别选它得找专门的高速转换器。如果电压组合超出1.2V到5.5V的范围那也得另找。但它最适合的场景很明确低速双向总线、电池供电、空间受限。具体来说I2C总线电平转换首选1.8V/2.5V/3.3V混合系统里的低速GPIO信号合适SPI总线若速率在几MHz以内可以用纽扣电池供电的传感器节点非常合适关断模式太香了5.2 多通道需求怎么处理如果要转的信号超过两路有两种做法一是用两片MAX14595各自独立供电和使能二是找四通道或者八通道的转换器。用多片的好处是灵活性高坏处是占板面积和成本上升。我个人的习惯是如果信号数量是2的倍数且不是I2C这种总线型I2C只需两组信号线优先考虑集成度更高的方案如果只是偶尔需要把三四个GPIO转一下电平用两片MAX14595也很方便封装小布局不困难。5.3 一个冷门但实用的细节MAX14595的低压侧VL可以支持到1.2V这在超低压系统里特别有用。有些MCU的内核电压可以降到1.2V来省电但GPIO口在这种电压下还能不能可靠工作要打问号。带上电平转换芯片后主控以低压运行外设以高压运行两边都工作在最佳状态功耗和性能兼得。很多低功耗设计忽略了这个细节其实这是一个非常好的优化方向。6. 一些实操中的个人体会6.1 波形测试比理论计算更重要电平转换电路最忌讳“感觉没问题”就上量。我自己的流程是先按经验值焊上电路然后用示波器同时观察两个通道的输入和输出波形重点看上升沿时间、低电平电压、有没有振铃。只要波形干净通讯测试基本不会有问题。反过来即使通讯暂时正常波形有异常我也会追查到底因为这些问题在温度变化、电压波动时随时会暴露。6.2 量产品里省掉上拉电阻是常见坑很多开发板上自带I2C上拉电阻所以原型调试时一切正常。但到了做量产品的时候你可能为了省几个电阻的钱把板载上拉去掉了结果发现通讯开始出错。根本原因就是原来开发板上的上拉承担了电平转换电路的上拉工作。做原理图评审的时候一定要逐条确认总线上拉加了吗加的阻值对吗位置合适吗三个方面缺一不可。6.3 这是一个“小料解决大问题”的典型回到开头那个温湿度采集器项目后来我把分立MOS管方案换成了MAX14595三块测试板连续跑了三个月的低温循环测试I2C通讯一次都没有卡过。从那之后我在所有涉及混合电压I2C的项目里都用它再也没在电平转换上熬夜调过波形。如果你也正被两个电压域之间的通信折磨不用纠结直接上这个方案省下来的时间干点别的不香吗
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表