cancel
Showing results for 
Search instead for 
Did you mean: 

ST1VAFE3BX vAFE sensitivity and sample bit depth

lexpart
Associate II

I have a question about the ADC sensitivity for the vAFE in the ST1VAFE3BX. Table 3 of the datasheet says that the input range is +-25mV when the gain is set to 16. With a 12-bit reading, this results in about 12 uV/LSB of resolution. However, the "AH / vAFE channel gain" row of the table lists 1311 LSB/mV, or 0.76 uV/LSB of resolution and mentions "16 bits, input referred". These values seem to conflict. Is the sensitivity 0.76 uV/LSB or 12.2 uV/LSB? This is a huge difference in sensitivity. If 0.76 uV/LSB is achievable, what settings can be used to reach it? According to the datasheet, none of the configurations appear to generate samples with more than 14 bits.

 

In my experience working with the part, the vAFE samples are always at least 14-bits when using vAFE only mode. When enabling the low-pass filter, I see 16-bits. This also doesn't seem to match the information in the datasheets or application notes, further increasing my confusion.

 

I would very much appreciate any clarification that can be provided on these topics.

10 REPLIES 10
casadeib
ST Employee

Hi @lexpart 

The AH/vAFE data output in the OUT_AH_BIO_L (2Eh) and OUT_AH_BIO_H (2Fh) registers is always a 16-bit word, which originates from a 12-bit or 14-bit format (depending on the configuration of HP_EN) as two's complement data that is left-justified. This means that sensitivity should always be referred to as a 16-bit word, resulting in 1311 LSB/mV (PGA gain = 16, 16 bits, input referred). For a more detailed explanation, you can refer to section 2.2, "Biosensor Functionality," in the sensor's datasheet.

 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @casadeib 

Thank you very much for the response!

I'm still confused by the 14-bit and 12-bit format statements in the spec. When HP_EN is disabled, I see the sensor value range from -32k to 32k with the bottom 2 bits always being 0. In other words, I see 14 bits changing, which to me seems like 14-bit data. When I enable HP_EN, then I see the values range from -32k to 32k with all 16 bits changing. In other words, it looks to me like 16-bit data.

What does the datasheet mean when it says that the data is either 14-bit or 12-bit and how can I reconcile this with the behavior I am seeing with the register values?

Hi @lexpart ,

Could you please share with us some examples with 14 bit data (when HP_EN is disabled) and 16 bit data (when HP_EN is enabled)? From datasheet you should see respectively 12 bit data and 14 data actually. 
Moreover, it would be helpful for us to verify the way you are "assembling" the register data together, MSB and LSB part (OUT_AH_BIO_L (2Eh) and OUT_AH_BIO_H (2Fh)).

 

 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hello @casadeib ,

I have attached some data I captured while running in vAFE only mode with HP_EN=1. The fifo1 and fifo2 columns are the exact values obtained from FIFO_DATA_OUT_X_L and FIFO_DATA_OUT_X_H, in that order. The 2's complement column shows the reconstructed value in 2's complement format. Note that all 16-bits are changing. The decimal converted values range from -32k to 32k. If this were 14-bit data, I would expect two of the bits to not be changing.

Thank you,

Mike

 

casadeib
ST Employee

Hi @lexpart 

Please note that when reading from FIFO instead of  OUT_AH_BIO_L (2Eh) and OUT_AH_BIO_H (2Fh), the behavior can differ. In cases where the device is configured to vAFE only state, the output from the analog hub / vAFE is stored as a 16-bit value. Changing the configuration may alter the data assembly format representation. For detailed information on the assembly differences across various configurations, please refer to section 7.4 "Main Sensors" in AN6160.

casadeib_0-1748007028746.jpeg

 

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
lexpart
Associate II

Hello @casadeib ,

I am familiar with the document and table that you referenced. Regarding the AH/vAFE only state, all the doc shows is a 16-bit value, with no explanation for what to expect based on HP_EN. Do you have any technical information for how the 12-bit and 14-bit modes are converted to 16 bits in the FIFO? Is the resolution of the data in the FIFO also 1311 LSB/mV?

 

Hi @lexpart ,

The FIFO allocates 16 bits for the vAFE data, while the actual vAFE data is 14 bits or 12 bits depending on the ODR. In vafe only mode, the data in FIFO is saved as: 12 bits at 3200 Hz, 14 bits at 800 Hz, depending on your HP_EN selection and always left justified. Resolution stays the same as declared before: 1311 LSB/mV (PGA gain = 16, 16 bits, input referred).

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
lexpart
Associate II

Hi @Federica Bossi ,

 

Thank you for the clarification on the resolution and data formats.

As mentioned above, what you are saying doesn't seem to match what I observe in the FIFO when HP_EN is enabled. If the data were 14-bits, left-justified in the 16-bit field, then I would expect the least significant 2 bits to always be 0. However, when HP_EN is enabled, all bits in the FIFO values change, including the least significant 2 bits. Please see hp_en_data.csv, attached previously.

Thank you.

Hi @lexpart ,

Ok we will check.

In the meantime, can you please provide your code to check if you are assembling data correctly.

Thanks

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.