需要用c6748的spi口来连接ads8556,发现dsp给出convst_A,convst_B,convst_C后,ADS8556 BUSY/INT脚就一直输出高电平,不输出低电平。无论等多久,必须reset后,才能输出低电平。我目前使用的是Hardware模式,因此应该不会是从busy模式转到了int模式,因为SDI脚已经接地了。
我尝试过很多种convst_A的输出电平的方法,比如一直拉高,比如拉高之后过一段时间再拉低。我想问convst电平应该怎样输入?是输入之后过了转换时间再拉低么?如果一直拉高的话会有什么影响?这个和busy脚的问题有没有关系?
另外我也排查了一些外围电路,但是都没有发现问题,所以现在完全没有解决问题的方向。我想问造成这个可能的原因是什么?
附件是我采样电路的原理图,如果可能的话麻烦帮我检查一下。其中opa2211有一个脚接错了,已经改过来了。
万分感谢!
KW X:
对于这类复杂逻辑芯片;都是需要Reset后再操作的。
原因很简单;由于上电过程是个暂态,所有状态不能完全确定,内部数据也是一样,除非是固化的(如事先写入固化的非易失性)。
fengye5340:
通过数据手册看到,它的BUSY引脚是这个描述.受CR寄存器控制,不知道你选择正常模式还是中断模式。根据使用经验,一般是用查询模式。
也就是C21=0,这样的话,BUSY位输出高电平,表示芯片正在转换,或者没有转换完成,低电平才是转换完成。你RESET后,BUSY输出了低电平,有没有得到ADC的结果呢?如果没有,说明你的器件代码配置有问题。你需要检查一下你的SPI接口代码是否正确?配置ADC的控制代码是否正常。
目前来看,BUSY输出高电平,你输出到convst_A后,并没有让ADC工作。还是好好检查一下你的代码配置。
user3917511:
Reset后再操作试试。。
JiaChuang Chen:
BUSY高电平说明忙碌,内部正在转换。需要等到BUSY低电平之后才能读取转换结果。
不过你这个BUSY一直为高电平,说明前面的配置应该是有问题的,或者没有配置好。
建议检查一下前面的寄存器配置。
Ringo Zhan:
回复 KW X:
谢谢你的帮助,最后我查出来是~StandBy脚没有输入高电平,我以为和reset脚一样悬空就行了,结果出错了。