cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F446RET6 DAC output

Junzhe
Associate II

Hi,

 

For STM32F446RET6, I want to use the DAC function of it. But I have some question.

 

1. If I don't use the output buffer, what is the output range? From the datasheet I think it should be 0.5mV to 3.3V±1LSB?

2. If I use the output buffer, what is the output range? From the datasheet I think it should be 0.2V to 3.1V?

(My VDDA=VREF is 3.3V)

 

3. For this 12-bit DAC, its minimum output cannot be 0V (regardless of whether a buffer is used). So how should I adjust its output? When calculating the formula X/4095 (where X is my setting), if I set X to 1 and do not use an output buffer, should its output be 0.5mV + (1/4095) * 3.3V?  

When calculating the formula X/4095 (where X is my setting), if I set X to 1 and use an output buffer, should its output be 0.2V + (1/4095) * 3.3V?

Thanks a lot for your help.

 

Best,

Junzhe

3 REPLIES 3
mƎALLEm
ST Employee

Hello,

This is what STM32 Sidekick answered your questions :) :

mALLEm_0-1763383665022.png

1. DAC Output Voltage Range (Buffer ON/OFF)

  • With Output Buffer ON:
    The DAC output voltage range is from a minimum of 0.2 V up to (VDDA – 0.2 V). For your setup (VDDA = VREF+ = 3.3 V), this means the output can swing from 0.2 V to 3.1 V. The minimum and maximum output voltages are not exactly at the digital code extremes (0x000 and 0xFFF), but are limited by the buffer characteristics.

  • With Output Buffer OFF:
    The output voltage range is from a minimum of -0.5 mV up to (VREF+ – 1 LSB). For your setup, this means the output can go from approximately -0.5 mV to just below 3.3 V. Again, the minimum output voltage is not exactly 0 V, but slightly negative due to the DAC architecture.

2. Calculating Output Voltage for a Given Digital Value

To calculate the output voltage for a given digital value (X), you must consider the minimum and maximum output voltages as described above.

  • With Buffer ON:

    VOUT = 0.2 V + [X / 4095] × (3.1 V – 0.2 V)
    

    Where X is your 12-bit digital value (0 to 4095).

  • With Buffer OFF:

    VOUT = -0.5 mV + [X / 4095] × (3.3 V – (-0.5 mV))
    

    This formula accounts for the slightly negative minimum output.

3. Minimum Output Voltage and Practical Limitations

  • True 0V Output:
    The DAC cannot achieve a true 0V output, regardless of buffer configuration. The minimum output is either 0.2 V (buffer ON) or -0.5 mV (buffer OFF). This is a practical limitation of the DAC design.

  • Formula Adjustment:
    When calculating the output for X = 1 (buffer OFF), the output is:

    VOUT = -0.5 mV + (1/4095) × 3.3 V
    

    This means the output starts slightly below 0V and increases linearly with the digital value.


Summary

  • With buffer ON: Output range is 0.2 V to 3.1 V.
  • With buffer OFF: Output range is -0.5 mV to just below 3.3 V.
  • The DAC cannot output a true 0V; minimum output is limited by hardware.
  • Use the adjusted formula for output voltage calculation, considering the minimum output voltage for your configuration.
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,

 

When I use an output buffer and set X to 1, my DAC output is 0.063V. Why is that? And why is my DAC outputting 0.6V when I don't use the output buffer and set X to 1?

 

 

With Buffer ON:

VOUT = 0.2 V + [X / 4095] × (3.1 V – 0.2 V)

Of course not. Thou shalt not trust any AI.

VOUT is always (VREF+-VREF-) * X/4095; when buffer is ON, it's saturated, i.e. for DAC_OR values which would result in voltages close to the extremes, it won't output those voltages but the limiting voltages (the datasheet value is worst-case).

JW