工具/软件:TI C/C++编译器
您好!
我有一段时间在使用 ads1299板;我尝试建立 SPI 通信、我浏览了数据表、但我有点困惑、无法 获得正确的输出。 请帮助我按照正确的命令顺序从 电路板读取连续数据。
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.
您好!
感谢你的答复。
我为 mbed 编译器编写了以下代码、这很容易理解。
_________________________________________________________
#include "mbed.h"
#define F 1000000 // 1MHz
SPI SPI (PA_7、PA_6、PA_5);// MOSI、MISO、 SCLK
DigitalOut Cs(D4);
int main(){
long int data_in;
//为8位数据设置 SPI,CPOL =0,CPHA =1 (模式1),时钟速率为1MHz
SPI.format (8、1);
spi.frequency(F);// SCLK_F = 1MHz
CS = 1;
Wait_us (10);
CS = 0;
SPI.WRITE (0x06);//复位
CS = 1;
Wait_us (10);
while (1)
{
CS = 0;
SPI.WRITE (0x11);//发送 SDATAC
SPI.WRITE (0x25);//选择通道1
SPI.WRITE (0x00);
DATA_IN = SPI.WRITE (0x00);
printf ("data in =%d\n"、data_in);
SPI.WRITE (0x10);//发送 RDATAC
CS = 1;
Wait_us (10);
}
}
_________________________________________________________
因为输出我只会得到零。
我 是否需要初始化任何其他信号、例如 DRDY 和 START?
通信流是否正确?
我在不使用 ADS 软件的情况下通过 MMB0板为 ADS 板供电。
我是否必须通过其他方式为其供电?
我在下面发布了一张图片、以显示硬件设置。
大家好、 我正在尝试通过 SPI 连接 ADS1299eeg、但我遇到了很多问题。 实际上、我已将菜单更改为读取各种内部寄存器、但问题出现了
当我尝试在转换后读取模拟输入的数字值时。 具体而言、就 DRDY 信号而言、我无法获得正确的行为:输出不符合预期、
因此、看起来数据从未准备就绪、并且开始后的读取值始终相同。 我正在按照数据表10.1.2章节中所述的流程进行操作、但我想知道我是否必须遵循不同的步骤、因为我要通过 MMO 主板为 ADS 板供电。
实际上、在我为其加电时、我验证了 PWDN、RESET 和 START 引脚已如流程所示为"高电平"。 您能否总结一下我需要发送的正确过程和命令、以便获得正确的 DRDY 行为和一般数据? 如果我想以不同的方式为 ADS 板供电、那么进行互连的最佳方法是什么?
您好、Nikitha、
有关正确 DRDY 行为的正确过程和命令的摘要、请参阅 图67。 数据表中的加电时的初始流程。
要在没有 MMB0的情况下为电路板供电、请参阅此主题: https://e2e.ti.com/support/data-converters/f/73/p/105352/379169#379169
您的 SCLK 上有一个高过冲/下冲。 检查以确保这种过冲/下冲符合数字通信数据表的指导原则。 如果过冲/下冲超出规格、则器件可能无法正确读取脉冲。
此外、检查以确保监控 DRDY 的引脚未被 MCU 保留/保持在恒定高电平状态。