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.
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.