各位好,有谁用过ads8568,
现在遇到这样问题:ads8568采集基本正常,但可能在某一次上电后,出现不工作的状态(busy为高),必须重新上电才能正常,CONVST、RD、CS等输入正常
说明:此AD芯片挂在fpga上,供电电压HVDD和HVSS连接+5v,-5v,与模拟电压共用
DVDD:+3.3v 数字
谢谢
Jeff Wang1:
请看一下C27, C26的配置。
weijie tang:
回复 Jeff Wang1:
thank u, Jeff Wang1
但Configuration (CONFIG) Register 解释说:
The Configuration Register settings can only be changed in software mode and are not affected when switching to hardware mode thereafter. The register values are independent from input pin settings. Changes are active
我用的配置模式正是 hardware mode
是不用配置c26,c27吧
Decapton Wang:
回复 weijie tang:
手册29页表5,C26和C27在HW mode下也是可配的。
按照手册第9页图1或第11页图2,检查一下配置时序,最好用示波器抓一下SPI的时序。
jeff kuang:
在reset后等Busy为low.我的代码可以给你参考一下:
void ADS8565::reset(){ GPIO_ResetBits(AD_CONTROL_PROT, AD_CONVST_A_PIN); GPIO_ResetBits(AD_CONTROL_PROT, AD_CONVST_B_PIN); GPIO_ResetBits(AD_CONTROL_PROT, AD_CONVST_C_PIN); GPIO_ResetBits(AD_CONTROL_PROT, AD_CONVST_D_PIN); generateReset(); while(GPIO_ReadInputDataBit(AD_CONTROL_PROT, AD_BUSY_PIN)); // wait busy == low setADConfig(); GPIO_SetBits(AD_CONTROL_PROT, AD_STBY_PIN); GPIO_ResetBits(AD_CONTROL_PROT, AD_REFBUFEN_PIN); GPIO_ResetBits(AD_CONTROL_PROT, AD_ASLEEP_PIN); GPIO_SetBits(AD_CONTROL_PROT, AD_CONVST_A_PIN); GPIO_SetBits(AD_CONTROL_PROT, AD_CONVST_B_PIN); GPIO_SetBits(AD_CONTROL_PROT, AD_CONVST_C_PIN); GPIO_SetBits(AD_CONTROL_PROT, AD_CONVST_D_PIN);