I am currently trying to run only one channel of ads8354. I am communicating through STM NUCLEO Board with adc.
REFERENCE VOLTAGE FOR BOTH CHANNEL IS GIVEN FROM OUTSIDE.
REFIO_A=REFIO_B=5V
REFGND_A=REFGND_B=0V
AVDD=5V
DVDD=3.3V
INPUT VOLTAGE =1.1V
Our code is-
#include "mbed.h"
int data;
SPI spi(D11,D12,D13); // mosi, miso, sclk
DigitalOut cs(PA_4);
uint16_t digital_volth;
uint16_t digital_voltl;
int main() {
// Chip must be deselected
cs = 1;
// Setup the spi for 16 bit data, high steady state clock,
// second edge capture, with a 1MHz clock rate
spi.format(16,0);
spi.frequency(4800000);
while(1)
{spi.lock();
// Select the device by setting chip select low
cs =0 ;
// Send
wait_us(1000);
spi.write(0x8400);
digital_volth = spi.write(0x0000);
digital_voltl= spi.write(0x0000);
printf("digital voltageh = 0x%X\n", digital_volth);
printf("digital voltagel = 0x%X\n", digital_voltl);
wait(1);
// Deselect the device
cs = 1;
wait(3);
spi.unlock();
}
}
Output of this code is coming=
digital voltageh = 0x0
digital voltagel = 0x0
digital voltageh = 0x0
digital voltagel = 0x0
digital voltageh = 0x0
digital voltagel = 0x0
digital voltageh = 0x0
digital voltagel = 0x0
We have once succesfully run the code on ADS8354IRTET. It worked.
But now I used the same code on ADS8354IPWR.,it is not working.
Is this IC very heat sensitive?
Is soldering and desoldering cause a problem?
Why is it not giving the output?