TI论坛
直播中

史靖文

7年用户 214经验值
私信 关注
[问答]

请问以上是什么原因造成的?

我现在测试的ADS1247写入数据寄存器的数据读出验证是正确的,但是配置的1mA电流无法在AIN0输出,采集的数据寄存器中的数据也不正常,数据位0xFF8000-0X000000。请问以上是什么原因造成的?
下面是我对寄存器的配置
ADS1247_CS_CLR();
ADS1247_RESET_SET()

ADS1247_Delays(20);
WriteByteADS1247(Reset);//0x06
ADS1247_Delays(1000);//6ms

WriteByteADS1247(WReg|Reg_MUX0);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_MUX0);//0x01

WriteByteADS1247(WReg|Reg_VBias);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_VBias);//0x00

WriteByteADS1247(WReg|Reg_MUX1);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_MUX1);//0x00

WriteByteADS1247(WReg|Reg_SYS0);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_SYS0);//0x00

WriteByteADS1247(WReg|Reg_IDAC0);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_IDAC0);//0x06

WriteByteADS1247(WReg|Reg_IDAC1);
WriteByteADS1247(0x00);
WriteByteADS1247(ADS1247_IDAC1);//0x0f

WriteByteADS1247(RReg|Reg_IDAC1);
WriteByteADS1247(0x00);
k = ReadByteADS1247();//这里读出的数据是0x0f验证写入寄存器的数据正常

WriteByteADS1247(0x12);
// ADS1247_CS_SET();
ADS1247_START_SET();
下面是读数据
while(ADS1247_DOut_Get());
WriteByteADS1247(0x12);
temp24 = ReadDWordADS1247();
读出的数据就是0xff8000或者0x000000,请问配置有问题吗?问题出在那里?
                                                                          有事情给我发 163邮件就ok的

回帖(10)

史靖文

2019-6-19 08:18:19
我的邮箱是zhcj66@163.com
                                                                         有事情给我发 163邮件就ok的
举报

贾佳斌

2019-6-19 08:30:20
你说一你向IDAC1寄存器写的值是多少,
这个寄存器的,5:4两位控制电流源1连在哪个引脚,(没在你的代码中看到你向这个寄存器里写了什么值)
1:0两位控制电流源2连在哪个引脚,
并且7:6各3:2四个位不能为11B。否则为不连接,如下是datasheet中的说明。
11xx = Disconnected (default)
举报

史靖文

2019-6-19 08:44:20
引用: wangchao28 发表于 2019-6-19 08:30
你说一你向IDAC1寄存器写的值是多少,
这个寄存器的,5:4两位控制电流源1连在哪个引脚,(没在你的代码中看到你向这个寄存器里写了什么值)
1:0两位控制电流源2连在哪个引脚,

#define ADS1247_MUX0 0x01 //AIN0(+)-AIN1(-)
#define ADS1247_VBias 0x00 
#define ADS1247_MUX1 0x33 
#define ADS1247_SYS0 0x00
#define ADS1247_IDAC0 0x06
#define ADS1247_IDAC1 0x03
这是向寄存器写入的数值,我把ADS1247_IDAC1的值由0x0f改为0x03但是 AIN0还是没有输出电流,ADS1247_IDAC0读出的值是0x86这正常吗?
请看到后恢复我邮箱zhcj66@163.com
                                                                         有事情给我发 163邮件就ok的
举报

史靖文

2019-6-19 08:52:17
引用: 60user13 发表于 2019-6-19 08:44
#define ADS1247_MUX0 0x01 //AIN0(+)-AIN1(-)
#define ADS1247_VBias 0x00 
#define ADS1247_MUX1 0x33 

我的电路设计是这样的,AIN0做为输入的+,并提供1mA的恒流输出,经过一个采样电阻到AIN1 -输入,然后AIN1和REF+相连再连接一个680欧姆电阻 到REF-并接地。
                                                                         有事情给我发 163邮件就ok的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分