规格书上写ADC输入电压不超过1.1V, 代码里ADC设置的是12位宽, 那为什么我输入1.1V,用tuyaos_demo_example的例程测试,ADC采样值只有2700左右? 1.1V不该满量程是4095吗?
【求助】T5 ADC参考电压是什么
Re: 【求助】T5 ADC参考电压是什么
谢谢解答,我使用了默认的引脚测试,P24通道2,但是采集到的数值也不太符合预期
Re: 【求助】T5 ADC参考电压是什么
可以再帮忙解答下这个问题吗? 采样值不太符合预期,该怎么换算成正常电压
Re: 【求助】T5 ADC参考电压是什么
您好,
1、adc的参考电压是VIO,通常为3.0V电压
2、采样值不准确这个请确认下输入电压
参考代码如下:
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……
Re: 【求助】T5 ADC参考电压是什么
了解了,谢谢,我用的是SDK里的demo,它用的接口只返回ADC值,需要换一个接口才会自动计算出电压值