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