您好,我现在在使用D121-HMI board调试RTP外设,屏幕使用的是7寸RGB接口的电阻触摸屏,程序使用Lubanlite。
使用指令test_rtp_adc分别测试通道1的接地,悬空,接3.3V,测试结果应该是不正常的,请问怎么解决?
测试结果如下:
①通道0接3.3V:
aic /> test_rtp_adc -r 1 -n 5 -t 3.3
[0] ch1: 4055
voltage:2.4755 v
[1] ch1: 4055
voltage:2.4755 v
[2] ch1: 4055
voltage:2.4755 v
[3] ch1: 4055
voltage:2.4755 v
[4] ch1: 4055
voltage:2.4755 v
[5] ch1: 4055
②通道0接地:
aic /> test_rtp_adc -r 1 -n 5 -t 3.3
[E] hal_adcim_adc2voltage()192 Out of the input voltage range - -33
[0] ch1: 0
voltage:0.0000 v
[E] hal_adcim_adc2voltage()192 Out of the input voltage range - -32
[1] ch1: 0
voltage:0.0000 v
[E] hal_adcim_adc2voltage()192 Out of the input voltage range - -28
[2] ch1: 0
voltage:0.0000 v
[E] hal_adcim_adc2voltage()192 Out of the input voltage range - -28
[3] ch1: 0
voltage:0.0000 v
[E] hal_adcim_adc2voltage()192 Out of the input voltage range - -31
[4] ch1: 0
voltage:0.0000 v
离线
1. 3.3V采样电压值不对的问题:原因可能是test_rtp_adc 转换采样值为电压值时使用的ADC参考电压是从芯片读取出来的,从打印结果上看,读取的芯片参考电压应该是2.5V,可以在bsp/artinchip/hal/adcim/hal_adcim.c:hal_adcim_adc2voltage函数增加打印,看看函数内部局部变量 st_voltage 读取的值是多少,如果与实际参考电压3.3V不一致,则考虑将读取参考电压那一行代码注释掉,然后再测试一下;
2. 0V采样值转换超出范围的问题:将 test_rtp_adc.c:rtp_get_data 函数里的 cal_param、adc_info.data 变量打印一下,看看值是多少,应该是采样值比较小,转换时考虑了校准和偏移,校准后的采样值小于0导致的
离线