Other Parts Discussed in Thread: ADS1258,
Hi ,
I am trying to read ads1258 using SPI with teensy 4.1 controller.
Below is teensy code
#include <SPI.h>
//#define IO_CHECK
#define SPI1_CHECK
const int spiCsPin = 38;//TO ADC J6.7
const int spiSckPin = 27;//TO ADC J6.3
const int spiMosiPin = 26;//TO ADC J6.11
const int spiMisoPin = 39;// TO ADC J6.13
const int DRDY=4; //ADC J6.15,output to
const int START=5;// TO ADC J3.3
byte stat,data1,data2,data3;
float dataF;
SPISettings spiMemSettings(1000000, MSBFIRST, SPI_MODE0);
void setup() {
Serial.begin(9600);
pinMode(DRDY,INPUT);
pinMode(START,OUTPUT);
pinMode(spiCsPin, OUTPUT); // SPI CS
// put your setup code here, to run once:
#ifdef IO_CHECK
pinMode(spiSckPin, OUTPUT); // SPI_SCK pin
pinMode(spiMosiPin, OUTPUT); // SPI_MOSI pin
#endif
#ifdef SPI1_CHECK
SPI1.begin();
SPI1.setMOSI(spiMosiPin);
SPI1.setMISO(spiMisoPin);
SPI1.setSCK(spiSckPin);
SPI1.setSCK(spiCsPin);
#endif
digitalWrite(spiCsPin,LOW);
digitalWrite(START,LOW);
delay(1000);
digitalWrite(START,HIGH);
delay(1000);
}
void loop (void)
{
if (digitalRead(DRDY)==LOW)
{
delayMicroseconds(30);
stat = SPI1.transfer(0x00);
data1 = SPI1.transfer(0x00);
data2 = SPI1.transfer(0x00);
data3 = SPI1.transfer(0x00);
if (data1>127)
{
dataF=(data1-128)*pow(2,16)+data2*pow(2,8)+data3-pow(2,23);
}
else
{
dataF=data1*pow(2,16)+data2*pow(2,8)+data3;
}
Serial.println(dataF, DEC);
}
}
wave forms on the ads side as follows-:
spiSckPin = 27;//TO ADC J6.3(yellow)
spiMosiPin = 26;//TO ADC J6.11 (green)

The serial output is just zeros even though i input a sqaure pulse of 3.3 v to AIN0 wrt ground
kindly help








