Part Number:ADS1120
问题现象:依次对不同的通道进行单次测量,正常情况下每个通道读取的值不一样,但测试过程中发现,部分芯片读取不同的通道时,会出现每个通道读取的值都是一样的现象;我在芯片初始化前就将CS脚设置为低电平,后续进行芯片通讯时始终处于低电平,请问是否和这个有关?
我的寄存器配置如下:
Register 0 = 0X00;
Register 1 = 0XC0;
Register 2 = 0X40;
Register 3 = 0X00;
我的读取流程如下:
1. 修改配置寄存器0,每次修改MUX[3:0]的值,目的是为了更改测量通道AINP
2. 发送START_ADS,开始转换
3. 等待 DRDY 变为低电平
4. 发送RDATA_ADS,读取通道的ADC数值
Amy Luo:
您好,
如果SPI总线上只有一个设备,那么CS可以接低电平。
bryce said:依次对不同的通道进行单次测量,正常情况下每个通道读取的值不一样,但测试过程中发现,部分芯片读取不同的通道时,会出现每个通道读取的值都是一样的现象;
读取的值是对应哪个通道的输入?
您通过MUX[3:0] 修改读取通道时,MUX[3:0] 您分别配置的是什么值?
修改后,您是否可以尝试读取下R0寄存器的值,看下寄存器值是否按照期望值写入?
,
bryce:
好的谢谢您的问题,下面是对您的问题回复:1. 读取的值是随机某个通道的值2. MUX[3:0]的取值为:0x80, 0x90,0xa0,0xb03. 我并未尝试回读该寄存器的值,而是直接更换了芯片解决了该问题;完整过程:我一共尝试了三块板子(每块板子使用了一个ADS1120芯片),三块板子的程序确保一致,但其中有一块板子的ADS1120出现了我所说的问题(MUX[3:0]配置不同,但读取的值一样),更换芯片后程序依然不做变更,不再出现该现象问题:这个现象是通讯上的异常还是芯片的原因,如果怀疑是程序通讯导致的,我可以提供程序代码给您
,
Amy Luo:
不确定是否与寄存器配置有关,Configuration Register 0要求,在配置 AINN = AVSS时,需要disabled PGA:
而在您的配置中是采用的默认值,即 0 : PGA enabled (default),您修改PGA_BYPASS 位的配置,看是否解决上述问题?