主题中讨论的其他器件:ADS1299
工具与软件:
您好!
我正在尝试将 ADS1299EEG FE 与 Arduino 连接。
我是否需要打开 MMB0来为 ADS 板 供电、或者我是否可以简单地使用 Arduino 为子板供电以及进行 SPI 通信?
在后者的情况下、我只需将跳线电缆从 Arduino 5V 连接至 ADS1299EEG FE 子板上的 AVDD (JP2)吗?
是否有可用于进行这些连接的文档?
…………
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.
工具与软件:
您好!
我正在尝试将 ADS1299EEG FE 与 Arduino 连接。
我是否需要打开 MMB0来为 ADS 板 供电、或者我是否可以简单地使用 Arduino 为子板供电以及进行 SPI 通信?
在后者的情况下、我只需将跳线电缆从 Arduino 5V 连接至 ADS1299EEG FE 子板上的 AVDD (JP2)吗?
是否有可用于进行这些连接的文档?
…………
您好、Ryan、
我无法使用 Arduino 读取/写入任何寄存器。 它全部为零。
我还尝试了使用 MMB0板、但无法继续。 我一直在关注 这个链接,但似乎仍然有一个错误。
这是我的设备管理器的屏幕截图:
这是寄存器值的屏幕截图:
这是我的硬件:
是否有任何用于实现 EVM GUI 平稳运行的更新说明?
目前、我刚刚安装 ADS1299EEGFE-PDK-SW。 我需要全部安装3个还是仅安装3个?
尊敬的 Meghna:
您无需下载两个软件源代码中的任何一个即可运行 EVM。
同时使用 MMB0 + EVM 时、请根据用户指南的第2.5节、首先以默认设置配置所有跳线。 看起来 JP18缺少跳线、这将启用板载振荡器(ADS1299 CLK 引脚的外部时钟输入)。
MMB0 7段显示屏上的"e"表示 GUI 无法初始化 EVM。 这可能是由于 JP18上缺少跳线。 我还建议通过以下程序确保零噪声启动:
此致、
Ryan
您好、Ryan!
我 根据第2.5节使用了默认设置、通过 J18的电流跳线设置(如上图所示、即 JP18中的引脚2-3短接)、我可以获取 EVM 上寄存器的默认值。
但是、当我尝试通过 Arduino UNO 的 SPI 读取寄存器时、我得到的是 FF。 我浏览过各种 TI 论坛帖子、但未能为我找到解决方案。 这是我正在使用的 Arduino 库: https://github.com/conorrussomanno/ADS1299/tree/master。
可以帮助我调试吗?
我的连接有:
Arduino 引脚 | ADS1299 EVM 引脚 |
13. | SCLK (J3.3) |
12. | DOUT (J3.13) |
11. | DIN (J3.11) |
10. | CS (J3.7) |
9. | DRDY (J3.15) |
GND | GND (J3.4) |
ADS 库的源代码为: github.com/.../ADS1299.cpp
这是我使用的代码:
#include
//SPI 命令定义(第35页)
const byte WAKEUP = 0b00000010;//从待机模式唤醒
CONST 字节 STANDBY = 0b00000100;//进入待机模式
CONST 字节 RESET = 0b00000110;//复位器件
CONST 字节 START = 0b00001000;//开始和重新启动(同步)转换
const byte stop = 0b00001010;//停止转换
CONST 字节 RDATAC = 0b00010000;//启用读取数据连续模式(上电时的默认模式)
CONST 字节 SDATAC = 0b00010001;//停止连续读取数据模式
常量字节 RDATA = 0b00010010;//通过命令读取数据;支持多次读回
//寄存器读取命令
常量字节 RREG = 0b00000000;
常量字节 WRET = 0b00000000;
/// Arduino Uno -引脚分配;
// SCK = 13
// MISO [DOUT]= 12
// MOSI [DIN]= 11
CONST int CS = 10;//芯片选择引脚
CONST int DRDY = 9;//data READY 引脚
const float tCLK = 0.000666;
布尔 deviceIDReturned = false;
void setup(){
Serial.begin(9600);
//启动 SPI 库:
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV16);将16MHz 时钟除以16以将 CLK 速度设置为1MHz
SPI.setDataMode(SPI_MODE1);//时钟极性= 0;时钟相位= 1 (第8页)
SPI.setBitOrder(MSBFIRST);//data 格式为 MSB (第25页)
//初始化数据就绪和芯片选择引脚:
pinMode (DRDY、输入);
引脚模式(CS、输出);
delay (10);// delay 以确保连接
digitalWrite (CS、LOW);//低电平以便通信
spi.transfer (reset);
digitalWrite (CS、HIGH);//低电平以便通信
//设置 ADS1299以进行通信
// digitalWrite (CS、LOW);//低电平以便通信
//// spi.transfer (start);
// digitalWrite (CS、HIGH);//低电平以便通信
delay (10);// delay 以确保连接
}
void loop(){
//Serial.println ("时间:"+ millis());
if (deviceIDReturned == false){
getDeviceID();
设备 ID 返回= true;
}
}
void getDeviceID(){
// spi.transfer (start);
digitalWrite (CS、LOW);//低电平以便通信
SPI.transfer (SDATAC);
SPI.transfer (0x20);//RREG
spi.transfer (0x00);//请求1个字节(希望是0b???11110)
字节 temp = spi.transfer (0x00);
digitalWrite (CS、HIGH);//低电平以便通信
serial.println (temp、bin);
}
尊敬的 Meghna:
对于错字我很抱歉-我实际指的是 JP19。 该跳线将振荡器使能引脚连接到 DVDD 电源。 由于 CLKSEL 通过 JP23连接至低电平、因此 ADS1299将需要来自该振荡器的外部时钟输入。 振荡器的使能引脚看起来可以保持开路、而输出仍然有效、因此无需担心。
您是否可以尝试使用两个单独的帧将 SDATAC 命令与 RREG 命令分开? 此外、发送 RREG 命令时、请检查您的 SCLK 频率并确保其满足 tSDECODE 时序要求。 如果发送一个字节的时间小于4*tCLK、则可能需要在两个字节之间插入一个较小的延迟、以便正确解码 RREG 命令。
此致、
Ryan
明白、谢谢。 我可以在连接 JP19的情况下读取 GUI 上的寄存器。
您能帮助我说明一下 GUI 上的确切连接和寄存器设置、以便在分析仪上查看8通道单端输入 EEG 吗?
我已经浏览了用户指南的第7节、但我有点困惑:
1.我想使用 BIAS_DRV 作为偏置电极(即我不想使用外部电极作为偏置电极)。
a)这种情况下的跳线配置和寄存器配置是什么? 是否与第4.6.2节中提到的相同?
b)对于寄存器配置、除了用户指南第35页上的说明外、我还需要执行其他操作吗?
2.我是要使用一个连接 为 Ref 电极的外部电极。
a)对于 EEG 测量、建议使用缓冲还是非缓冲? 为此、我需要哪些跳线和寄存器配置?
b) 我可以将连接到通道1 (J6.36)的电极用作参考电极吗? 我是否需要修改 CH1SET 寄存器的 SRB2位? 或者我是否需要将 Ref 电极连接至 JP25?
在使用带有 MMB0主板的 ADS1299FE PDK 进行 EEG 数据收集的连接和寄存器设置方面、我还需要记住什么其他内容吗?
尊敬的 Meghna:
很高兴我们解决了 GUI 上的寄存器读取问题。
有关偏置和 REF 电极的建议连接、请参阅用户指南的第7.1节。 总而言之、BIAS_DRV 信号是 ADS1299偏置放大器的输出。 此信号承载着用于偏置人体的直流1/2 Vs 电压(相对于 ADS1299的 AVDD/AVSS 电源)。 它还可以配置为传输交流共模信号、帮助抑制耦合到人体/电极上的噪声(即50/60Hz 电力线噪声)。
如果您希望参考电极对所有通道通用、则可以使用 ADS1299的 SRB1引脚、该引脚在内部路由到所有 INxN 输入。 在 EVM 上、将参考电极连接到 JP25.6并短接 JP8[1-2]。 JP7可以保持开路或处于[2-3]位置。
除了 EVM 用户指南之外、ADS1299器件数据表中还提供了有关这些功能的详细章节。 请参阅第9.2.3.4节和"应用"部分(10.2)。
此致、
Ryan
您好、Ryan、
我对以下回复、您的回复和用户指南感到困惑:
你提到了--"如果你想让参考电极对所有通道都是共用的、你可以使用 ADS1299的 SRB1引脚、它在内部路由到所有 INxN 输入。 在 EVM 上、将参考电极连接到 JP25.6并短接 JP8[1-2]。 JP7可以保持开路或处于[2-3]位置。"
但在另一篇文章中,我看到了这一点:
在用户指南上、它要求我短接5-6个 JP25。
请澄清。 我对 BIAS_ELEC 和 REF_ELEC 电极位置、跳线设置和寄存器配置感到非常困惑。 请提供帮助。
您好、Meghna、
由于您只尝试测量单通道 ECG、我不明白您为什么需要参考电极。 在 EEG 应用中、通常会将来自一组电极的电压与通用基准检测到的电压进行比较。 在 ECG 中、我们通常对差分测量感兴趣、测量方法是将一个电极放在心脏两侧(即导联 I = LA - RA)。 需要第三个电极(偏置或 RLD)在人体上建立共模电压-否则人体上的电压不参考测量它们的电子器件。
在您的设置中、我建议忽略参考电极和 SRBx 连接。 只需将 LA 连接到任何 INxP 引脚、并将 RA 连接到相应的 INxN 引脚。 您可以将输入电极直接连接到 J6的右侧(例如、引脚34和36连接到通道1)。
对于偏置电极、配置 JP1[1-2]、移除 JP6上的跳线、并将电极连接到 JP25引脚2或4 (无需跳线)。 您可以在 器件数据表的第9.3.2.4.5节(第33页)中阅读有关如何配置 ADS1299偏置放大器的信息。
为了简化设置、我建议将增益降低到6V/V、将数据速率降低到500SPS。 禁用导联脱落电流源和您目前可能不需要的任何其他诊断功能。
此致、
Ryan
非常感谢。 我现在能够获取单个 ECG 信号。
不过、由于我的最终应用是针对 EEG、您可以为我提供正确的寄存器、 跳线配置以及基准电极和偏置电极的连接吗?
更具体地说:
1.我有一个连接到 JP25.2的外部偏置电极。 我已拔下 JP6[1-2]、JP25[1-2]和 JP25[3-4]上的跳线。 是这样吗?
2. 我想使用 连接到 JP25.6的电极作为 REF 电极。 为确保这是所有单端输入的通用基准、我在 MISC1中启用了 SRB1。 JP8[1-2]短接;JP7 [2-3] 短接。 是这样吗?
3. GUI 中下列寄存器的设置应该是什么:CONFIG3,导联脱落检测和电流控制寄存器,偏置控制寄存器。
请在您方便的时候尽快帮我解决上述问题!