完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用AD7708时发现,偶尔设备重新上电,CPU采集到AD7708输出的码值为全0或都32767.不知道是怎么回事,大部份时间芯片能正常工作,就是上电的时候会出现所有通道采集到的值都不变,一直是0或32767.以下是硬件和程序。断电后重新启动故障消失,芯片工作正常。
这是硬件连接,基准电压是2.5V,单端方式工作。 INT8U channel2[10] = {0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0xef,0xff}; //0-10v==0-65535 void SpiWrite (unsigned int data,unsigned char s ) { unsigned char i; //chop_select();//片选 //spi_clk_hi(); if(s == 0) s = 8; else s = 16; for(i=0;i spi_clk_lo();//低时钟 nop(); nop(); nop(); nop(); WDR(); if(data&0x80) spi_data_hi(); else spi_data_lo(); spi_clk_hi(); nop(); nop(); nop(); nop(); WDR(); data = data << 1; } //chop_unselect(); } unsigned int SpiRead (unsigned char s) { int i,data=0; //chop_select();//片选 //spi_clk_hi(); if(s == 0) s = 8; else s = 16; for(i=0;i data = data << 1; spi_clk_lo(); WDR(); nop(); nop(); nop(); nop(); if(AD7708_DATA) data |= 0x01; else data &= ~0x01; spi_clk_hi(); nop(); nop(); nop(); nop(); WDR(); } //chop_unselect(); return(data); } void AD7708Init ( void ) { chop_select();//片选 nop(); nop(); nop(); nop(); SpiWrite(0x07,0);//write I/O Control Register SpiWrite(0x30,0); SpiWrite(0x03,0);//write Filter Register SpiWrite(0x0D,0); SpiWrite(0x02,0);//ADC Control Register SpiWrite(0x0F,0); SpiWrite(0x01,0);//write Mode Register SpiWrite(0x02,0);// nop(); chop_unselect(); } void Start(unsigned char data) { SpiWrite(0X01,0);//write Mode Register SpiWrite(0x02,0);// SpiWrite(0x02,0);//ADC控制寄存器 SpiWrite(channel2[data],0); } unsigned int GegAdcValuea (unsigned char data) { unsigned int i,temp_data = 0; //AD7708Init(); chop_select(); nop(); Start(data); WDR(); while(!AD7708_READY) WDR(); SpiWrite(DATA_REG_R,0);//5 temp_data = SpiRead(1); chop_unselect(); return (temp_data); } |
|
相关推荐
3个回答
|
|
从现象上看,感觉就像是AD芯片死机了一样。
|
|
|
|
有可能是上电顺序导致的,最好上电后重新再reset一下,看看有没有改善
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1324 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
3938 浏览 2 评论
8606 浏览 1 评论
2921 浏览 1 评论
6725 浏览 2 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
727浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1048浏览 2评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
3938浏览 2评论
977浏览 2评论
759浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-28 17:45 , Processed in 0.594143 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号