AD7705的写操作时序图如图5所示。在将片选端CS拉低后,即可在串行时钟的上升沿发送数据,发送数据时,高位在前。
AD7705的读操作时序图如图6所示。当在AD7705的DRDY信号脚检测到逻辑低电平时,表示可以从AD7705的数据寄存器获取新的输出字,当完成对一个完全的输出字的读操作后,DRDY引脚立即回到高电平。如果在两次输出更新之间,不发生数据输出,DRDY将在下一次输出更新前500个输入时钟时间返回高电平。DRDY处于高电平时,不能进行读操作。当数据更新后,DRDY又返回低电平。
2.2 FPGA接口的软件设计
FPGA与AD7705共有5个接口引脚,分别为片选端CS、串行时钟端SCLK、串行数据输入端DIN、串行数据输出端DOUT和串行数据请求端
DRDY。
读AD7705的数据寄存器前,需先设置其时钟寄存器和设置寄存器,下面以1通道为例来简要说明,首先向AD7705发送串行数据0x20,表示下一操作选择时钟寄存器,接着发送串行数据0x0C,设置时钟为2分频,然后发送Oxl0,表示下一操作选择设置寄存器,接着发送串行数据0x44,表示设置寄存器模式为自校准,增益l,单极性,无缓冲,然后再向AD7705发送0x38,表示可以读通道1的数据寄存器,并等待AD7705的DRDY变低,然后发送16个时钟,以读取通道1的16位转换数据。通道2的数据读取与通道1的数据读取相似,发送的数据分别为0x21,0x0C,
0x11,0x44,0x39。
3 结束语
本文用有限状态机在FPGA上实现了对有SPI接口的AD转换器AD7705的接口应用,并对AD7705的两路输入信号进行了实时采集。事实上,选用通用I/O口模拟SPI时序,相比标准SPI接口IP核更为简洁,可以节约FPGA的片上资源。由于AD7705提供有双通道、低成本、高分辨率的模数转换功能,因此,采用∑-△结构实现模数转换,可使得该器件在噪音环境下免受干扰,因而很适合于工业控制应用。