您好,NXP团队:
我正在使用 S32K118EVB2Q048 板(原理图 SCH-47530 Rev A1)测试 ADC。当输入电压超过约 3.3 V 时,我的读数就会出错。
设置:
- MCU:S32K118(48-LQFP)
- IDE:[S32 设计工作室版本]
- 驱动程序:[RTD 版本 / SDK 版本 / 裸机版本]
- ADC通道:[例如PTA7 – ADC0_SE3]
分辨率:12 位
- 输入:[外部直流电源/板载电位器]
- 跳线:J10 = 2-3 (5V)、J107、J15
- 板供电方式:[USB / 12V]
问题:
我将 J10 设置为 2-3,这样 MCU 就可以在 5V 电压下运行。
- 输入 4.10 V:原始值 = 4095。以 5V 为参考电压,我预期读数约为 3358。
- 4V 至 5V 之间的任何输入:始终为 4095(满量程)。
- 当我使用 5V 电压进行计算时,随着输入电压的增加,误差也会增加。
问题:
在 SCH-47530 Rev A1 上,将 J10 设置为 2-3 是否足以使 VDDA 和 ADC 参考电压为 5V,还是我还需要更改其他任何东西(J15、J107、任何电阻器)?
能否分享一个适用于此EVB的S32K118 ADC工作示例,并用5V基准电压进行测试?能否也提供不同分辨率下的计算范围?
你好
请问您使用的是哪个RTD/SDK版本?
另外,我看到你正在使用 PTA7,但是你提到了 ADC_POT。由于 EVB 上未安装 R761,因此 ADC_POT 未连接:
我假设您是通过 J3.1 接头使用 PTA7。
请确认J10和J107都设置为 2-3,并尝试测量 VDD,以确保它确实设置为 5V。
我使用了RTD软件包中的Adc_Pdb_Ip_example_S32K118 ,并简单地修改了main函数,使其循环并启动软件转换:
while(1)
{
/* Start a software trigger conversion */
Adc_Ip_StartConversion(ADCHWUNIT_0_VS_0_INSTANCE, ADC_IP_INPUTCHAN_EXT2, TRUE);
/* Wait for the notification to be triggered and read the data */
while (notif_triggered != TRUE);
notif_triggered = FALSE;
delay(1000);
}
之后,我使用电源测量了 0 到 5V 之间的电压,可以看到正确的数值。
ADC0_SE2 @3.3V:
ADC0_SE2 @5V:
最后,检查 ADC_SC2[REFSEL] 中 REFSEL 是否设置正确:
此致,
朱利安