Dear FAE,
我使用SD24_A进行AD采集,进行如下配置:
使用三个外部通道A0 A1 A2,其中A0 A1通道增益32,A2通道增益1;
过采样率均为256,单次转换;
三个通道组成一组;
使用内部参考电压;
数据格式为二进制补码;
AD调制时钟频率为1MHz,通过SMCLK分频获得;
使能转换中断;
程序运行过程:
启动时初始化SD24_A;
设置定时器使之每4ms启动AD转换;
转换中断产生后分别读取三个通道的高16位数据并打印;
原理图如下
测试时通道A0 接入了惠斯通电桥式的传感器,通道A1的两个脚则连接了一个68欧姆电阻;
我们采集了两分钟左右的数据,如附件;
SD24_A AD数据.txt
通过绘制通道A0 A1数据波形,发现有接近20个字的抖动,可以参考附件给出的原始数据;
通道A0局部波形:
通道A1局部波形:
程序
SD24初始化
void SD24_init(uint16_t gain)
{
uint32_t i;
SD24CTL = SD24XDIV_0 | SD24DIV_3 | SD24SSEL_1 | SD24REFON | SD24OVIE;
SD24CCTL0 = SD24SNGL | SD24OSR_256 | SD24DF | SD24GRP; // Single conv, group with CH1
SD24INCTL0 = SD24GAIN_32 | SD24INCH_0;
SD24CCTL1 = SD24SNGL | SD24OSR_256 | SD24DF | SD24GRP; // Single conv, group with CH2
SD24INCTL1 = SD24GAIN_32 | SD24INCH_1;
SD24CCTL2 = SD24SNGL | SD24OSR_256 | SD24DF | SD24IE; // Single conv, enable interrupt
SD24INCTL2 = SD24GAIN_1 | SD24INCH_2;
for (i = 0; i < 20000; i++); // 5ms delay for 1.2V ref turning on
}
SD24启动
void SD24_start(void)
{
SD24CCTL2 |= SD24SC;
}
SD24 AD读取
void SD24_read_data(int16_t *ad_data)
{
int16_t temp[3] = {0};
temp[0] = SD24MEM0;
temp[1] = SD24MEM1;
temp[2] = SD24MEM2;
ad_data[0] = temp[0];
ad_data[1] = temp[1];
ad_data[2] = temp[2];
}
SD24中断程序
__interrupt void SD24_ISR(void)
{
int16_t ad_data[3];
switch(__even_in_range(SD24IV,16))
{
case SD24IV_SD24OVIFG:
break;
case SD24IV_SD24MEM0:
break;
case SD24IV_SD24MEM1:
break;
case SD24IV_SD24MEM2:
SD24_read_data(ad_data);
break;
}
}
请问录如何可以使SD24保持稳定的16位输出?
灰小子:
要先分析产生波动的原因,猜测可能:1、外界干扰,2、电源纹波干扰等
建议先测量下电源纹波。
硬件上采样io的滤波电容要尽量靠近io
也可以先用软件算法滤波试试
Susan Yang:
有可能是您的电源不稳定造成的,如地线端的漂移电压。建议先用稳定的电压测试一下
elan peng17:
回复 Susan Yang:
I have referenced TI Design ,the link is www.ti.com.cn/…/TIDM-METROLOGY-HOST ,(TIDM-METROLOGY-HOST), I'd like to know what's the ADC resolutions setting in this design. thanks!
Susan Yang:
回复 elan peng17:
您可以在您的链接内下载 Single-Phase Electric Meter with Isolated Energy Measurement Software ,解压后安装TIDMMETROLOGYHOST-1.0,其安装文件夹C:\Program Files (x86)\TIDMMETROLOGYHOST-1.0内有相关的IAR工程
Hao Mengzhen:
问题解决了吗?
Ping Wu:
回复 Susan Yang:
我特地使用了电池供电,电源纹波已经很低,但并没有改善。
Ping Wu:
回复 Hao Mengzhen:
目前还没有
Ping Wu:
回复 灰小子:
改用电池供电进行测试,并没有改善,在原始数据没达到预期要求下软件滤波意义不大。