要注意SYNC引脚,手册对该引脚的说明如下:
Logic input that allows for synchronization of the digital filters and analog modulators when using
multiple AD7190 devices. While SYNC is low, the nodes of the digital filter, the filter control logic, and the
calibration control logic are reset and the analog modulator is held in its reset state. SYNC does not affect
the digital interface but does reset RDY to a high state if it is low. SYNC has a pull-up resistor internally to DVDD.
评分
查看全部评分
{
uint8_t buf[3];
uint32_t Result = 0;
buf[0] = 0x58; //下一步要读数据寄存器
Write_AD7190(1,buf); //写通讯寄存器
Read_AD7190(3,buf); //读数据寄存器
Result = (((uint32_t)buf[2]) << 16) | (((uint32_t)buf[1]) << 8) | buf[0];
return (Result);
}
我读 状态寄存器值,全是0x00 00 00 80,读数据寄存器全是0,
像是没有启动转换
可能初始化程序有问题,再检查下吧
初始化AD7190时,具体初始化哪此,有分顺序步骤吗?能否稍微详细说明下
既然解决了,那么就总结一下原因和解决方法吧。
要注意SYNC引脚,手册对该引脚的说明如下:
Logic input that allows for synchronization of the digital filters and analog modulators when using
multiple AD7190 devices. While SYNC is low, the nodes of the digital filter, the filter control logic, and the
calibration control logic are reset and the analog modulator is held in its reset state. SYNC does not affect
the digital interface but does reset RDY to a high state if it is low. SYNC has a pull-up resistor internally to DVDD.
所以常规使用情况下,SYNC要置高,若置低,则RDY始终为高,不会拉低,故读状态寄存器也没有转换后的数据。实际项目情况,我读到的AD值跳动量在个位数,很是理想。