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.

[参考译文] ADS1299-4:ads1299问题

Guru**** 2551640 points
Other Parts Discussed in Thread: ADS1299

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/923377/ads1299-4-ads1299-problem

器件型号:ADS1299-4
主题中讨论的其他器件:ADS1299

我想使用 Arduino SPI 来使用 ads1299。
但是、存在一些问题。  

我将名为'lolin D32 pro'的专用 SPI 产品与 adds1299评估板连接、并使用 python 打印出图形。

当没有任何电极连接时、电极保持在7FFFFFh 的值、并定期确认发生了以下现象:(下图)

我不认为这是 lolin 板的问题、但我想知道这是协议不符合要求还是有解决方案。
我还附上我使用的 Arduino 代码。

我只使用了评估板的 J3。
我还将介绍引脚连接的特点。
J3的[clksel、start、GND]连接到 lolin 板的 GND

谢谢你。





#include


int cs=5;
int DRDY = 21;
INT START = 8;
INT TEST = 15;

uint8_t CONFIG0 = 0x0、CONFIG1 = 0x1、CONFIG2 = 0x2、FSC0 = 0x6、FSC1 = 0x7、 FSC2 = 0x8、READ_MODE = 0x12;
uint8_t write_data = 0x40、read_data = 0x20;
int buf = 0;
INT START = 0b00001000、RDATAC = 0b00010000、STOP = 0b00001010、SDATAC = 0b00010001;

void setup(){
 Serial.begin(57600);
 SPI.begin();
 SPI.setBitOrder(MSBFIRST);
 SPI.setClockDivider(SPI_CLOCK_DIV16);
 SPI.setDataMode(SPI_MODE1);
 引脚模式(Cs、输出);
 引脚模式(DRDY、输出);
 引脚模式(启动、输出);
//pinMode (clksel、输出);
//--------------
//digitalWrite (clksel、HIGH);
 digitalWrite (cs、low);
 digitalWrite (开始、高电平);
 digitalWrite (DRDY、HIGH);
 延迟(15);
 digitalWrite (DRDY、LOW);
 延迟(15);
 digitalWrite (start、low);
 延迟(15);
 digitalWrite (start、low);
 延迟(15);
//digitalWrite (clksel、low)
 digitalWrite (DRDY、HIGH);
 延迟(4);
 digitalWrite (cs、HIGH);


void loop(){
 unsigned int 值[9];
 digitalWrite (DRDY、HIGH);
 digitalWrite (cs、low);
 spi.transfer (start);
 digitalWrite (cs、HIGH);

 digitalWrite (cs、low);
 SPI.transfer (RDATAC);
 digitalWrite (cs、HIGH);

 digitalWrite (test、high);
 digitalWrite (test、low);

 延迟(16);
 对于(int i=0;i<10000000;i++){
  digitalWrite (DRDY、LOW);
  for (int j=0;j<9;j++){
   值[j]= 0;

  }

  digitalWrite (DRDY、HIGH);
  延迟(20);
  for (int j=0;j<9;j++){
   digitalWrite (cs、low);
   Value[j]+= SPI.transfer (0x00)<<16;
   Value[j]+= SPI.transfer (0x00)<<8;
   Value[j]+= SPI.transfer (0x00)&0b11111000;
   digitalWrite (cs、HIGH);
   }
  延迟(6);
  for (int j=0;j<2;j++){
   serial.print (value[j]);
   serial.print (");
  }
  serial.println();
 }
 spi.transfer (stop);
 SPI.transfer (SDATAC);
 digitalWrite (cs、HIGH);
 digitalWrite (DRDY、LOW);