ADS8688分析及驱动代码

本文详细解析了ADS8688的命令和程序寄存器功能,包括写入/读取操作方法、初始化设置(如输入范围和电源管理),以及采集模式(自动扫描与手动模式)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 寄存器操作分析

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,这意味着在默认情况下,所有通道都包含在自动扫描序列中

 

 采集模式分析

根据以上描述,在自动扫描模式下,采集的通道会自增

[通道范围仅有备选通道,详细配置参见上述寄存器操作配置]

若更换为手动模式,需要发出类似MAN_CH_1指令[#define           MAN_CH_1             0xC400 ],并且对通道一的采集发生于下一个采样周期

[具体时序参见下图]

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值