AD7705输出数据的疑问
参考了论坛的文章http://www.amobbs.com/forum.php?mod=viewthread&tid=3711844&highlight=AD7705搞了个AD7705的测量
AIN-端输入是1.5V,AIN+端输入是0-3V
程序如下设置:
//********************************AD7705初始化程序*****************************//
void InitAD7705(void)
{
CS_0; //********************************AD7705初始化程序*****************************//
void InitAD7705(void)
{
CS_0; //CS置为输出低电平,使能 AD7705
ResetAD7705();
TransmitterSpi(0x20); //通讯寄存器 //通道 1,下一个写时钟寄存器 自校准
TransmitterSpi(0x00); //时钟寄存器 //写时钟寄存器设置 2.459Mhz更新速率为20hz
TransmitterSpi(0x10); //通讯寄存器 //通道 1,下一个写设置寄存器
TransmitterSpi(0x40); //设置寄存器 //自校准,增益 16,双极 ,缓冲
delay_ms(5); //延时
//TransmitterSpi(0x21); //通讯寄存器 //通道 2,下一个写时钟寄存器 自校准
//TransmitterSpi(0x08); //时钟寄存器 //写时钟寄存器设置 2.459Mhz更新速率为20hz
//TransmitterSpi(0x11); //通讯寄存器 //通道 2,下一个写设置寄存器
//TransmitterSpi(0x60); //设置寄存器 //自校准,增益 16,双极,缓冲
//delay_ms(5); //延时
}
//******************************按照通道 1 读取******************************//
unsigned int ReadDataCH1(void)
{
unsigned int getData = 0;
unsigned int bufR;
//TransmitterSpi(0x10); //通讯寄存器 //通道 1,下一个写设置寄存器
//TransmitterSpi(0x60); //设置寄存器 //自校准,增益 16,双极 ,缓冲
//while(PIND&(1<<3)); //等待校准完成READY 信号变为低电平
TransmitterSpi(0x38); //发送 0x38 读取 CH1 数据寄存器
while(PIND&(1<<3)); //等待 READY 信号变为低电平
bufR=TransmitterSpi(0xFF);//转换结果高位
bufR=TransmitterSpi(0xFF);//转换结果低位
getData=(bufR<<8)|bufR;//获得数据 16 位
return getData; //返回数据
}
输出的结果对应0-3V是38600-59600,为什么不是0-65535呢? 没有人知道吗?顶一下自己 基准源 和 极性配置,
自信看看手册这两点 基准源是2.5v,极性设置了双极性了,找不到什么原因,好烦恼。 还是没搞明白,不知道为什么啊?哪位高手帮帮忙。 这里有一些关于AD7705使用中遇到的问题解答,供参考哦~~
https://ezchina.analog.com/search.jspa?q=AD7705
页:
[1]