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.

ADS7038Q1EVM-PDK: ADS7038Q1EVM-PDK Manual Mode Help

Part Number: ADS7038Q1EVM-PDK

Can you confirm my understanding of the manual operating mode of this device? 

Init Functions (Do Once)

Reset RST Bit to General Cfg Register to restore Register Defaults 

Set all pins to ADCs 

Write Sequence Cfg Address to Manual Mode

Main Function (Periodic Function )

For Loop 

Write Channel Sel Address for a channel 

Wait 24 Clock Cycles 

Read MSB and LSB of Analog Input Channel 

Convert to Voltage with MSB << 8 | LSB (Assuming uint16) and then (5V / 4095) 

My issue is I am following this logic but getting the same value after sending each req to read MSB and LSB of the analog input register. I am sending two separate 24 bit messages and getting constant values back. 

And then clearing the value with 0s

Anything else I could try or am I missing a message? 

  • Hello Nick,

    When using manual mode, the MSB and LSB registers are not used. this is why you are reading the same value, because it is not being updated.

    To read the measurement results, the channel ID is configured to the channel desired, and then two frames later, sized based on the output desired are provided. 

  • Cynthia, 

    Are you saying I should see the values as soon as I send the next Write Channel Sel Address for a channel? 

    Send CHannel 0 Req See Below 

    Send Channel 1 Req and the returned bytes in Channel1 are ADC results of Channel 0?

    Nick

  • Would I be able to read the registers in Auto-Sequence mode?

    Init

    Assuming I set All registers to 0xff in AUTO_SEQ_CH_SEL 

    Set Seq Mode to Auto_SEQ

    Periodic 

    Set Seq Start Bit in Seq_Cfg Register 

    Read All Channels Registers 

    Stop Seq Seq_Start Bit 

  • It will take TWO frames after the initial channel select frame where the data should be available, Thus in the example you gave, it would be one more frame where the data for CH0 would be available. 

    I don't fully understand your question.  In auto sequence mode, the ADC measurement results are not stored in a register, they are pushed out on SDO as frames are provided. 

    If you are asking if you can read any register content while Auto sequence is on going, i believe you should be able to.

    Regards

    Cyntha

  • Cynthia, 

    I am just looking to read the ADC values periodically through the registers. It looks like the auto sequencing mode is better suited for this. 

    Could you confirm my logic below as it is still not working? 

    Periodic 

    Set Seq Start Bit in Seq_Cfg Register 

    for loop to Read All Channels Registers 

    Stop Seq Seq_Start Bit 

  • I am asking because after I start the conversion and try to get the data I just get back constant results in both modes.

  • Closing this thread, as this request is now addressed directly