尊敬的 Chris:
我正在收集 ADS1256上2个 ADC 通道的数据。 下面是两个单独试验的图像 
我将其接地的第一个通道、我将其连接到 PSU 的第二个通道、我更改其输出电压。 您可以看到、噪声在两个通道之间耦合。 该图显示、第一个通道(GND)的噪声振幅受第二个通道(PSU 电压)的曲线限制。
我想知道这一问题的原因可能是什么。
谢谢、
Khoi Ly
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、Khoi、
在不深入了解您的输入电路的情况下、很难说出可能发生的情况。 如果您有原理图、您可以分享它会很有帮助。 很遗憾、我无法访问您在上一个主题中发布的 Google 驱动器链接。
乍一看、它会不时出现串话或数据损坏。 可能的原因包括:
此外、当 CH2最大值超出 ADC 的输入范围时、我还稍微担心 CH2的输入电压实际上会达到多高。 请确保 PSU 电压和电流受到限制、以免损坏 ADC。 过压情况下、电流应限制为10mA。
我建议尝试几个不同的测试以进行故障排除...
尊敬的 Chris:
当我将采样率降低5倍时、两个通道之间的耦合信号消失。 我认为这是当时的数据损坏。
对于(i=0;i<=5;i++){ //读取全部6个单端通道 AIN0、AIN1、AIN2、AIN3、AIN4、 AIN5
while (GPIO_GET_LEVEL (PIN_NUM_DRDY)=1){};//等待直至数据读取拉低
//通道寄存
器之间切换 reg = 0x01;cmd = 0x00;data = mux[i];//第一个命令字节:0101 0001 0001 0001 =多路复用器寄存器地址01h
ADS1256_REG (SPI、reg、Data);Data cmd://字节 xxxx 1000将数据字节写入寄存器
//SYNC 命令1111 1100 (0xFC)
cmd = 0xFC;
ADS1256_cmd (SPI、cmd);
//WAKEUP 0000
cmd = 0x00;
ADS1256_cmd (SPI、cmd);
//读取数据
cmd = 0x01;
ADS1256_cmd (SPI、cmd);//读取数据0001 (0001);//读取数据0001 (0001) //******** 步骤3******
adc_val[i]= ADS1256_read (SPI);
adc_val[i]<= 8;//向左移动
adc_val[i]|= ADS1256_read (SPI);
adc_val[i]<= 8;
adc_val[i]|= ADS1256_read (SPI);
}
我想知道上面的代码片段中有 DRDY 问题的位置吗? 我可以查看逻辑分析仪并适当设置延迟。
谢谢、
Khoi Ly
您好、Khoi、
不同 ADC 之间的最大 SCLK 频率不同、我可能已经将此要求与允许 fCLK/2的不同器件混合在一起。 抱歉。
从 ADS1256数据表中、我可以在此处获得此要求:
最小 SCLK 周期(T1)为 fCLKIN 周期(或 tCLKIN)的4倍。 因此、如果 fCLKIN = 7.68MHz、那么 SCLK 不应超过1.92MHz。 例如、如果您的 SCLK 频率为100kHz、那么将 SCLK 加速至1.5MHz 或1.9MHz 将使您能够以更快的速度读取数据、并帮助您的 MCU 跟上 ADC 的数据速率。
[引用 USER="Khoi Ly10">...因此、我目前使用计时器中断将收集速率设置为500Hz、即使 DRDY 以30000个样本/秒的速率运行 如果我改为为 DRDY 引脚设置硬件触发中断、我想知道如何有选择地定期跳过几个 DRDY 拉低事件、以便我能够实现500Hz 采样率。[/QUERPLET]
唯一的问题是您可能在/DRDY 下降沿期间读取数据(或发送 RDATA 命令)并获取损坏的数据。 为了避免这种情况、您可以做一些事情...
无论您决定使用哪种方法、我都建议使用获得500SPS/通道所需的最慢数据速率。 如 表1所示、较慢的数据速率具有较低的噪声。