atmega128AD的问题
为什么单独采用AD时候AD口(AD0)的电压时正确的,当我加上其他程序后AD口(AD0)的电压值就变了,不知道为什么 说明你的代码设计上影响ADC的工作了 其他的影响了ad,比如供电,比如采样时间 其他程序运行时,可能会引入电源噪声或干扰如 PWM、电机驱动、通信模块等,影响 ADC 的测量精度。使用独立的电源或 LDO 为模拟部分供电,减少数字部分的干扰。
嗯,这个方法不错,不过单片机的ADC好像参考电压是VCC和GND 啊,单片机的供电。 你如何切换的,要给每一路足够的采样时间。 不正确的误差有多大? 当 ATmega128 的 ADC(AD0)在单独测试时电压值正确,但加入其他程序后电压值发生变化,可能是电源噪声干扰导致的,其他程序运行时,可能导致电源噪声增加,影响 ADC 的测量精度 在 AVCC 和 AREF 引脚附近添加滤波电容(如 0.1µF 陶瓷电容和 10µF 电解电容)。 如果可能,使用独立的模拟电源(AVCC)和数字电源(VCC),并通过磁珠或电感隔离 减少其他外设的功耗,降低电源噪声。 数字电路和模拟电路共用地线时,数字电路的开关噪声可能通过地线影响 ADC 一般建议将模拟地和数字地在靠近电源处单点连接 优化 PCB 布局,确保模拟部分和数字部分的地线分离,减少交叉干扰 如果使用外部参考电压(AREF),其他程序运行时可能导致参考电压波动。果精度要求不高,使用 ATmega128 的内部参考电压(如 2.56V) 使用低噪声、高精度的参考电压源,并在 AREF 引脚添加滤波电容 其他程序可能修改了 ADC 的配置寄存器,导致 ADC 工作异常。建议检查 ADC 配置:确保在每次 ADC 读取前正确配置 ADC 寄存器(如 ADMUX、ADCSRA)。锁定 ADC 配置:在关键代码段中禁用中断,防止其他程序修改 ADC 配置。 程序中的其他部分可能不小心修改了 ADC 引脚的配置或状态。 结合 dmesg、lsusb、mdio-tool 以及 Wireshark 来排查问题。
页:
[1]