[SILICON BUG?] STM32F3 DAC has 4LSB sawtooth with 1 minute period
Over the past month, I've been trying to figure out if the DAC in the STM32F3 actually has a silicon bug. I observe a sawtooth with an approx 1 minute period in the DAC output (as measured by the ADC on the same chip). The first large "tooth" is always ~2mins long, then the period is roughly 1minute after that. Here's an example of what I mean:

Here are a few lines of inquiry I have eliminated so far:
Is it [your choise of something that causes noise]? No, it's regular and predictable. Noise by definition is random. The little jitters are noise; the 4 LSB sawteeth are not noise.
Is it the board? No, I observe this in boards of my own design and my F334R8 nucleo board.
Is it the specific chip or family? No, I observe this in several F334K6, F334K8 and F334R8 chips so far.
Is it the specific power supply? No, I observe it when the MCU is fed by LP5951 LDO on my board, and also whatever LDO the nucleo board uses. My board supply is correctly decoupled with 4.4uF at supply + 100nF adjacent to all VDD and VDDA pins.
Is it due to DMA driver? No, you can also see this using HAL_DAC_SetValue().
Is it due to EM interference in your lab? No, I still see the sawtooth when I change to laptop and run everything in my basement.
How do you know it's the DAC outputting a sawtooth ripple values and not the ADC adding a sawtooth ripple to its readings? Because I tested the ADC with a 1.5V battery several times (even with the DAC running but the DAC pin disconnected) and it measures very stable values with only 1LSB of noise; no sawtooth.
Is it due to the DAC channel? No, I tried DAC1 ch1 and ch2. They both have sawtooth.
So now I'm stuck. As far as I can tell, there is no reason for the DAC to be emitting a sawtooth except due to some internal Vref problem inside the chip. Can you please confirm?
I've posted a main.c here which can be used as template code for confirming. Connect PA0 (ADC1 ch1) and PA4 (ADC2 ch1) to PA5 (DAC1 ch2). Configure using the prior release STM32F3 HAL (your latest release for STMCubeIDE 1.1.0 has an ADC software bug too, see my other recent post). ADC1 & ADC2 in dual simultaneous mode, DAC using DMA and TIM6 as trigger (or without DMA also snows sawtooth, at your option). SWV trace enabled. 64MHz HSI PLL clock.
Obviously the DAC op amp doesn't have the GBW to overcome the ADC kickback voltage drop so the values will be lower than outputted by the DAC, but you'll see the sawtooth effect printed in the ITM console.
