我正在尝试将 Ads1299子板连接到 Arduino UNO。 但 DRDY 绝不会切换、SCK 不 会提供任何脉冲。
连接 方式如下:
通道1 -输入已给出
JP 6 -(1-2)已关闭
JP 7-(1-2)关闭
JP8- -(1-2)闭合
Jp5 -断电连接高电平
Jp21 -(1-2)已关闭
Jp22 -(2-3)已关闭
JP23 -(1-2)已关闭
电源-中偏置(-2.5至2.5) AVDD - avss。
----------------------------------------------------
#include "pins_Arduino.h"
#include "ADS.h"
void setup(){
Serial.begin(9600);
serial.println ("ADS1299-bridge has started!");
ads_setup();
ads_reset ();
ADS_wreg (0x03、0xE0); //CONFIG3 E0h 用于内部基准
ADS_wreg (0x01、0x96); //config1 96h 默认值
ADS_wreg (0x02、0xC0); //CONFIG2 C0h Deafault
ADS_wreg (0x05、0x01); //将通道1设置为输入短路
ads_start();
}
void loop(){
ads_update_data();
}
------------------------
void ads_wreg (字符地址、字符值){
char opcode1 = 0x40 +地址; //001rrrrrr;_rREG = 00100000且_address = rrrrrr
digitalWrite (cs、low); //低至已通信
SPI.transfer (0x11); //SDATAC
spi.transfer (optode1); //RREG
SPI.transfer (0x00);
spi.transfer (value);
SPI.transfer (0x10); //重新打开连续读取数据
digitalWrite (cs、HIGH); //高端通信
}
void ads_update_data(){
if (digitalRead (DRDY)= low){
serial.println ("ADS1299");
digitalWrite (cs、low);
SPI.transfer (0x10);
长输出[9];
长数据包;
for (int i = 0;i<9;i++){
for (int j = 0;j<3;j++){
char dataByte = SPI.transfer (0x00);
dataPacket =(dataPacket << 8)| dataByte;
}
output[i]= dataPacket;
dataPacket = 0;
}
digitalWrite (cs、HIGH);
serial.println (output[1]); //仅打印通道1
}
}
输出:
它始终读取为零