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.

ADS7054: Some questions about the ADS7054 chip.

Part Number: ADS7054

Tool/software:

Hey team,

I am a beginner in embedded systems, and I am currently working with STM32 chips to communicate with the ADS7054. However, there are some aspects of the ADS7054 chip that I don't fully understand. I have a few questions that I would like to ask:

1.How should the phrase 'provide SCLKs in the serial transfer frame' mentioned in the datasheet be understood?Is it just a simple delay process?

My understanding is that the SPI communication of the STM32 chip sends some dummy data to the ADS7054 to provide the changes in high and low levels.

Taking the CNV State as an example:

void SendSCLK18Cycles(void)
{
    uint8_t dummyData = 0x00;

    for (int i = 0; i < 18; i++) 
    {
        HAL_SPI_Transmit(&hspi1, &dummyData, 1, 100);
    }
}

2.Will the SDO return a total of 18 bytes of data for the CNV State?

3.For the OFFCAL State, does it need to be calibrated before each data acquisition, or is it sufficient to calibrate only once when powered up?

4.How should I process the data received via SPI? Should I directly use the formula mentioned in section 8.3.4 for the calculation?

I hope to receive an answer from the relevant person(s).

Thanks!

Zhixin Ni

  • Hi Zhixin,

    1. Your understanding is correct. For offset calibration on power-on to occur, there must be 24 SCLK cycles provided to the device in the first frame, while ~CS is low. Since this device doesn't have an SDI (MOSI) pin, the SCLK and ~CS pins are considered the only digital inputs to the device. Therefore, you shouldn't worry about what you are writing into the device, only how you are reading data back from the device.

    2. Yes, there will be 18 bits of data that your controller will read back from the device, but the first bit and last three bits should be ignored since they don't contain any conversion data.

    3. This depends on your use case. If you expect your device to operate in only one temperature range, it is sufficient usually to calibrate it only on power on. If you expect your temperature to change, causing your offset error to drift, you should calibrate every so often. This isn't a specific time interval though, and it will depend on your own observations and environment.

    4. Yes, you need to extract the ADC conversion data from D13-D0, and you can then convert that to a voltage per the transfer function you noted.

    Regards,
    Joel

  • Thank you very much, I will use your explanation to work with the ADS7054 chip.

  • Great! If that resolved your question, can you click on the "Resolved" button on the solution to close out this thread? Thanks!

    Regards,
    Joel