ADS8688分析及驱动代码

 寄存器操作分析

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 ],并且对通道一的采集发生于下一个采样周期

[具体时序参见下图]

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ADS8688是一款高精度模数转换器(ADC),在基于SPI(串行外围接口)的通信协议下进行驱动。 在实现ADS8688模拟SPI驱动的过程中,首先需要了解ADS8688芯片的SPI通信协议规范。根据ADS8688的数据手册,可知其SPI通信配置为主从模式、时钟极性为低,时钟相位为第二个边沿采样,数据为MSB(最高有效位先发送)。因此,在驱动中需要根据芯片的特性设置正确的SPI模式和时钟参数。 接着,在驱动中需要配置MCU的SPI模块,设置SPI通信的时钟频率、传输位数、数据序列等参数。根据ADS8688的时序要求,需要在片选(CS)信号为低时开始传输数据,在传输过程中通过SPI模块的发送和接收寄存器进行数据收发操作,并且需要根据ADS8688的时序要求来精确控制时钟信号的边沿和数据采样时间。 在向ADS8688发送命令和配置寄存器的过程中,需要按照ADS8688的寄存器配置要求进行数据帧的组织和传输。一般而言,可先发送读写命令字节,再发送寄存器地址字节,最后发送数据字节进行配置。在读取ADS8688转换结果时,可以先发送读命令字节和转换结果寄存器地址字节,然后通过SPI模块接收返回的数据字节,得到转换结果。 最后,需要在驱动中封装相关函数,对ADS8688进行初始化、配置、读取转换结果等操作。通过这些封装好的函数,可以方便地在应用程序中调用和使用ADS8688模拟SPI驱动。 总之,ADS8688的模拟SPI驱动的实现需要根据ADS8688芯片和SPI通信的特性进行正确的配置和操作,通过SPI模块与ADS8688进行通信来实现对其的控制和数据读写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值