器件型号:ADS8698EVM-PDK
您好!
我在通过 SPI 与 Arduino Uno 进行 ADS8698EVM-PDK 通信时遇到问题。
我建立的数字接口上的连接如下:
-菊花链、通过 J2接地;
- REFSEL,接地槽 J4;
- RST/PD、我没有从任何地方"获得"此信号;
- AVDD、I 提供5V、通过 J32的引脚2;
- DVDD、I 通过 J33的引脚2提供5V 电压;
- A0+、我将其连接到3.3V 信号。
AVDD、DVDD 和 REFIO 上的电压正确。 我使用的代码如下:
#include "spi.h"
//ADS8698引脚
const int cs = 10;
//mosi = 11 (SDI)
//MISO = 12 (SDO)
//SCK = 13 (SCLK)
const int _RST = 9;
#include "spi.h"
SPI 设置 ADS8698 (80000、MSBFIRST、SPI_MODE1);
void setup(){
引脚模式(Cs、输出);
PinMode (_RST、输出);
digitalWrite (_RST、HIGH);
延迟(10);
Serial.begin(9600);
serial.println ("测试");
延迟(1000);
SPI.beginTransaction(ADS8698);
SPI.begin();
//ADS8698从启用所有通道开始。
//ADS8698以 PGA 设置为+/- 2.5*Vref 开头。 (LSB = 78、125uV)
digitalWrite (cs、HIGH);
digitalWrite (cs、HIGH);
digitalWrite (cs、low);
SPI.transfer16 (0x8500);//重置
digitalWrite (cs、HIGH);
digitalWrite (cs、HIGH);
digitalWrite (cs、low);
SPI.transfer16 (0xA000);//自动模式
digitalWrite (cs、HIGH);
}
void loop(){
对于(字节 I = 0;I < 4;+I){
延迟(10);
digitalWrite (cs、low);
SPI.transfer (0x00);
SPI.transfer (0x00);
字节 MSB = SPI.transfer (0x00);
字节中位= SPI.transfer (0x00);
字节 LSB = SPI.transfer (0x00);
uint32_t 结果=(MSB << 16)|(中位<< 8)|LSB;
结果=结果>> 6;
digitalWrite (cs、HIGH);
serial.print ("ch");
serial.print(i);
serial.print (":");
//Serial.println (结果);
serial.print (MSB、十六进制);
serial.print ("、");
serial.print (中位、十六进制);
serial.print ("、");
serial.print (LSB、十六进制);
serial.print (":");
serial.println (结果);
延迟(5000);
}
}