【求助】T5 ADC参考电压是什么

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
Post Reply
jujuju
Posts: 54

规格书上写ADC输入电压不超过1.1V, 代码里ADC设置的是12位宽, 那为什么我输入1.1V,用tuyaos_demo_example的例程测试,ADC采样值只有2700左右? 1.1V不该满量程是4095吗?

一个网友
Posts: 14
Location: ⭐星星⭐

Re: 【求助】T5 ADC参考电压是什么

您好,
1.1V那个是ADC通道4,针对外部M级分压的情况处理,其他的adc通道量程为0-3V

努力写bug……

jujuju
Posts: 54

Re: 【求助】T5 ADC参考电压是什么

谢谢解答,我使用了默认的引脚测试,P24通道2,但是采集到的数值也不太符合预期

jujuju
Posts: 54

Re: 【求助】T5 ADC参考电压是什么

以下图片是测试结果

Attachments
adc.png
jujuju
Posts: 54

Re: 【求助】T5 ADC参考电压是什么

:)可以再帮忙解答下这个问题吗? 采样值不太符合预期,该怎么换算成正常电压

一个网友
Posts: 14
Location: ⭐星星⭐

Re: 【求助】T5 ADC参考电压是什么

您好,
1、adc的参考电压是VIO,通常为3.0V电压
2、采样值不准确这个请确认下输入电压

adc.png

参考代码如下:

Code: Select all

#define ADC_CONV_TIMES  8

TUYA_ADC_BASE_CFG_T tkl_cfg;
INT32_T adc_chan = tkl_io_pin_to_func(24, TUYA_IO_TYPE_ADC);

tkl_cfg.ch_list.data = BIT(adc_chan & 0xFF);
tkl_cfg.ch_nums = 1;
tkl_cfg.type = TUYA_ADC_INNER_SAMPLE_VOL;
tkl_cfg.width = 12;
tkl_cfg.mode = TUYA_ADC_CONTINUOUS;
tkl_cfg.conv_cnt = ADC_CONV_TIMES;
tkl_adc_init(0, &tkl_cfg);

uint32_t sum = 0;
INT32_T buffer[ADC_CONV_TIMES] = {0};
memset(buffer, 0, sizeof(INT32_T) * ADC_CONV_TIMES);
tkl_adc_read_data(0, buffer, ADC_CONV_TIMES);
for (int i = 0; i < ADC_CONV_TIMES; i++) {
    sum += buffer[i];
}
sum /= 8;


extern float bk_adc_data_calculate(uint16_t adc_val, uint8_t adc_chan);
uint32_t cur_vol = (uint32_t)(1000 * bk_adc_data_calculate(sum, 2));
bk_printf("---adc %d, %d\r\n", sum, cur_vol);

努力写bug……

jujuju
Posts: 54

Re: 【求助】T5 ADC参考电压是什么

了解了,谢谢,我用的是SDK里的demo,它用的接口只返回ADC值,需要换一个接口才会自动计算出电压值

Post Reply