Part Number:ADS131A02
1、使用asynchronous slave mode, M0=1, M1=0, M2=0;ADS芯片初始化的时候,读取寄存器时不能得到设置的数值,读取仅读寄存器得到的数据都是0x00, 在配置A_SYS_CFG等寄存器时,读取到的是0x2200,,并且在第一次发送0x0655命令时,返回的是0xff02,第二次发送0x655时,返回的是0x0655;
peng xueliang:
在读取ADC的数值时,会返回0x2232
,
Amy Luo:
您好,
建议先调试好能够读写寄存器,这样才能根据需求配置相关设置到寄存器。
寄存器的读写在数据表9.5.3.7章节 至 9.5.3.10章节有详细说明;另外在产品首页 软件开发部分,如下截图,有C 代码示例,您可以下载参考:
ADS131A02产品首页链接:https://www.ti.com.cn/product/cn/ADS131A02
,
peng xueliang:
目前正常配置寄存器以及返回寄存器配置信息数据
,
Amy Luo:
感谢您的反馈,您的问题是否得到了解决?或者说您可以明确下目前您存在的问题吗
,
peng xueliang:
你好!目前我在读取ADS采集的数据时,发送NULL 0x0000指令之后,读取的数值为0x2222,查看了STAT_1寄存器,得出是SPI状态寄存器的SCLK的问题,请问这个怎么解决,或者说读取ADS的数据时,发送的指令是0x0000,还是其他的指令?盼复,谢谢!
,
Amy Luo:
您读取ADC采集数据时,是否通过DRDY信号判断新数据转换完成?
您设置的数据速率是多少?CLKIN是多少?
,
peng xueliang:
你好
1、晶振 16.384MHz,其中CLK1 = 0x08, CLK2 = 0x86, 2、是通过DRDY信号来判断数据是否转换完成的,步骤如下:DRDY低电平,发送NULL指令读取数据
期待回复,
谢谢!
,
Amy Luo:
SCLK频率是多少?看下在新的数据转换完成之前,是否可以将现有转换数据完成读取?
,
peng xueliang:
SCLK = 2.5MHz, 读取到状态值为0x2232, 读取到的通道数据值24 bit会波动很大,利用公式算得的数值:在 0.多 ~ 7.多变化,计算公式为:code = 4V *(Value / 0x7F FFFF);
,
peng xueliang:
是不是SPI的时钟频率要跟ADS的fICLK频率一致才能解决0x2232的问题,还需要配置CLK2寄存器的频率会对0x2232状态有影响吗
,
Amy Luo:
1 LSB = (2 × VREF / Gain) / 2 ^16 = FS / 2^15,输出code乘以1 LSB是输入的模拟电压值。
,
Amy Luo:
这个值0x2232是什么值?是读取的采集数据还是哪个寄存器值?
输入时钟以及CLK1, CLK2 的配置是想看你设置的数据速率是多少,SCLK是SPI通信数据传输的速率,也就是说SPI 要在下一个数据转换完成之前,将前一个转换完成的数据采集出去,如果SPI采集数据速率低于ADC转换速率,新的转换数据会丢失F_DRDY = 1.
,
peng xueliang:
1、就是SPI的数据传输的速率 > 数据转换器数据转换的速率?2、0x2232这个数值是发送NULL Command 读取ADC数值后返回的状态值,在数据手册的50页,Figure 68. NULL Command Status Response
,
Amy Luo:
Negative Charge Pump是否使能了?即VNCPEN设置的是什么?AVDD 、 AVSS 、IOVDD供电电压是多少?您可以附上电路图吗?输入模拟信号是什么?输入信号幅值?
您是使用的 Asynchronous Interrupt Mode 吗?
您可以读取状态寄存器的值然后附在这里吗?
,
Amy Luo:
也建议将您的寄存器配置附在这里
,
peng xueliang:
,
peng xueliang:
,
Amy Luo:
目前的error是 STAT_S,bit 0=1: Not enough SCLKs are sent per frame。即如果设备检测到在现有操作模式的数据帧中发送的SCLK周期不足,则该位置1
VREF、REFEXT管脚连接是错误的吗?