SH79F165A 的 ADC 溢出后无法恢复,核心是未正确清除溢出状态。该芯片 ADC 溢出多为输入超量程或数据未读导致新数据覆盖,关键是在中断或查询中明确溢出标志并写 1 清除,同时复位 ADC 控制位、重启转换,否则会卡死。
原因与处理步骤
定位溢出:检查 ADCON0/1 的溢出标志位,确认是输入超量程(超过 VREF+)还是数据未读覆盖。
清除标志:软件写 1 清除溢出标志位,这是恢复的必要步骤。
复位重启:关闭 ADC,等待至少 2 个 ADC 周期,重新初始化并启动转换。
硬件防护:输入侧加 RC 滤波或齐纳二极管钳位,避免信号超量程。
|