ARTICLE DETAIL

资讯详情

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

《第7篇:HEF4051深度解析——8选1模拟开关的时序与采样避坑指南》

《第7篇:HEF4051深度解析——8选1模拟开关的时序与采样避坑指南》 本文定位不讲寄存器不贴数据手册只从“BCM为什么需要模拟复用器”出发把HEF4051的“通道切换ADC采样时序常见坑”讲透。读完你就能理解为什么一颗看似简单的模拟开关芯片用不好会让ADC读数乱跳。目录前言HEF4051在BCM里管什么一、HEF4051是什么1.1 一句话概括1.2 工作原理简化版1.3 关键参数速览二、为什么BCM需要HEF40512.1 先看一个“天真”的想法2.2 HEF4051 vs 其他方案三、HEF4051的工作原理3.1 模拟开关的导通电阻Ron3.2 Ron对ADC测量的影响四、实战案例传感器信号的轮询采集4.1 需求描述4.2 硬件方案4.3 软件控制流程4.4 关键时序建立时间Settling Time4.5 软件中的两种处理方式五、设计注意事项5.1 通道切换时的“鬼影”现象5.2 输入信号范围5.3 时序控制总结5.4 PCB布局六、总结本系列总结前言HEF4051在BCM里管什么回到第一篇文章的BCM架构图你会发现一个有趣的现象MCU的ADC通道数量永远不够用。BCM需要采集的模拟信号包括模拟信号类型说明雨量传感器电压信号0~5V用于自动雨刮光照传感器电压信号0~5V用于自动大灯车外温度传感器电阻分压热敏电阻用于仪表显示和空调控制车内温度传感器电阻分压热敏电阻用于自动空调驾驶员座椅位置反馈电压信号电位计用于座椅位置记忆方向盘角度传感器电压信号部分车型用于ESP/灯光辅助蓄电池电压监测电压信号分压后用于电源管理刹车开关信号电压信号用于制动灯/VCU这些模拟信号少则4~5路多则8~12路。但MCU的ADC通道通常只有4~8个而且还要分配给其他功能如内部温度监测、电源电压监测等。HEF4051就是来解决这个问题的用1个ADC通道读取最多8路模拟信号。一、HEF4051是什么1.1 一句话概括HEF4051是一颗8通道模拟多路复用器Analog Multiplexer——通俗地说就是一个由数字信号控制的“8选1电子开关”通过3根地址线A0/A1/A2的二进制编码从8个输入通道Y0~Y7中选择1个连接到公共输出端Z。1.2 工作原理简化版text--------------------------------------------------------- | HEF4051 内部框图 | --------------------------------------------------------- | | | Y0 ──┐ | | Y1 ──┤ | | Y2 ──┤ | | Y3 ──┼── 8选1模拟开关 ── Z ── MCU的ADC输入引脚 | | Y4 ──┤ | | Y5 ──┤ | | Y6 ──┤ | | Y7 ──┘ | | | | 地址解码器 ◄── A0, A1, A2 (来自MCU的GPIO) | | | | 使能控制 (E引脚) | | | ---------------------------------------------------------选通逻辑A2A1A0选中的通道000Y0001Y1010Y2011Y3100Y4101Y5110Y6111Y71.3 关键参数速览参数值说明通道数88选1导通电阻Ron典型值约125Ω~350Ω随供电电压和温度变化通道导通时的等效电阻会影响ADC测量精度开关速度约几十纳秒到几百纳秒通道切换速度通常远快于ADC采样时间供电电压3V~15V宽电压范围输入信号范围0V ~ VDD不能超过供电电压范围控制接口3路GPIOA0/A1/A2非常简单无需SPI等复杂协议二、为什么BCM需要HEF40512.1 先看一个“天真”的想法有些刚入行的工程师可能会想“MCU的ADC通道不够那我换一个ADC通道更多的MCU不就行了”理论上可以但实际代价很大ADC通道更多的MCU往往封装更大、价格更高、供货周期更长。即使换用更多ADC通道的MCU也不一定够用例如需要8路模拟输入但MCU只有6路ADC可用。ADC通道通常还与其他功能复用引脚如GPIO增加ADC通道会导致可用GPIO减少反过来又限制了其他功能。这就是为什么HEF4051这类模拟复用器在BCM中被广泛采用用极低的成本一颗几毛钱到几块钱的芯片解决了“ADC通道不足”这个实际工程问题。2.2 HEF4051 vs 其他方案对比项换用更多ADC通道的MCU使用HEF4051扩展通道使用多颗ADC芯片成本高MCU价格增加低HEF4051价格便宜高多颗ADC芯片PCB面积中等小大MCU引脚占用不变或增加3个GPIO取决于ADC芯片的接口如SPI/I2C采样精度直接采样精度最高略有损耗导通电阻影响取决于ADC芯片性能采样速度快较慢需要切换稳定时间快可并行采样复杂度低低中HEF4051是最经典的“低成本的ADC扩展方案”虽然采样速度稍有牺牲但在BCM这种对采样速率要求不高的场景中传感器信号多为直流或缓变信号完全适用。三、HEF4051的工作原理3.1 模拟开关的导通电阻RonHEF4051内部是CMOS传输门Transmission Gate由PMOS和NMOS并联组成text输入信号 ──┤ PMOS ├── 输出信号 │ │ ├ NMOS ├ │ │ └──────┘ 控制信号导通电阻Ron是HEF4051最重要的参数之一Ron会随供电电压变化VDD越高Ron越低。Ron会随输入信号电压变化在输入信号接近VDD或GND时Ron会升高。Ron会随温度升高而升高。Ron典型值VDD5V时约125Ω~350Ω。3.2 Ron对ADC测量的影响假设HEF4051连接一个温度传感器热敏电阻分压电路textVREF ── R_sensor ──┬── HEF4051通道 ── HEF4051的Z ── MCU的ADC输入 │ GND当HEF4051的Ron与传感器网络串联时会导致ADC测得的电压值发生变化传感器的输出阻抗很低1kΩ时Ron的影响很小几Ω vs 几kΩ分压误差约1%以内通常可接受。传感器的输出阻抗很高10kΩ时Ron的影响不可忽视几十Ω vs 10kΩ分压误差显著增大。解决方案在HEF4051输出端Z增加一个运放缓冲器隔离Ron的影响。在ADC采样时使用较长的采样时间让ADC内部的采样电容充分充电。选择Ron更小的模拟开关芯片如某些型号Ron仅几Ω~几十Ω。四、实战案例传感器信号的轮询采集现在我们来做一个完整的案例分析——如何用HEF4051轮询采集多个传感器的模拟信号。4.1 需求描述某BCM项目需要采集以下模拟信号信号类型输出阻抗采样频率要求雨量传感器电压输出1kΩ10Hz光照传感器电压输出1kΩ2Hz车外温度传感器NTC热敏电阻分压几kΩ~几十kΩ随温度变化1Hz车内温度传感器NTC热敏电阻分压几kΩ~几十kΩ随温度变化1Hz座椅位置反馈电位计分压1kΩ~10kΩ2Hz4.2 硬件方案将5路传感器接到HEF4051的Y0~Y4通道HEF4051的Z接到MCU的1个ADC引脚。text雨量传感器 ── Y0 光照传感器 ── Y1 车外温度传感器 ── Y2 车内温度传感器 ── Y3 座椅位置反馈 ── Y4 ┌─ Z ── MCU ADC输入 HEF4051┤ A0, A1, A2 ◄──────┘ (由MCU的3个GPIO控制)4.3 软件控制流程c// 伪代码轮询采集5路传感器 void Poll_Sensors(void) { static uint8_t channel 0; uint16_t adc_value; uint32_t settling_time; // 1. 选择当前通道 HEF4051_SelectChannel(channel); // GPIO设置A0/A1/A2 // 2. 等待建立时间settling time // 让HEF4051的Ron和外部RC电路稳定 settling_time GetSettlingTime(channel); // 根据外部阻容计算 Delay_us(settling_time); // 3. 启动ADC采样 adc_value ADC_StartConversion(); // 4. 存储采样结果到对应通道的变量 sensor_values[channel] adc_value; // 5. 切换到下一个通道循环0~4 channel; if(channel 5) channel 0; }4.4 关键时序建立时间Settling Time这是HEF4051使用中最容易踩的坑。当HEF4051切换通道后Z端的电压不会立刻跳变到新通道的电压值而是会有一个指数上升/下降的过渡过程。这是因为外部电路存在RC时间常数HEF4051的Ron 外部电路电阻 PCB走线电容 ADC的输入电容。建立时间Settling Time 从切换通道开始到Z端电压稳定到目标值所需的时间。典型计算公式textT_settle 5 × ττ R × C 其中 R 外部电路等效电阻 HEF4051的Ron C PCB走线电容 传感器输出电容 ADC输入电容示例估算R 10kΩ传感器输出阻抗 200ΩHEF4051的Ron 10.2kΩC 100pFPCB走线ADC输入电容τ 10.2kΩ × 100pF 1.02μsT_settle5τ 5.1μs所以切换通道后需要等待至少5~10μs再启动ADC采样否则读数会偏低或偏高取决于前一个通道的电压值。如果你的传感器输出阻抗更高如50kΩ那么τ ≈ 50kΩ × 100pF 5μsT_settle ≈ 25μs。这种情况下需要更长的等待时间。4.5 软件中的两种处理方式方式做法适用场景丢弃第一次采样法切换通道后等待一段时间启动ADC采样但丢弃第一次采样结果再采样第二次作为有效值传感器信号变化较慢不要求每次采样都是实时值固定延迟等待法切换通道后固定等待若干微秒根据计算的最坏情况再启动ADC采样需要每次都获得准确值适合实时性要求高的场景在BCM中由于传感器信号多为缓变信号温度、光照强度变化速度较慢采用“丢弃第一次采样法”更常见——因为简单可靠不需要精确计算每个通道的RC时间常数。但如果在你的实际项目中需要在切换HEF4051通道的同时采样转向灯信号且转向灯信号变化较快就必须精确控制采样时序否则可能读到错误值这也是你之前提到的“转向灯采样通道跟着切换”问题中隐含的时序冲突风险。五、设计注意事项5.1 通道切换时的“鬼影”现象现象切换到新通道后第一次ADC读数包含上一个通道的残余电压导致读数异常。原因建立时间不足或者ADC内部采样电容未完全放电。解决方案切换通道后等待足够长的建立时间。采样前先输出一个低电平或高电平给ADC的采样电容放电。丢弃第一次采样结果只采用第二次或第三次采样的值。5.2 输入信号范围HEF4051的输入信号不能超过VDD也不能低于VSS通常为GND。如果输入信号接近VDD或GNDRon会增大影响测量精度。建议HEF4051的供电电压与MCU的ADC参考电压保持一致如都使用3.3V或5V避免信号范围失配。注意如果传感器输出的是0~5V信号但HEF4051的VDD是3.3V则HEF4051无法正常传输3.3V的信号可能导致信号被削顶或芯片损坏。这种情况需要电平转换或选择更高VDD的HEF4051。5.3 时序控制总结步骤等待时间说明1. 设置A0/A1/A2选择通道—GPIO输出立即生效2. 等待建立时间Settling Time视外部RC而定典型值5~100μs最容易忽略的步骤建立时间不足会导致读数错误3. 启动ADC采样ADC转换时间典型值几微秒~几十微秒由MCU的ADC配置决定4. 读取ADC结果—获得当前通道的电压值5.4 PCB布局注意点说明模拟地与数字地分开HEF4051的模拟信号Y0~Y7、Z和数字控制信号A0/A1/A2可能相互干扰建议模拟地与数字地单点连接走线保护模拟信号走线尽量短避免与高频信号如PWM、SPI_SCK近距离平行走线减少耦合噪声去耦电容在HEF4051的VDD和VSS之间放置0.1μF去耦电容靠近芯片引脚放置地址线控制HEF4051通道选择的A0/A1/A2来自MCU的GPIO通常走线较长如果长度超过一定范围或周边干扰较强可考虑在靠近HEF4051端串联小电阻如100Ω来抑制振铃六、总结HEF4051这颗芯片本质上解决了一个工程问题如何用最少的MCU资源采集最多的模拟信号。它的核心价值在于HEF4051的优势对应的工程价值1个ADC通道扩展为8个MCU的ADC通道不够用的问题迎刃而解控制简单只需3个GPIO比SPI/I2C接口更节省MCU引脚成本极低几毛钱到几块钱远低于换更高规格MCU或增加ADC芯片的成本双向传输既可以做复用器8路输入→1路输出也可以做解复用器1路输入→8路输出在一些需要输出模拟信号的场景如驱动小电流负载也有应用而“传感器轮询采集”这个实战案例告诉我们HEF4051虽然简单但“建立时间”这个细节如果处理不好会导致ADC读数乱跳、异常值频繁出现——很多初级工程师在这个坑里栽过跟头。本系列总结到这里我们的BCM硬件芯片选型与深度解析系列已经全部完成了。以下是全系列回顾篇目主题核心芯片第1篇BCM硬件架构全景解析整体框架第2篇MCU选型深度解析TRAVEO/S32K/芯驰E3/GD32A7第3篇SBC深度解析UJA1169第4篇高边驱动深度解析TLE75602第5篇半桥驱动深度解析TLE94106ES/NSD8306第6篇多开关检测深度解析CD1020第7篇模拟复用器深度解析HEF4051这7篇文章覆盖了BCM硬件设计中最核心的芯片类型MCU、SBC、高边驱动、半桥驱动、开关检测、模拟复用器。掌握了这些芯片的原理和选型逻辑你就掌握了BCM硬件设计的大部分核心知识。
返回列表