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.
工具与软件:
大家好、我尝试通过 SPI 连接 ADS1299EEG 前端。
SPI 没有工作。
我已经完成了这2个线程。
但是、这些仍然对我不起作用。
下面是我的有线连接。
Arduino D13 - ADS1299 SCLK
Arduino D12 - ADS1299 DOUT
Arduino D11 - ADS1299 DIN
Arduino D10 - ADS1299 CS
Arduino D9 - ADS1299 DRDY
Arduino GND - ADS1299 J3-4 (GND)
--------------------------------------------------------
ADS1299上的所有跳线均为默认值、每个 TP 的电压均与数据表中匹配。
我是否丢失了应该在 ADS1299与 Arduino 之间连接的内容?
Tim、您好!
感谢您发帖。 您能否确认 nDRDY 引脚在启动例程完成后是否以默认数据速率切换? 您如何相对于 AVSS 测量 VCAPx 引脚?
此致、
Ryan
Ryan、您好!
感谢您的答复。
我想知道如何测量 nDRDY 的数据速率? (它应该是 fCLK/8192、对吧?)
我在下图中没有看到任何匹配的数字。
还使用了示波器来监测 J3上的 DRDY 引脚。
示波器的采样率似乎太低、无法测量数据速率。
应在 AVSS (JP21)上测量哪个引脚?
AVSS (JP21) 1-2连接了跳线。
I 测得的 VCAP1 (C9)至 AVSS (JP21)。3、
它是-1.31V
此致、
TIM
Tim、您好!
可以在连续下降沿之间测量 nDRDY 周期。 Δ-Σ 调制器的采样频率为 fCLK/2。 假设默认的2.048 MHz 时钟输入、调制器将以1.024 MHz 采样、且默认输出数据速率将为250SPS (OSR = 4096)。 GUI 中的下拉菜单仅显示 OSR 选项(Fmod / FDR = OSR)。 数据表中也列出了这些选项。
如原理图所示、应在 JP20上测量 AVSS。 如果 JP20配置为[1-2]、则将 AVSS 连接到 GND 来进行单极电源操作。 这意味着 JP2 (AVDD)应配置为[2-3]= 5V。
测量 VCAP1时、应测量 JP20[2](我假设 JP21是一个拼写错误)。 JP20[3]是-2.5V LDO 的输出。 如果相对于 JP20[2]测量 VCAP1、您将看到该值为1.19V、这是预期结果。
此致、
Ryan
您好、Ryan、
感谢您的解释。 我通过示波器测量 DRDY 引脚时、结果为250Hz。
抱歉、拼写错误完全是 JP20。
是的、以 AVSS[2]为基准的 VCAP1为1.19V。
此致、
TIM
Tim、您好!
器件似乎已正确上电并进行了初始化。 要更改任何寄存器的默认设置、必须首先发送 SDATAC (11h)命令。 此操作将退出 RDATAC 模式、该模式会自动将转换数据加载到 SPI 输出移位寄存器中。
此致、
Ryan
您好、Ryan、
很高兴听到我的器件可以正常工作。 我将再次检查我的代码。
感谢您的帮助。
BR、
TIM
您好、Ryan、
数据表显示、当使用500SPS 时、SCLK 的最小速率为110kHz (第38页的末尾)。
如何计算其他 SPS 的 SCLK 最小速率?
我想我发现了这个问题。
在上图中、黄色是 SCLK、红色是 DOUT 信号。
DOUT 的输出脉冲是否正常? (大约只有1V)
是否有办法调节 ADS1299以使 DOUT 电压更高?
顺便说一下、我发现有人说过、ADS1299的数字输入限制为4.2V。
我在数据表中按 Ctrl+F 搜索了4.2V、但未找到任何信息。
4.2V 是 ADS1299数字输入的限制、这是否正确?
BR、
TIM
Tim、您好!
最小 SCLK 频率可以通过第39页的公式9计算得出。 基本上、您需要在一个数据速率周期内发送216个时钟脉冲、并针对时序延迟留有一定的裕度。
似乎另一个器件正在加载 DOUT 引脚。 在此事务期间 NCS 是否处于低电平?
数字输入受 DGND 和 DVDD 电源限制。 有关数字输入电压限制、请参阅电气特性部分。
此致、
Ryan
Ryan、您好!
感谢您告诉我方程式在哪里。
是的、我使用 Arduino Uno 来捕获 DOUT 数据、并已检查在事务处理期间 NCS 处于低电平。
输入限制是否会限制 ADS1299的 SPI 通信?
现在、我正在尝试降低发送到 SCLK 或 DIN 的电压。
此致、
TIM
Tim、您好!
数字 I/O 高电平和低电平与 DVDD 相关。 最小和最大 I/O 电平显示在数据表中。 可以允许 SCLK 从0V 切换到 DVDD (无需降低电平)。 但是、我建议使用示波器探测 SCLK 信号、以确认时钟信号上没有过度的过冲/下冲或振铃。
此致、
Ryan
Ryan、您好!
感谢您的建议。 我认为我成功发送了 SPI 信号。
我发送了4条 SPI 命令、SCLK 和 DOUT 显示了正确的字节模式。 但是、当我发送 RREG 命令时、没有从 ADS1299获得响应。
我已经检查过 MOSI 应连接到 DIN、MISO 应连接到 DOUT、nCS 应正常工作。
(黄色是 SCLK、蓝色是 DIN 信号、红色是 DOUT 信号)
我没有提到 ADS1299上有任何引脚配置吗?
此致、
TIM
Tim、您好!
您的主时钟(CLK)和串行时钟(SCLK)频率是多少? 您是否检查了多字节命令的 tSDECODE 时序限制?
[常见问题解答] ADS129x:我的 SCLK 的最低频率是多少? -数据转换器论坛-数据转换器- TI E2E 支持论坛
此致、
Ryan
您好、Ryan、
CLK 的默认频率为2.048M Hz、而 SCLK 设为4MHz。 是的、tSDECODE 应为4 * tCLK (、并且我将3微秒设置为延迟时间。 所以、我认为没关系。
您可以帮助重新检查 ADS1299EEGFE-PDK 上的跳线设置吗?
打印 JPX 时、第一个引脚是从左侧计数还是从侧计数?
另一个问题是、我发现 DOUT 的电压变化不符合我的预期。 我认为如果 ADS1299不接收命令、DOUT 应处于0级。 但是、当我发送命令时、DOUT 的电压会在命令发送到 ADS1299时发生变化。
发送启动命令(蓝色)后、DOUT 信号(红色)的电压具有峰值(1.7V)。 DOUT 的基准也在发出 START 命令后升至0.4V。
(SCLK:黄色; DIN:红色; DOUT:蓝色; CS:绿色)
以下是 RREG 命令的三个字节。
首先、发送带有寄存器地址(0010 0000)的 RREG 命令
其次、发送000n nnnn 来读取寄存器数量。 它是0000 0000、因为我只想读取 ID 寄存器。
第三、发送虚拟字节到接收 ID 寄存器。
RREG 命令期间是否有任何问题? 在最后2张图片中、DOUT 的信号在每发送一位时也高达1.2V。 为什么会发生这种情况?
最后、如果最重要的是正确的话、我仍然无法通过 SPI 从 ADS1299接收任何寄存器。
请给我更多的建议。
此致、
TIM
Tim、您好!
您是否可以再次尝试上传跳线设置的图像? 链路断开。
JPx 跳线的引脚1通常由丝印中的点指定。 此外、您可以查看底部、引脚1具有方形焊盘、而其他引脚具有圆形焊盘。
您在发送 SPI 命令时看到的 DOUT 变化可能是来自其他数字信号(很可能是 SCLK)的噪声耦合。 其中一些误差实际上可能是由示波器探头本身造成的。 您可以尝试缩短接地线、或使用逻辑分析仪获取更清晰的信号。
此致、
Ryan
您好、Ryan、
当然、如果图片不清楚、请告诉我。
感谢您的解释。
根据你的解释,我想我的 JP2 和 JP20 不是默认配置、对吧?
让我再说明一下我的设置。
在使用 SPI 接口之前、我曾尝试过 TI 为 ADS1299EEGFE 构建的软件。 我可以在软件中看到正确的寄存器。
尝试 SPI 时、我将电源连接到 MMB0、并测量了 p.15处的测试点。 所有 TP 均与数据表匹配。
根据数据表、我已连接 SCLK、DIN、DOUT、nCS、GND 连接 Arduino Uno 以进行 SPI 通信。
是否有任何引脚未能使用 SPI?
我也有一些好奇的地方。
MMB0是否会影响 SPI 传输?
如果我要将 ADS1299和 MMB0分开、如何为 ADS1299供电、是否必须更改跳线配置?
如何知道 ADS1299是否成功接收到我的命令?
BR、
TIM
Tim、您好!
图片未上传。
当直接将 EVM 与 Arduino 连接时、我建议您完全移除 MMB0。 无需跳线即可直接为 JP2、JP20和 JP24 (所有的引脚2)供电。 此外、还将 Arduino 电路板 GND 共享至 ADS1299电路板上的 GND 测试点。 对于 SPI 信号、您可能会发现一些信号直接在 J3上可用、而其他信号通过跳线(即 nCS 连接到 JP21)。 确保在直接连接到 ADS1299引脚的点连接信号。
我还会为 nDRDY 添加一个到控制器中断引脚或 GPIO 的连接、以便您可以监视何时有新的转换可供读取。
此致、
Ryan
您好、Ryan、
感谢您提供电源方法。
我想我们不需要再看以前回复中的图片了。 现在、让我们重点了解我们的行进方式。
今天、我尝试直接在 JP2、JP20、JP24上供电、但我无法从与数据表匹配的测试点测量到任何电压。
以下是我的设置。
橙色和红色跳线连接到 JP2和 JP20。 黄色是 JP24的3V 电源。 GND 连接到 TP12 (根据我的理解、板上的所有黑色 TPx 是同一个 GND)。 (这不是实际工作、请在没有电源的情况下忽略3V。 我将使用稳压器或分压器来降低5V 输入和为 JP24供电)。
我有什么错吗?
"对于 SPI 信号、您可能会发现一些信号直接在 J3上可用、而其他信号通过跳线(即 nCS 连接到 JP21)。 确保在直接连接至 ADS1299引脚的位置连接信号。
根据上面的、这意味着如果 J3上的引脚直接连接到 ADS1299、我不能使用这些引脚、对吧?
BR、
TIM
Tim、您好!
如果要将+5V 连接到 AVDD (JP2.2)、则必须将 AVSS 连接到 AGND (JP20[1-2])。 EVM 用户指南的第4.1节对此进行了说明。
您可以使用 J3上的任何引脚来连接外部接口信号。 但是、如果信号通过跳线、则必须确保跳线配置正确。 例如、将 nCS 连接到 J3.1 和 将 JP21配置在[1-2]位置。
此致、
Ryan
您好、Ryan、
感谢您的帮助和耐心。 我已经使它工作了!
我成功收到了 SPI 向 Arduino 注册。
祝您周末愉快!
我想给遇到同样问题的人留言。
(在下面的说明中、我将使用 ADS1299FE 代替 ADS1299EEGFE。)
首先、我使用与 MMB0连接的 ADS1299EEGFE。
通过墙上适配器插孔为 MMB0供电。 (ADS1299FE 用户指南9.4)
请检查4.1表2中的所有测试点。
检查 ADS1299FE 上的跳线配置。
您可以在第2.5表1部分中找到默认设置。
每个跳线的第一个引脚来自以下符号的一侧。
________
| \
最后 | 质量 |第一
|_________ /
如果要将 J3[7]用于 nCS、则必须将 JP21[1-2]更改为 JP21[2-3]。
我错过了此信息、直到找到该主题(https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/318293/no-signal-from-the-dout-pin-in-ads1299-eeg-fe)。
此致、
TIM
Tim、您好!
我很高兴听到现在一切正常工作。 感谢您的反馈!
此致、
Ryan