Part Number:ADS1256
SPI总线速度1.40625MB/S,基于STM32的HAL库下,对八通道输入同一道方波,方波频率20HZ、40HZ、60HZ时,会出现只有部分通道采样的数据能显示波形,输入其他频率的方波时,会存在采样到的数据显示的波形占空比与输入方波的占空比不相同,这种情况是属于寄存器配置不正确吗
Amy Luo:
您好,
您使用同样的配置,仅对一个通道的方波信号采集,采集结果正确吗?
ADS1256内部仅集成了一路ADC,8路模拟输入是通过 Multiplexer多路复用器实现的,因此在对8路信号进行依次采样时,每采集一个sample都需要配置MUX reg来改变选通的通道,如下Figure 19所示读取时序图:
,
Chu Huang:
您好
仅配置单通道,数据采样正确,符合输入的模拟信号波形
在切换通道时,参考说明手册中描述,30K采样点时,需要DRDY引脚信号出现五次低电平之后数据可用,但实际使用时,等待五次低电平后依然出现数据错误的情况
,
Amy Luo:
Chu Huang 说:仅配置单通道,数据采样正确,符合输入的模拟信号波形
这说明应该不是寄存器配置问题,这应该是切换通道时时序出现了问题。
Chu Huang 说:在切换通道时,参考说明手册中描述,30K采样点时,需要DRDY引脚信号出现五次低电平之后数据可用,但实际使用时,等待五次低电平后依然出现数据错误的情况
这里不是指“DRDY引脚信号出现五次低电平之后数据可用”,当设置30KSPS时,其实际DRDY周期是(1/30K)*5,因此您仅需检测到一个DRDY低电平后读取数据。
,
Chu Huang:
您好,更改DRDY的检测代码后,未出现预期的效果,您是否可以帮助我检查一下我的寄存器配置
在等待DRDY为低时,
写入STATUS寄存器为0x04,使高位在前,使用自校准,不使用缓冲
写入ADCON寄存器为0x00,放大倍数1倍
写入DRATE寄存器为0xF0,数据速度为30K
写入IO寄存器为0x00,引脚控制为0
再次等待低电平,写入0xf0,使其自校准
之后进行采样数据读取,等待DRDY低电平,写入0x51,0x00,0x08,0xfc,0x00,0x03,而后读取三字节数据,再次等待DRDY低电平,写入0x51,0x00,0x18,0xfc,0x00,0x03,而后读取三字节数据并记录为0号通道转化值,重复完成全部8通道读取
读写采用STM32F446单片机的硬件SPI,速率为1.40625MBit/S
感谢您的帮助
,
Amy Luo:
关于寄存器配置,我明天会具体看下。另外我找到下面链接有 ADS1256 example code,您可以先看下是否有帮助:
http://www.tide.ti.com/dcp/Examples/c5500.xml