Skip to main content
Associate
May 15, 2025
Question

ST1VAFE3BX vAFE sensitivity and sample bit depth

  • May 15, 2025
  • 5 replies
  • 1230 views

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.

5 replies

ST Employee
May 16, 2025

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.
lexpartAuthor
Associate
May 21, 2025

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?

ST Employee
May 22, 2025

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.
ST Employee
May 23, 2025

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.
lexpartAuthor
Associate
May 28, 2025

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?

 

Federica Bossi
Technical Moderator
May 29, 2025

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.
lexpartAuthor
Associate
May 29, 2025

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.

Federica Bossi
Technical Moderator
May 29, 2025

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.
lexpartAuthor
Associate
May 30, 2025

Hi @Federica Bossi 

The CSV I attached previously shows exactly how the data is being assembled. The first column is from FIFO_DATA_OUT_X_L. The second column is from FIFO_DATA_OUT_X_H. The third column is the reassembled, 16-bit hex value in 2's complement format.

Thank you,

Mike