完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
版主:我在使用AD7705时,碰到这样的问题:
在ADC自校正后,执行 ZN=ZS+(Z1-Z0) GN=GS*(G1/G0) , 在CH1=0 CHO=1 通道(AIN2 (+ ) AIN2 (- )),修改ZN GN 结果有正常的变化, 但是在CH1=0 CHO=0 通道(AIN1 (+ ) AIN1 (- )),只有对ZN偏移寄存器修改,输出结果有变化, 修改增益寄存器GN,输出结果却没有变化,(已经对修改后的增益寄存器再次读出,确定数据已经改变且正确)。 请问这是什么原因。谢谢 36425701@qq.com #define Communication_register 0<<4 #define Setup_register 1<<4 #define Clock_register 2<<4 #define Data_register 3<<4 #define Test_register 4<<4 #define No_operation 5<<4 #define Offset_register 6<<4 #define Gain_register 7<<4 #define read 8 #define ch0 0 #define ch1 1 #define MD0 (0<<6) #define MD1 (1<<6) #define MD2 (2<<6) #define MD3 (3<<6) #define G16 (4<<3) #define G32 (5<<3) #define G64 (6<<3) /////////下面是在CH1=0 CHO=1 通道///////////////////////////////////////// case 23: Writetoreg(0x38); u[CurrentChannle][7]=Read16();//存数7 TNum=0; Writetoreg(Clock_register|ch1); //0x21 clock Writetoreg(0x00); //0 50Hz 84 10Hz Writetoreg(Setup_register|ch1); // setup 选择PT100通道 Writetoreg(MD1|G32); // 自校准 gain 32 break; case 24: Writetoreg(Offset_register|read|ch1); //read 偏移寄存器 i=Read(24); Temp.i=Offset[ch1]+i; //Zn=Zs+Z1-Z0 Temp.c[3]=(Offset_register|ch1); //write 偏移寄存器 WriteIntToReg(Temp.i); Writetoreg(Gain_register|read|ch1); //增益寄存器 i=Read(24); f1=Gain[ch1]; Temp.i = i*f1; //Gn=GS*G1/G0 Temp.c[3]=(Gain_register|ch1); //write 增益寄存器 WriteIntToReg(Temp.i); SelCHL(CurrentChannle,0); break; ////////////////////下面是在CH1=0 CHO=0 通道////////////////// SelCHL(CurrentChannle,0); Writetoreg(Clock_register|ch0); //0x20 clock Writetoreg(0x00);//0 50Hz 84 10Hz Writetoreg(Setup_register|ch0); // setup Writetoreg(MD1|G32); // 自校准 gain 32 } switch(ADC_DRDY_CNT) { case 1: Writetoreg(Offset_register|read|ch0); //read 偏移寄存器 i=Read(24); Temp.i=Offset[ch0]+i; //Zn=Zs+Z1-Z0 Temp.c[3]=(Offset_register|ch0); //write 偏移寄存器 WriteIntToReg(Temp.i); Writetoreg(Gain_register|read|ch0); //增益寄存器 i=Read(24); f1=Gain[ch0]; Temp.i = i*f1; //Gn=GS*G1/G0 Temp.c[3]=(Gain_register|ch0); //write 增益寄存器 WriteIntToReg(Temp.i); SelCHL(CurrentChannle,0); break; |
|
相关推荐
2个回答
|
|
问题已经找到,不必回复了
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1289 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1890 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4232 浏览 2 评论
8987 浏览 1 评论
3133 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1407浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1640浏览 2评论
1605浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1289浏览 2评论
201浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 00:25 , Processed in 0.975584 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号