ZTU模组(TLSR8258),如何配置ADC外部采样

Zigbee 子设备开发


Post Reply
gohulchen
Posts: 4

SDK版本V3.12.0,使用了 door_sensor 的例程。

在例程中,ADC默认是内部采样,我的产品需要使用外部采样的模式,使用的引脚是第5个引脚,PB6。应该如何修改呢?
以下是例程中ADC初始化时的代码:

#if APP_BATTERY_SUPPORT
STATIC UINT8_T ch = 0;
APP_BATTERY_INFO_T bat_info = {
.cap_first_delay_time = 2 * 60 * 1000,
.cap_max_period_time = 3 * 60 * 1000,
.adc.ch_nums = 1,
.adc.ref_vol = 3300,
.adc.width = 8,
.adc.type = TUYA_ADC_INNER_SAMPLE_VOL,
.adc.ch_list.data = 1<<ch};
app_battery_config_init(&bat_info, NULL, 0);
#endif

1.png
User avatar
huanghuan
Posts: 307

Re: ZTU模组(TLSR8258),如何配置ADC外部采样

gohulchen
Posts: 4

Re: ZTU模组(TLSR8258),如何配置ADC外部采样

这个例程的ADC初始化被一层层封装了,比如tal_adc_init函数 是在 app_battery_config_init 里面调用的,你说的 tal_adc_read_single_channel 的参数(通道号)也是在里面被调用的。

按照你提供的链接的说明,我的理解是这样的,是否正确?:

#if APP_BATTERY_SUPPORT
//这是ADC通道与引脚的对应关系
// const GPIO_PinTypeDef ADC_GPIO_tab[10] = {
// GPIO_PB0,GPIO_PB1,
// GPIO_PB2,GPIO_PB3,
// GPIO_PB4,GPIO_PB5,
// GPIO_PB6,GPIO_PB7,
// GPIO_PC4,GPIO_PC5
// };

Code: Select all

STATIC UINT8_T ch = 6; //使用引脚PB6,所以ch是6

APP_BATTERY_INFO_T bat_info = 
{
    .cap_first_delay_time = 2 * 60 * 1000,
    .cap_max_period_time =  3 * 60 * 1000,
    .adc.ch_nums = 1,                                             //只使用1个通道
    .adc.ref_vol = 3300,
    .adc.width = 12,                                                //12位精度
    .adc.type = TUYA_ADC_EXTERNAL_SAMPLE_VOL, //外部采样
    .adc.ch_list.data = 1<<ch,                                  //这个意思是 使用对应通道 吗?
    .ch_list.bits.ch_6 = 1,                                        //对应通道6,引脚PB6
};
app_battery_config_init(&bat_info, NULL, 0);        //初始化之后,通道号 ch 就传进去了, 通过 bat_info 这个结构访问使用

#endif

Post Reply