寄存器操作分析
Theinternal registers oftheADS8684 andADS8688 arecategorized intotwocategories: command registers and program registers.
ADS8688有命令寄存器和程序寄存器
命令寄存器是16位的写寄存器,通过写入指令来控制采集通道和配置采集模式
[参考代码]
程序寄存器也是16位的寄存器,用来控制操作模式
写程序寄存器的方法
The device receives thecommand (as shown inTable 7and Table 8)through SDI where the first even bits(bits[15:9]) represent the register address and the eighth bit(bit8) is the write or read in struction.
指令的前七位指示待写入寄存器的地址,第八位为1表示Write,第二个字节是待写入的数据
[参考代码]
数据左移一位并上0x01符合写寄存器指令的格式要求
读程序寄存器的方法
For a read cycle, the next eight bits(bits[7:0]) in the SDI are don’t care bits.SDO outputs the 8-bit data from the addressed register during these eight clocks, inMSB-first fashion.
指令的前七位指示待写入寄存器的地址,第八位为0表示read,第二个字节不关心
[参考代码]
初始化代码分析
以ADS8688_Write_Program(CH0_INPUT_RANGE, VREF_B_125)为例(芯片手册Page 45)
#define CH0_INPUT_RANGE 0x05 // 通道0输入范围选择寄存器
#define VREF_B_125 0x01 // 通道输入范围±1.25*VREF
控制通道0电压输入范围的寄存器地址为05h,其默认值为00h,低三位控制输入范围,找到输入范围的相关描述(见芯片手册Page 49)
每个通道对应的寄存器地址不同,此处低三位我写入的是01h,表示输入电压范围为±1.25*VREF
ADS8688_Write_Program(CH_PWR_DN, 0xFD)
该寄存器的默认值为 00h,这意味着在默认情况下所有通道均已上电,并且能够被包含在 AUTO_RST 序列中
ADS8688_Write_Program(AUTO_SEQ_EN, 0x02)
该寄存器的默认值为 FFh,这意味着在默认情况下,所有通道都包含在自动扫描序列中
![](https://i-blog.csdnimg.cn/blog_migrate/3a9d89e4a853cf8abb453e2b1ab1e819.png)
采集模式分析
根据以上描述,在自动扫描模式下,采集的通道会自增
[通道范围仅有备选通道,详细配置参见上述寄存器操作配置]
若更换为手动模式,需要发出类似MAN_CH_1指令[#define MAN_CH_1 0xC400 ],并且对通道一的采集发生于下一个采样周期
[具体时序参见下图]