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.

[参考译文] ADS1292R:ADS1292 SPI 通信已选择,#39;t 工作。

Guru**** 2563760 points
Other Parts Discussed in Thread: ADS1292R

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/724671/ads1292r-ads1292-spi-communication-dosen-t-work-at-all

器件型号:ADS1292R

大家好、我是一名韩国初学者、所以请注意、我不太喜欢使用 Eng

我正在使用 ADS1292R 开发面向 Arduino 的 ECG 套件、支持4个工作区。 但我现在有问题。

问题是、即使是 SDATAC、SPI 通信剂量也根本不起作用。 我不知道硬件或软件的原因…

我已经对硬件进行了两次检查、但没有短路。

以下是我发现 SPI 通信不起作用的方式:

test1.[>>>发出复位噪声>将 START 引脚切换为高电平>检查 DRDY 是否持续变为高电平-低电平(使用示波器)>将 START 引脚切换为低电平>发出 SDATAC 以停止连续读取数据模式>  再次将 START 引脚切换为高电平>检查 DRDY 是否始终保持低  电平 DRDY  仍将持续变为高电平-低电平   (我猜到、如果 SDATAC 命令停止连续读取数据模式、DRDY 会保持低电平)]

是否有人遇到过相同的问题? 您有任何故障排除建议吗?

您能在我使用的以下代码、SPI 配置或原理图上找到导致此问题的原因吗?

//~~~~~~~~~~~~~~~ //

#include

//~~跳过寄存器和命令定义~~//


void send_Command (int cmd){


digitalWrite (PIN_CS、低电平);
delayMicroseconds (1);
spi.transfer (cmd);
delayMicroseconds (6);
digitalWrite (PIN_CS、HIGH);
delayMicroseconds (5);


void init_Pins(){

引脚模式(SCLK、输出);//pin13
PinMode (DIN、输出);//MOSIpin11
引脚模式(DOUT、输入);//MISOpin12
引脚模式(PIN_CS、输出);//pin10
引脚模式(PIN_RESET、输出);//pin7
引脚模式(PIN_START、输出);//PIN8
引脚模式(PIN_DRDY、输入);//pin9

digitalWrite (PIN_CS、HIGH);
digitalWrite (PIN_START、LOW);
延迟(1);


void init_Serial(){

Serial.begin(9600);
serial.flush();
delayMicroseconds (100);

 

void init_spi(){


SPI.begin();
SPI.setDataMode(SPI_MODE1);
SPI.setClockDivider(SPI_CLOCK_DIV16);
SPI.setBitOrder(MSBFIRST);


void init_ads(){


digitalWrite (PIN_RESET、HIGH);
延迟(1000);
digitalWrite (PIN_RESET、LOW);
延迟(1000);
digitalWrite (PIN_RESET、HIGH);
延迟(100);//发出复位脉冲

digitalWrite (PIN_CS、低电平);
延迟(1000);
digitalWrite (PIN_CS、HIGH);
延迟(500);//重置通信

SEND_Command (SDATAC);
digitalWrite (PIN_START、HIGH);


void setup(){


延迟(3000);
init_Pins();
init_Serial();
init_spi();
init_ads();


void loop(){

//~~~~~~~~~~~~~~~ //

所有 ADS1292R 寄存器都是默认值(因为我根本无法通过 SPI 进行通信)

原理图

3V3由 Arduino 3.3V 提供。

1.8k:3.3k 逻辑转换器。

我独自学习、因此我没有任何人可以确认我的设计...

即使我知道 DVDD 和 AVDD 或 DGND 和 AGND 必须在订购 PCB 后分离...

黄色:DIN (0x0A:SDATAC)

蓝色:SCLK

事务期间 CS (低电平)

DRDY

请帮帮我。。

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Seonjo、

    感谢您的发帖、欢迎加入论坛!

    感谢您提供深入的信息!

    您是否参考了图63。 在数据表中:设置器件以进行基本数据采集?

    确认您尝试在 Arduino 上通信的引脚与代码中写入的引脚相对应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。 我解决了:)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很高兴听到!  

    如果您有任何其他问题、请告知我们!