真实面经题目 · 原创解析
IIC 的上拉电阻有什么作用,实际配置时要考虑什么?
这题考双线开漏总线的电气基础,回答重点是上拉定义高电平、支持线与逻辑,并按电容、速率和灌电流选择阻值。
真实面经题目 · 原创解析
这题考双线开漏总线的电气基础,回答重点是上拉定义高电平、支持线与逻辑,并按电容、速率和灌电流选择阻值。
上拉电阻的核心作用是把开漏总线从低电平释放后拉回高电平。总线上各设备只主动拉低,不主动输出高电平,所以高电平由上拉电阻提供;这也支持多设备线与、仲裁、ACK 和时钟拉伸。实际配置不能只说随便接一个 4.7k,要看电源电压、总线电容、目标速率、器件允许的低电平灌电流和上升时间要求。阻值太大,上升沿慢,高速下采样错误;阻值太小,低电平电流大,器件可能拉不低、功耗也高。还要注意板上多个上拉并联、内部上拉偏弱、长线和电平转换器都会改变等效阻值和波形,最终最好用示波器看 SCL/SDA 的上升时间和低电平幅度。
设备只能把线拉低或释放总线,释放后如果没有上拉,线会悬空,无法形成稳定高电平。上拉电阻把总线拉到电源电压,使每个设备都能通过拉低表达 0、释放表达 1。
多个设备连接到同一根线时,只要任意设备拉低,总线就是低电平;大家都释放时才是高电平。这种线与特性让 ACK、仲裁和时钟拉伸成为可能,也避免多个器件直接推高推低造成硬冲突。
总线电容越大、速率越高,上升时间要求越严格,阻值就不能太大;但阻值太小会导致拉低时电流过大,超过器件灌电流能力。实际要结合数据手册的上升时间、总线电容估算和低电平电流上限取值。
外部电阻、芯片内部上拉、电平转换器和多个模块上的电阻可能并联,实际阻值比图纸单个值小。工程调试时要用示波器看波形是否上升太慢、低电平是否足够低,以及高速下是否出现 NACK 或仲裁异常。
低速、短线、设备少时可能勉强可用,但内部上拉通常阻值大且离散,速度稍高或总线电容稍大就容易上升慢,正式设计通常使用外部上拉。
接到该总线逻辑高电平对应的电源域。若主从电压不同,需要合适的电平转换方案,不能简单把所有设备硬接到不兼容电压。
先用示波器或逻辑分析仪确认电平、时序、速率和帧格式,再对照驱动日志、错误码、重试次数和协议状态机,区分硬件连接、配置参数、总线仲裁和软件缓冲问题。