我尝试按照 LPC54608 用户手册中的说明配置内部温度传感器的 ADC,但我无法读取正确的值。我还使用了数据表中给出的斜率和偏移量值。
Hello
能否请您确认一下,您是否以ADC的示例作为基准?如果是,请指出是哪一种;
您是否已将输入 ADC 通道 0 和输入选择寄存器配置为 3,以便选择温度传感器?
更多详细信息,请参阅LPC546xx 用户手册[UM10912]中的第 44.6.2 章。
如果您能提供更多关于您如何配置ADC温度传感器的详细信息,那就太好了。
根据LPC546xx 产品数据手册第 7.22 章,
“上电后,温度传感器的输出必须稳定下来才能用作精确的ADC输入。为了使ADC能够精确测量温度传感器的值,必须将ADC配置为单通道突发模式。九次(或更多次)转换突发信号的最后一个值可以提供精确的结果。”因此,可能是您的温度传感器尚未稳定,或者您需要在单通道突发模式下进行更多转换。
您还应该考虑优化ADC外部电路,以最大限度地减少与外部环境相关的ADC误差。
本应用笔记可以帮助您了解如何在应用中提高模拟数字变流器的精度。
此致敬礼,路易斯
我的配置方式如下:
1. 清除 ADC、VREFP、VDDA、TS、ANA 并等待 20 微秒
2. ADC 时钟使能,AHBCLKCTRL0。
3. 使用 PRESETCTRL0 寄存器清除 ADC0 外设复位。
4. 在 INSEL 中设置温度通道
5. 启用ADC,并使用ctrl寄存器中的CLKDIV将时钟频率设置为15MHz。
5. 设置同步模式,12 位分辨率,BYPASS = 0,TSAMP = 0
6. 然后在 SEQA_CTRL 中配置序列 A,CHANNELS = 1,TRIGGER = 0,TRIGPOL = 0,SYNCBYPASS = 0,BURST = 0,SINGLESTEP = 0,LOWPRIO = 0,MODE = 0,SEQA_ENA = 1
7. 设置 CALIB = 1 并等待 CALIB = 0
8. 然后通过 START 位开始转换,读取结果
但每次结果都一样,并且 DATA VALID 没有被设置。