主控为STM32H750,与AD7606芯片连接的原理图如下:
模式选择Parallel/Serial/Byte Interface Selection Input
一共有三种模式,分别是并行接口模式、串行接口模式、并行字节接口模式
我选用的是串行接口,所以PAR/SER/BYTE SEL拉高,DB15拉低。在该模式下DB7是串行数据输出引脚
读取时序实现如下:
uint16_t ad7606_ReadBytes(void)
{
uint8_t count=0;
uint16_t Num=0;
SCL_SET();
for(count=0;count<16;count++)//读出16位数据
{
SCL_CLEAR(); //下降沿有效
Num<<=1;
if(HAL_GPIO_ReadPin(AD7606_MISO_GPIO_Port,AD7606_MISO_Pin) ==1)
Num++;
SCL_SET();
}
return(Num);
}
STBY引脚
待机模式输入。该引脚用于将AD7606/AD7606-6/AD7606-4置于两种断电模式之一:待机模式或关机模式。但是我们想要正常使用AD7606的话显然就应该把该引脚拉高
过采样&采样范围选择
RANGE = 1 ±10V采用范围
RANGE = 0 ±5V采样范围
过采样是指在ADC位数固定的硬件条件下,来提升ADC的有效位数,进而提高ADC的分辨率。整体而言,过采样通过提高信噪比(SNR)来提高有效位数,进而提高ADC的分辨率,在硬件固定式从软件方便找到突破口。注意:过采样是提高分辨率而不是提高采样精度,是减小ADC量化噪声的方法。过采样配置的表格如下:
比较容易踩坑的是上面提到的一些特殊时序及引脚,其余如BUSY、FRSTDATA是AD7606的指示引脚,单片机可选择中断方式读取,但是若选择定时采样的话也可以不处理这两个信号。RST是高电平有效,仅在初始化时执行一次即可。