ADS1247应用,采集值与输入值反相(10个积分哦)
时间:10-02
整理:3721RD
点击:
最近在用STM32F051调试ADS1247这款AD芯片,花了一段时间把单片机和AD芯片的SPI通讯搞定,现在的现象是,采集的值与输入值差一个符号。
芯片数字电源DVDD为3.3V,模拟电源AVDD为5V,AIN0通过一个电容接地,AIN1为信号输入口,串接一个电阻。在寄存器里配置AIN0为负输入,AIN1为正输入,在AIN0端口输出一个偏置电压【(AVDD + AVSS)/2】,AIN1输入正弦波,采样结果也是正弦波,但是正负与输入信号相反。即输入信号在2.5V以上的时候,采集到的值为负值,反之为正值。
将AIN0与AIN1配置反过来,即AIN0为正输入,AIN1为负输入,其他情形不变,采集到的值也是一样。
麻烦各位大神帮忙指点下。
补充内容 (2016-7-8 09:18):
配置程序如下:
/*******************************************************************************
* 3ìDò??3? : ADS1247_Init()
* 3ìDò1|?ü : ADS1247D???3?ê??ˉ
* ê?è?2?êy : ?T
* ·μ ?? ?μ : ?T
*******************************************************************************/
void fnADS1247_Init(void)
{
SPI_CS_LOW(); //使能引脚置低
SPI_ADS1247_WriteREG(REG_MUX0,0x08);
SPI_ADS1247_WriteREG(REG_VBIAS,0x01);
SPI_ADS1247_WriteREG(REG_MUX1,0x30);
SPI_ADS1247_WriteREG(REG_SYS0,0x09);
SPI_ADS1247_WriteREG(REG_IDAC0,0x00);
SPI_SendByte(0x62);
SPI_SendByte(Dummy_Byte);
SPI_CS_HIGH(); //使能引脚置高
}
补充内容 (2016-7-11 15:22):
已找到原因,首个寄存器配置时因延时不够,没有配置成功,所以造成输入信号与计算出的数值符号不对,且更改正负输入配置也无效。
谢谢大家!
芯片数字电源DVDD为3.3V,模拟电源AVDD为5V,AIN0通过一个电容接地,AIN1为信号输入口,串接一个电阻。在寄存器里配置AIN0为负输入,AIN1为正输入,在AIN0端口输出一个偏置电压【(AVDD + AVSS)/2】,AIN1输入正弦波,采样结果也是正弦波,但是正负与输入信号相反。即输入信号在2.5V以上的时候,采集到的值为负值,反之为正值。
将AIN0与AIN1配置反过来,即AIN0为正输入,AIN1为负输入,其他情形不变,采集到的值也是一样。
麻烦各位大神帮忙指点下。
补充内容 (2016-7-8 09:18):
配置程序如下:
/*******************************************************************************
* 3ìDò??3? : ADS1247_Init()
* 3ìDò1|?ü : ADS1247D???3?ê??ˉ
* ê?è?2?êy : ?T
* ·μ ?? ?μ : ?T
*******************************************************************************/
void fnADS1247_Init(void)
{
SPI_CS_LOW(); //使能引脚置低
SPI_ADS1247_WriteREG(REG_MUX0,0x08);
SPI_ADS1247_WriteREG(REG_VBIAS,0x01);
SPI_ADS1247_WriteREG(REG_MUX1,0x30);
SPI_ADS1247_WriteREG(REG_SYS0,0x09);
SPI_ADS1247_WriteREG(REG_IDAC0,0x00);
SPI_SendByte(0x62);
SPI_SendByte(Dummy_Byte);
SPI_CS_HIGH(); //使能引脚置高
}
补充内容 (2016-7-11 15:22):
已找到原因,首个寄存器配置时因延时不够,没有配置成功,所以造成输入信号与计算出的数值符号不对,且更改正负输入配置也无效。
谢谢大家!
自己顶一下!没人用过这款芯片么?
学习中。
芯片引脚,不对啦
麻烦讲一下怎样才是对的,谢了!
进来学习学习
已找到原因,首个寄存器配置时因延时不够,没有配置成功,所以造成输入信号与计算出的数值符号不对,且更改正负输入配置也无效。
到最后 还是自己解决了 真厉害
AD转换 相关文章: