读写操作如下:
#define WAIT 100
void Read_AD7928(u16 *data_out,u16 Send_data)
{
u8 i;
DIN=1;
Delay(10);
DOUT=1;
Delay(10);
SCLK=1;
Delay(10);
CS=1;
Delay(10);
CS=0;
Delay(20);
*data_out = 0;
//Send_data = Send_data<<5;
for(i=0;i<16;i++)
{
if(Send_data&(1<
{
DIN=1;
}
else
{
DIN=0;
}
Delay(WAIT);
SCLK=0;
Delay(WAIT);
if(DOUT)
{
*data_out |=1<
}
SCLK=1;
Delay(WAIT);
}
*data_out=(*data_out&0x1fff)/2;
CS=1;
}
定时1ms:
Read_AD7928(&value,0x9330);
读出来的结果value每次都一样?或者说是不准确的数据,请问是什么问题呢?
2018-11-9 09:49:55
您好!
不能正常读到数据请先检查硬件设计,看硬件设计是否正确,硬件设计请参考附件内AD7928评估板原理图。确保硬件设计正确后,请检查焊接是否正常,通常虚焊或短路会导致芯片状态不正常。
对于软件部分的检查,首先应保证初始化流程与数据手册中流程要求一致。在数字读写时,则应保证读写时序遵守数据手册中时序图。
附件
您好!
不能正常读到数据请先检查硬件设计,看硬件设计是否正确,硬件设计请参考附件内AD7928评估板原理图。确保硬件设计正确后,请检查焊接是否正常,通常虚焊或短路会导致芯片状态不正常。
对于软件部分的检查,首先应保证初始化流程与数据手册中流程要求一致。在数字读写时,则应保证读写时序遵守数据手册中时序图。
附件
举报
2018-11-9 10:03:20
引用: 213123d 发表于 2018-11-9 20:04
您好!
不能正常读到数据请先检查硬件设计,看硬件设计是否正确,硬件设计请参考附件内AD7928评估板原理图。确保硬件设计正确后,请检查焊接是否正常,通常虚焊或短路会导致芯片状态不正常。
对于软件部分的检查,首先应保证初始化流程与数据手册中流程要求一致。在数字读写时,则应保证读写时序遵守数据手册中时序图。
问题已经解决,实际上读和写程序要分开写,参考网上提供的AD7949读写例程,在读的时候数据信号要为低,才可以正常读。
引用: 213123d 发表于 2018-11-9 20:04
您好!
不能正常读到数据请先检查硬件设计,看硬件设计是否正确,硬件设计请参考附件内AD7928评估板原理图。确保硬件设计正确后,请检查焊接是否正常,通常虚焊或短路会导致芯片状态不正常。
对于软件部分的检查,首先应保证初始化流程与数据手册中流程要求一致。在数字读写时,则应保证读写时序遵守数据手册中时序图。
问题已经解决,实际上读和写程序要分开写,参考网上提供的AD7949读写例程,在读的时候数据信号要为低,才可以正常读。
举报
2018-11-9 10:15:02
你好!我在读取AD7490的时候遇到了同样的问题。请问下您所说的“在读的时候数据信号要为低,才可以正常读”这句话是啥意思?是不是一开始的idle的状态要为低
你好!我在读取AD7490的时候遇到了同样的问题。请问下您所说的“在读的时候数据信号要为低,才可以正常读”这句话是啥意思?是不是一开始的idle的状态要为低
举报