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.
大家好!
我目前正在研究 BCI 应用、该应用使用 ADS1299EEGFE-PDK 来获取 EEG 信号。 在当前设置中、我使用 Arduino UNO 通过 SPI 与子卡连接、而 MMB0仅用作电源。
GPIO 引脚按如下方式连接(子卡上的跳线保留默认设置)
------------------------------------------
Arduino UNO <--> ADS1299
------------------------------------------
我使用的 sketch 是 Arduino 库 ADS1299中的一个示例、应读取和写入一些寄存器:
#include ADS1299 ADS; //Arduino Uno -引脚分配;需要将 ICSP 用于更高的 AVR 板 // SCK = 13 // MISO [DOUT]= 12 // MOSI [DIN]= 11 // CS = 10; // DRDY = 9; // 0x###-> Arduino 十六进制格式 // 0b##-> Arduino 二进制格式 布尔值 IDReturned = false; 布尔 staredLogging = false; void setup(){ Serial.begin(115200); Serial.printn();Serial.tln ("ADS1299-bridge has started!"); ADS.setup(9、10);//(DRDY 引脚、CS 引脚); 延迟(10); //延迟以确保连接 ads.reset(); } void loop(){ if (deviceIDReturned = false){ ads.getDeviceID();//Funciton 返回器件 ID //打印虚线以分隔串行打印段 serial.println ("------------------------------------------------ "); //读取地址0x00处的 ADS1299寄存器(有关 SPI 命令的更多信息、请参阅数据表第35页) ADS.RREG (0x00); serial.println ("------------------------------------------------ "); //打印所有寄存器... 从地址0x00开始读取0x17地址(这些数字可被二进制或整数值替换) ADS.RREG (0x00、0x17); serial.println ("------------------------------------------------ "); //写入寄存器命令(有关 WREG 的更多信息、请参阅数据表第38页) ads.WREG (CONFIG1、0b11010110); serial.println ("------------------------------------------------ "); //重复打印所有寄存器以验证 WREG 是否更改了 CONFIG1寄存器 ADS.RREG (0x00、0x17); serial.println ("------------------------------------------------ "); //开始数据转换命令 ads.start();//必须在连续读取数据之前启动 deviceIDReturned = true; } //仅在 while (millis ()<10000){的第一个10秒内将数据打印到串行控制台 if (startedLogging =false){ serial.print ("Millis:");//这是为了查看数据开始打印的时间以检查计时精度(默认采样率为250样本/秒) serial.println (毫秒()); startedLogging = true; } //将连续读取数据(RDATAC)打印到 Ardiono 串行监视器... //此方法的时间还不是很完美。 一些数据正在丢失 //我认为这是因为串行监视器花费了太多时间打印数据,并且没有准备好接收数据包 ads.updateData(); }
它在串行监视器中返回以下输出:
ADS1299桥接器已启动!
0
------------------------
ID、0x00、0x00、0、0、 0、0、0、0、0、 0
------------------------
ID、0x00、0x00、0、0、 0、0、0、0、0、 0
CONFIG1、0x01、0x00、0、0、 0、0、0、0、0、 0
CONFIG2、0x02、0x00、0、0、 0、0、0、0、0、 0
CONFIG3、0x03、0x00、0、0、 0、0、0、0、0、 0
LOFF、0x04、0x00、0、0、 0、0、0、0、0、 0
CH1SET、0x05、0x00、0、0、 0、0、0、0、0、 0
CH2SET、0x06、0x00、0、0、 0、0、0、0、0、 0
CH3SET、0x07、0x00、0、0、 0、0、0、0、0、 0
CH4SET、0x08、0x00、0、0、 0、0、0、0、0、 0
CH5SET、0x09、0x00、0、0、 0、0、0、0、0、 0
CH6SET、0x0A、0x00、0、0、 0、0、0、0、0、 0
CH7SET、0x0B、0x00、0、0、 0、0、0、0、0、 0
CH8SET、0x0C、0x00、0、0、 0、0、0、0、0、 0
BIAS_SENSP、0x0D、0x00、0、0、 0、0、0、0、0、 0
BIAS_SENSN、0x0E、0x00、0、0、 0、0、0、0、0、 0
LOFF_SENSP、0x0F、0x00、0、0、 0、0、0、0、0、 0
LOFF_SENSN、0x10、0x00、0、0、 0、0、0、0、0、 0
LOFF_FLIP、0x11、0x00、0、0、 0、0、0、0、0、 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、0x00、0、0、 0、0、0、0、0、 0
MIPSC1、0x15、0x00、0、0、 0、0、0、0、0、 0
MIPSC2、0x16、0x00、0、0、 0、0、0、0、0、 0
CONFIG4、0x17、0x00、0、0、 0、0、0、0、0、 0
------------------------
修改了寄存器0x1。
------------------------
ID、0x00、0x00、0、0、 0、0、0、0、0、 0
CONFIG1、0x01、0x00、0、0、 0、0、0、0、0、 0
CONFIG2、0x02、0x00、0、0、 0、0、0、0、0、 0
CONFIG3、0x03、0x00、0、0、 0、0、0、0、0、 0
LOFF、0x04、0x00、0、0、 0、0、0、0、0、 0
CH1SET、0x05、0x00、0、0、 0、0、0、0、0、 0
CH2SET、0x06、0x00、0、0、 0、0、0、0、0、 0
CH3SET、0x07、0x00、0、0、 0、0、0、0、0、 0
CH4SET、0x08、0x00、0、0、 0、0、0、0、0、 0
CH5SET、0x09、0x00、0、0、 0、0、0、0、0、 0
CH6SET、0x0A、0x00、0、0、 0、0、0、0、0、 0
CH7SET、0x0B、0x00、0、0、 0、0、0、0、0、 0
CH8SET、0x0C、0x00、0、0、 0、0、0、0、0、 0
BIAS_SENSP、0x0D、0x00、0、0、 0、0、0、0、0、 0
BIAS_SENSN、0x0E、0x00、0、0、 0、0、0、0、0、 0
LOFF_SENSP、0x0F、0x00、0、0、 0、0、0、0、0、 0
LOFF_SENSN、0x10、0x00、0、0、 0、0、0、0、0、 0
LOFF_FLIP、0x11、0x00、0、0、 0、0、0、0、0、 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、0x00、0、0、 0、0、0、0、0、 0
MIPSC1、0x15、0x00、0、0、 0、0、0、0、0、 0
MIPSC2、0x16、0x00、0、0、 0、0、0、0、0、 0
CONFIG4、0x17、0x00、0、0、 0、0、0、0、0、 0
------------------------
毫秒:224
遗憾的是、通过 SPI 检索到的数据在所有寄存器中都是零、在完成我在本主题中可以找到的所有线程后、似乎没有任何帮助。 目前、我无法访问逻辑分析仪或探测设备、我只是希望错误是由我进行的硬件连接中的新错误引起的。
如果您能给我任何建议、我将不胜感激!
L.G.
更新:
我认为这个问题可能与 SPI 通信有关、但是在我安装 Windows 7来运行 ADS1299EEG-FE 评估软件(用于电路板)之后、软件返回的寄存器映射(经过一段时间后)再次填充为零。
此时、我发现自己有一个很大的问题、因为我的整个论文工作都依赖于此套件的使用...
您好 Lorenzo、
当您使用 ADS1299EEG-FE EVM 时、能否查看以下几项?
如果您能够获取 ADS1299EEG-FE 评估 EVM 以与评估软件配合使用、请告诉我。
我们将无法帮助您使用 Arduino UNO 硬件或软件。 您可以在下面找到一些有关将 ADS1299连接到 Arduino 硬件的相关文章。 当您将 ADS1299连接到 Arduino 硬件时、请参阅数据表的图67、了解加电时的初始流程。
https://e2e.ti.com/support/data-converters/f/73/t/787501
ADS129x BIOFAQ 中的分步调试方法 有助于器件处于正确的运行条件(请参阅下面的直接链接)。
谢谢。
-TC
您好 Lorenzo、
您是否计划在 JP13-17的器件上使用外部 CLK? EVM 图片显示您正在将 JP18设置为 Pos 1-2、这需要 JP3-17的外部 CLK、而不是在 EVM 板上使用振荡器。 有关时钟配置、请参阅用户指南中的 Secio 4.2。 您能否将 JP18切换到位置2-3并查看是否可以读取所有默认寄存器?
谢谢。
-TC
您好 Lorenzo、
很高兴听到您能够让 EVM 正常工作。
谢谢。
-TC