当前位置: 首页 > news >正文

简单了解高阻抗(High-Z)

  高阻抗(High-Z)状态表示一个引脚既不输出高电平(1),也不输出低电平(0),而是像一个断开的电路,表现得像一个非常大的电阻(几 MΩ 或更高)连接到信号线上;是一种让引脚“退出驱动、让位他人”的机制,换句话说:

该引脚“退出了战斗”,不影响总线电平,也不参与驱动。

1、高阻抗的电气本质

在电路内部,一个 IO 引脚的电平是通过下图这种结构控制的:

         Vcc│[PMOS] ← 控制输出高电平│
IO ──────┼─────► 输出引脚│[NMOS] ← 控制输出低电平│GND

在正常“推挽输出”中:

  • PMOS 导通 → 输出高电平

  • NMOS 导通 → 输出低电平

而当进入 高阻状态(High-Z)时

  • PMOS 和 NMOS 都关闭

  • 输出引脚 不连接到电源或地

  • 表现为一个断开的端口,称为“三态逻辑”中的第三态(除了高、低之外的“Z”)

2、高阻抗的主要特点

特点描述
像断路 引脚不会驱动任何电压
输入高灵敏 极易受周围电场、静电、噪声干扰
电压不可预测 如果悬空,电平是随机的、不稳定的
不影响总线 多个器件共用信号线时,可通过高阻切换“谁说话”
常见于三态IO口 比如 GPIO、复用接口、总线驱动器、数据总线

3、High-Z 状态的典型应用场景

场景原因
总线共享(如 I²C、SPI、并口) 多个器件共用数据线,非当前发送器需进入高阻以避免冲突
多主设备总线 例如多主 I²C,每个主设备在非通信时必须释放总线(High-Z)
MCU 作为输入时 设置为高阻输入状态,以监听电平,不干扰外部驱动
开漏/开集电极输出 输出“0”时拉低,输出“1”时mos管关闭进入高阻,由上拉电阻拉高
三态缓冲器控制信号 控制何时一个设备“说话”,何时“闭嘴”(进入高阻)

三态缓冲器(tri-state buffer)

               控制引脚EN = 1
输入信号 ─▶ [缓冲器] ─▶ 输出信号控制引脚EN = 0
输入信号 ─▶ [缓冲器] ─▶ 高阻状态(不影响输出线)

 

控制电路是否驱动输出,常用于多设备控制同一信号线,如 MCU 总线接口

4、如何“进入”和“退出”高阻抗状态

具体做法取决于你用的是什么平台或设备,但基本分为以下两种常见控制方式:

①MCU(单片机)中的 GPIO 控制

  MCU GPIO 引脚常见状态:

模式含义
输出推挽 有源输出高或低(非高阻)
输出开漏 输出 0 时导通;输出 1 时进入高阻
输入模式(高阻) IO 不主动驱动电平,只“监听”电压
输入带上拉/下拉 高阻 + 内部拉电阻
模拟模式 也常为高阻,适合ADC采样

 

进入高阻(例:STM32、Arduino、ESP32):

  • 把 IO 设置为 输入模式(Input / Floating)

  • 或设置为 开漏输出且输出高电平

示例:STM32 HAL 库

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // 拉高(开漏)
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;         // 设置开漏输出
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);             // 进入高阻态

示例:Arduino

pinMode(PIN, INPUT);          // 高阻态
pinMode(PIN, OUTPUT);         // 推挽
digitalWrite(PIN, HIGH);      // 推挽输出高
pinMode(PIN, INPUT_PULLUP);   // 高阻 + 上拉

使用三态缓冲器(Tri-state buffer)

  硬件逻辑中使用专门的芯片(如 74HC125、74LS245)或 FPGA 驱动:

原理图示意:

      输入信号 ──► [三态缓冲器] ──► 总线(共用)▲EN 控制引脚

EN=1 时:

  • 缓冲器导通 → 输出信号

EN=0 时:

  • 缓冲器输出进入高阻状态,不会干扰总线

4、注意事项

错误用法后果
引脚悬空但未上拉/下拉 电压不稳定,容易误判、高功耗
总线多个设备不进入高阻 发生“信号冲突”→ 烧芯片
忘记退出高阻态输出信号 引脚不响应、不工作
http://www.vanclimg.com/news/917.html

相关文章:

  • docker安装
  • 二进制简史:从理论到芯片
  • js基础第四天
  • 同时点亮LED、数码管以及点阵
  • 关于跨域的一点新理解
  • js基础第三天
  • 龙哥量化:股票期货- 精华资料目录
  • 2025省选组合数学笔记
  • FM2023利兹联崛起之路#1
  • 07.08 论文精读 人像线稿生成模型
  • 暑训#3补题
  • 【LeetCode 141】算法:环形链表
  • 春训#2题解
  • 国内AI编码工具哪家强CodeBuddy+通义灵码+Trae
  • js基础第二天
  • [PaperReading] Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets
  • Wireshark入门指南:网络流量分析利器
  • 2025/7/28 总结
  • 7.27 周总结
  • 存贮电解液配方的二进制格式与解析它的010 Editor的模板
  • 读《大道至简——软件工程实践者的思想》有感
  • 垃圾话1
  • 春训#1题解
  • js第一天
  • java学习(大道至简读后感)
  • linux中常用的数值计算
  • 【问题】--Macbook相关问题
  • 软工作业day27
  • 2025.7.28 闲话:CF678E Another Sith Tournament 倒序状压 DP 的一点想法
  • 7.28随笔