This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Interfacing ADS7870 with STM32F4

Other Parts Discussed in Thread: ADS7870

Hi,

I'm trying to communicate between the ADS7870 and the ST microcontroller STM32F4 Discovery evaluation board. I'm using IAR and at the moment I'm just trying to read register 31 from the ADC but with no luck.

I'm setting the SPI on the microcontrontroller as follows: data transmitted as MSB first, clock low in idle state, data is captured on rising edge, data size is 8 bits, and full duplex transmission.

In main.c I do:

debug = ads7870Init();
	
	if (debug==1)
		printf("adc is alive \n");
	else
		printf("adc is DEAD \n");

And in ads7870_driver.c I have:

//initialize ADC
uint8_t ads7870Init(void)
{
	//// check ID register
	if(ads7870ReadReg(ADS7870_ID) != ADS7870_ID_VALUE)
		return 0;  
	else
	{
	//// setup reference and buffer
		ads7870WriteReg(ADS7870_REFOSC, ADS7870_REFOSC_OSCE | ADS7870_REFOSC_REFE | ADS7870_REFOSC_BUFE);

	//// return success
		return 1;
	}
        
}

I'm attaching a screenshot of what I see on the scope. (yellow: sclk, blue: read command register 31, purple: output from ADC).

MOSI transmits properly to the ADS7870 (the din pin receives read command), but there is no response coming from the ADC dout pin. 

I would really appreciate any help on this. 

Thank you.