找回密码
 立即注册

微信扫码登录

查看: 340|回复: 5

[ADC] ADC连续采样两个IO口导致IO口出现峰刺

[复制链接]

2

主题

2

回帖

32

积分

新手上路

积分
32
发表于 2024-9-12 09:07:54 | 显示全部楼层 |阅读模式


void adc_gpio_ain_init(void)
{
//设置杂项通道EN和ADC状态机状态cnt 2( 杂项通道的“设置”阶段和“捕获”状态)
adc_set_chn_enable_and_max_state_cnt(ADC_MISC_CHN, 2);//设置采样状态机和通道

的总长度 //设置杂项通道的“捕获状态”长度: 240
//设置杂项通道的“设置状态”长度: 10
//adc 状态机周期 = 24M/250 = 96K, T = 10.4 uS
#if (MCU_CORE_TYPE == MCU_CORE_8278)
adc_set_state_length(240,10);//设置 R_max_mc,R_max_c,R_max_s
#else
adc_set_state_length(240, 0, 10);


#endif //设置杂项通道使用differential_mode(泰凌建议:只有差模可用)
//单模ADC源,PB4例如:PB4正通道,GND负通道
gpio_set_func(GPIO_PC4,AS_GPIO);
gpio_set_input_en(GPIO_PC4, 0);
gpio_set_output_en(GPIO_PC4, 0);
gpio_write(GPIO_PC4, 0);

#if(MCU_CORE_TYPE == MCU_CORE_827x)
adc_set_ain_channel_differential_mode(B4P, GND);

//设置杂项通道分辨率 14 bit
//注意:differential_mode MSB是符号位,其余是数据位,这里BIT(13)是符号位
adc_set_resolution(RES14);//设置分辨率

//设置杂项通道vref 1.2V
adc_set_ref_voltage(ADC_VREF_1P2V);//设置通道Vref

//设置杂项t_sample 6个adc clock周期: 6 *1/4M
adc_set_tsample_cycle(SAMPLING_CYCLES_6); //采样阶段
的ADC时钟周期数 #elif(MCU_CORE_TYPE == MCU_CORE_825x)
adc_set_ain_channel_differential_mode(ADC_MISC_CHN, C4P, GND);

//设置杂项通道分辨率 14 bit
//注意:differential_mode MSB是符号位,其余是数据位,这里BIT(13)是符号位
adc_set_resolution(ADC_MISC_CHN, RES14);//设置分辨率

//设置杂项通道Vref 1.2V
adc_set_ref_voltage(ADC_MISC_CHN, ADC_VREF_1P2V);//设置通道Vref

设置其他 t_sample ADC时钟周期 6 * 1/4M
adc_set_tsample_cycle(ADC_MISC_CHN, SAMPLING_CYCLES_6);//采样阶段
ADC时钟周期数 #endif
//设置模拟输入预分量 1/8
adc_set_ain_pre_scaler(ADC_PRESCALER_1F8);
}

