电路设计论坛
直播中

李中宏

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

关于AD7707采样速度的问题求解

我使用AD7707设计产品,晶振4.9152M,使用模拟开关8通道切换,每通道工作在50HZ,但是每各通道的增益不同,目前已经能读到数据,但是在速度方面不高,115200的时候只能4次/秒,但是按照计算115200BPS,按照每次发送8个字节指令读取,返回7个数据指令,应该可以做到10次/秒,我不是很清楚问题出在哪,我如果设置采集速度为250次/秒,也只能到5次左右,另外我没有找的AD7707哪地方有个CODE寄存器,附件是读写和设置程序,请帮我看下是什么问题,以下是设置程序:
void AD_AINT3(void)   //通道3初始化
{  WriteToReg_AD7707(0x23); /*激活通道 AIN3/HICOM, 下一步操作为写 Clock Register*/
   WriteToReg_AD7707(0x18); /*启用 Master Clock, 2.4576MHz Clock, 设置 Output Rate 为 50Hz*/
   WriteToReg_AD7707(0x13); /*激活通道 AIN3/HICOM, 下一步操作为写 Setup Register*/
   WriteToReg_AD7707(0x48); /*Gain = 2, Bipolar差分模式, Buffer 关闭, 清 FSYNC 并执行 Self Calibration*/
}
uint  Readata(uchar benift,uchar channel)//切换通道并读取数据
{  
     uint addata;
     Init_AD7707();
     WriteToReg_AD7707(0x13); //激活通道 AIN3/HICOM, 下一步操作为写 Setup Register
     WriteToReg_AD7707(benift);//Gain可选, Bipolar差分模式, Buffer 关闭, 清 FSYNC 并执行 Self Calibration
     channelchoice(channel);
     WriteToReg_AD7707(0x3B); //激活通道 AIN3/HICOM, 下一步操作为读Data Register
     addata=Read_AD7707(16);
     return addata;
}
uint Read_AD7707(uchar number) /*读取AD7707数据*/
{
  uchar i;
  uint Data=0;
  while(DRDY==1);
  for(i=0;i

更多回帖

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