主题中讨论的其他器件: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);
}