void adc_gpio_ain_init_test(void)
{
//设置杂项通道EN和ADC状态机状态cnt 2(杂项通道的“设置”阶段和“捕获”状态)
adc_set_chn_enable_and_max_state_cnt(ADC_MISC_CHN, 2);//设置采样状态机和通道

的总长度 //设置“ca杂项通道的”设置状态“长度: 240
//设置杂项通道的”设置状态“长度: 10
//ADC状态机周期 = 24M/250 = 96K, T =10.4 uS
#if (MCU_CORE_TYPE == MCU_CORE_8278)
adc_set_state_length(240,10);//设置R_max_mc,R_max_c,R_max_s
#else
adc_set_state_length(240, 0, 10);


#endif //设置其他通道使用differential_mode(泰凌建议:只有差模可用)
//单模ADC源,PB4例如:PB4正通道,GND负通道
gpio_set_func(GPIO_PC5,AS_GPIO);
gpio_set_input_en(GPIO_PC5, 0);
gpio_set_output_en(GPIO_PC5, 0);
gpio_write(GPIO_PC5, 0);

#if(MCU_CORE_TYPE == MCU_CORE_827x)
adc_set_ain_channel_differential_mode(B4P, GND);

//设置杂项通道分辨率 14 bit
//注意:differential_mode MSB是符号位,其余是数据位,这里BIT(13)是符号位
adc_set_resolution(RES14);//设置分辨率

//设置杂项通道 vref 1.2V
adc_set_ref_voltage(ADC_VREF_1P2V);设置通道 VREF

设置其他 t_sample ADC 时钟周期:6 * 1/4M
adc_set_tsample_cycle(SAMPLING_CYCLES_6);采样阶段的 ADC 时钟周期数 #elif(MCU_CORE_TYPE == MCU_CORE_825x)
adc_set_ain_channel_differential_mode(ADC_MISC_CHN,C5P,GND);


将其他通道分辨率设置为 14 位
注意: differential_mode MSB 是符号位,其余是数据,其中 BIT(13) 是符号位
adc_set_resolution(ADC_MISC_CHN,RES14);设置分辨率

设置杂通道 VREF 1.2V
adc_set_ref_voltage(ADC_MISC_CHN, ADC_VREF_1P2V);设置通道 VREF

设置其他 t_sample ADC 时钟周期:6 * 1/4M
adc_set_tsample_cycle(ADC_MISC_CHN, SAMPLING_CYCLES_6);采样阶段
的 ADC 时钟周期数 #endif
将模拟输入预分频设置为 1/8
adc_set_ain_pre_scaler(ADC_PRESCALER_1F8);
使用

sdk 进行 b85m_driver_test/app_adc.c,在源码的基础上增加一个 ADC 采样的引脚,即同时取 C4/C5,断开硬件电路,交流块测量 C5 引脚会出现在图中的峰值杂散处。有没有解决方法

2

主题

20

回帖

1037

积分

版主

积分
1037
发表于 2024-9-12 18:59:56 | 显示全部楼层
你好,我们会尝试复现你提到的问题。这个问题有些奇怪。你如果要临时解决问题,可以尝试在出现毛刺的引脚上加一个小电容滤波试一下(可能用一个 几皮法的电容,一端接IO口,一端接地)。

2

主题

2

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2024-9-14 09:21:16 | 显示全部楼层
TL_ZXD 发表于 2024-9-12 18:59
你好,我们会尝试复现你提到的问题。这个问题有些奇怪。你如果要临时解决问题,可以尝试在出现毛刺的引脚上 ...

此电路需要采集精密的、不定频率的交流信号,增加滤波电路会使部分波形失真,需要考量,并且我司多个项目都用到该芯片。望贵司能够尽快解决或有方法规避该问题,谢谢!!!

2

主题

20

回帖

1037

积分

版主

积分
1037
发表于 2024-9-14 09:29:06 | 显示全部楼层
wx_4955935040 发表于 2024-9-14 09:21
此电路需要采集精密的、不定频率的交流信号,增加滤波电路会使部分波形失真,需要考量,并且我司多个项目 ...

好的,另外方便说明一下贵公司的名称和这个芯片所涉及的项目吗(蓝牙,zigbee,其他。。。)? 我看一下是否有可能申请专门的技术团队进行专门的定向支持。

2

主题

2

回帖

32

积分

新手上路

积分
32
 楼主| 发表于 2024-9-14 10:27:25 | 显示全部楼层
本帖最后由 wx_4955935040 于 2024-9-14 10:28 编辑
TL_ZXD 发表于 2024-9-14 09:29
好的,另外方便说明一下贵公司的名称和这个芯片所涉及的项目吗(蓝牙,zigbee,其他。。。)? 我看一下是 ...

江苏苏威尔,蓝牙,我司目前有近20款产品在用这款芯片,望贵司能尽快提供一个解决方案

0

主题

2

回帖

32

积分

新手上路

积分
32
发表于 2024-9-27 11:55:28 | 显示全部楼层
你好,建议排除以下两个问题:

1、确认初始化配置是否正确,可以先试一下两路都采直流电压看adc是否能正常工作

2、如果确认adc能正常工作,考虑是两引脚共模干扰的问题,C4和C5硬件上是否是相邻,硬件断开后可能会导致C4的干扰信号耦合到C5,如果两个引脚相邻,可增加两引脚距离,或者将其中一个换成距离较远的PB组引脚,看是否还有峰刺


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2024-10-12 08:26 , Processed in 0.085019 second(s), 19 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表