主题中讨论的其他器件:ADS1299、 ENERGIA、 MSP430FR5994、
大家好、我正在尝试从 Arduino UNO 板设置 ADS1299。 我目前正在使用 Github 上发布的 OpenBCI C++代码。
我尝试遵循加电时的初始流程(第62页的数据表)、但似乎无法获得正确的 SPI 信号。
-时钟设置为4Mhz,而我得到的是6MHz 信号
- DIN 在 RDATAC 期间显示周期性信号
-所有 SPI 具有不同的电压偏移
我在这里展示了示波器图。
具有 DRDY 的 SCLK:
具有 DOUT 的 SCLK:
采用 DIN 的 SCLK:显示相同的信号、但偏移不同。
此外、当我每隔几秒读取一次寄存器时、它们看起来会随机发生变化:
ID、0x00、0x82、1、0、 0、0、0、0、1、 0
CONFIG1、0x01、0x89、1、0、 0、0、1、0、0、 1
CONFIG2、0x02、0x93、1、0、 0、1、0、0、1、 1
CONFIG3、0x03、0x09、0、0、 0、0、1、0、0、 1
LOFF、0x04、0xBE、1、0、 1、1、1、1、1、 0
CH1SET、0x05、0x83、1、0、 0、0、0、0、1、 1
CH2SET、0x06、0x05、0、0、 0、0、0、1、0、 1
CH3SET、0x07、0x8A、1、0、 0、0、1、0、1、 0
CH4SET、0x08、0xCB、1、1、 0、0、1、0、1、 1
CH5SET、0x09、0x8B、1、0、 0、0、1、0、1、 1
CH6SET、0x0A、0xC5、1、1、 0、0、0、1、0、 1
CH7SET、0x0B、0x47、0、1、 0、0、0、1、1、 1
CH8SET、0x0C、0xF2、1、1、 1、1、0、0、1、 0
BIAS_SENSP、0x0D、0x3D、0、0、 1、1、1、0、 1
BIAS_SENSN、0x0E、0x01、0、0、 0、0、0、0、0、 1
LOFF_SENSP、0x0F、0xF0、1、1、 1、1、0、0、0、 0
LOFF_SENSN、0x10、0x1E、0、0、 0、1、1、1、1、 0
LOFF_FLIP、0x11、0xFE、1、1、 1、1、1、1、1、 0
LOFF_STATP、0x12、0xFF、1、1、 1、1、1、1、1、 1
LOFF_STATN、0x13、0xf8、1、1、 1、1、1、0、0、 0
GPIO、0x14、0x0E、0、0、 0、0、1、1、1、 0
MIPSC1、0x15、0x4F、0、1、 0、0、1、1、1、 1
MIPSC2、0x16、0xBE、1、0、 1、1、1、1、1、 0
CONFIG4、0x17、0x1E、0、0、 0、1、1、1、1、 0
ID、0x00、0x0C、0、0、 0、0、1、1、0、 0
CONFIG1、0x01、0x3F、0、0、 1、1、1、1、1、 1
CONFIG2、0x02、0x46、0、1、 0、0、0、1、1、 0
CONFIG3、0x03、0x2A、0、0、 1、0、1、0、1、 0
LOFF、0x04、0x93、1、0、 0、1、0、0、1、 1
CH1SET、0x05、0x60、0、1、 1、0、0、0、0、 0
CH2SET、0x06、0x14、0、0、 0、1、0、1、0、 0
CH3SET、0x07、0x37、0、0、 1、1、0、1、1、 1
CH4SET、0x08、0x0A、0、0、 0、0、1、0、1、 0
CH5SET、0x09、0x36、0、0、 1、1、0、1、1、 0
CH6SET、0x0A、0x20、0、0、 1、0、0、0、0、 0
CH7SET、0x0B、0xDF、1、1、 0、1、1、1、1、 1
CH8SET、0x0C、0xFE、1、1、 1、1、1、1、1、 0
BIAS_SENSP、0x0D、0xF4、1、1、 1、1、0、1、0、 0
BIAS_SENSN、0x0E、0x00、0、0、 0、0、0、0、0、 0
LOFF_SENSP、0x0F、0xFC、1、1、 1、1、1、0、 0
LOFF_SENSN、0x10、0x3F、0、0、 1、1、1、1、1、 1
LOFF_FLIP、0x11、0x1E、0、0、 0、1、1、1、1、 0
LOFF_STATP、0x12、0x00、0、0、 0、0、0、0、0、 0
LOFF_STATN、0x13、0x00、0、0、 0、0、0、0、0、 0
GPIO、0x14、0x7E、0、1、 1、1、1、1、1、 0
MIPSC1、0x15、0x1F、0、0、 0、1、1、1、1、 1
MIPSC2、0x16、0x00、0、0、 0、0、0、0、0、 0
CONFIG4、0x17、0x1E、0、0、 0、1、1、1、1、 0
我使用的是 QFP64 TQFP64至 DIP64插座、试验电路板和跳线。
这是 Energia 代码:
#include
ADS1299 ADS;
void setup(){
//对于建议的 POR,不要在初始化例程之前放置任何内容
ADS.initialize(8,9,10,4,false);//(DRDY 引脚、RST 引脚、CS 引脚、以 MHz 为单位的 SCK 频率);
延迟(1000);
Serial.begin(115200);
serial.println ("ADS1299-Arduino UNO 示例1");
延迟(1000);
ads.verbose = true;//当 verbose 为 true 时,将出现串行反馈
ads.reset();//所有寄存器设置为默认值
ADS.SDATAC();//停止连续读取数据模式,以与 ADS 通信
ADS.RREGS (0x00、0x17);//读取 ADS 寄存器、从0x00开始、到0x17结束
ADS.WREG (CONFIG3、0xE0);//启用内部基准缓冲器
ads.RREG (CONFIG3);//验证写入
ADS.WREG (CONFIG1、0x96);
ADS.WREG (CONFIG2、0xC0);
ads.start();
ads.RDATAC();//进入连续读取数据模式
}//设置结束
void loop(){
延迟(3000);
ADS.RREGS (0x00、0x17);
serial.println("");
}//循环结束
_________
额外信息:
我尝试更换电源、但遇到了类似的问题。 在 ADS 初始化期间、但在 Serial.begin 行之前、也会出现这种情况、这让人感到非常困惑。 是我烧坏了芯片、还是只是 SPI 问题?
感谢您的帮助!
谢谢!

