Based on the currently active
microcontroller DAC thread, I got inspired to test the actual performance of the DAC in the STM32F303 boards I got.
As a fair n00b to things like this, I thought I'd get some input on my testing methodology before I waste a lot of time.
I've got my STM32F303 board ("bluepill" form factor) hooked up to a Raspberry Pi via USB-serial port. I've written some simple code for the STM32 which reads lines from the serial port, convert the input to a number and sets the DAC value to that number.
I've also got a Siglent SDM3055 DMM which I've connected to the Pi via LAN so I can control the DMM via LXI tools. I've written a Python script which sends a value to the micro, and then runs a SCPI command to read a few samples. This is working well.
Now, for the stuff I'm not sure how to do right.
The DAC has an unbuffered mode, where it has an output impedance of 15kOhm according to the datasheets. As such I figured I might as well just hook up the DMM only to the output, setting it in its 10MOhm input impedance mode. This seems to give me quite accurate results, but due to the capacitance of the cables it takes a while to settle. For testing the "static" performance like DNL, is this setup reasonable enough?
When testing say DNL, how should I take the DMM measurements? My measurement instinct was to take a few samples and take the mean or the median, but not sure if that is proper in a context like this? For now I'm writing the DAC value, waiting a second to let the output settle, then read 5 samples using the slow DMM mode.
The SDM3055 has 240000 counts, and switches from 2V to 20V range if set to Auto. So I figured having it fixed in the 20V range for all codes would be more consistent. That leaves me with only 100uV precision, but since each code is supposed to be 3.3/4096 = ~805uV it should be enough, no? Or should I leave it on Auto and maximize precision at the cost of consistency?
I'm probably making a mountain out of a molehill again, but first time I'm doing anything like this so lots of questions as usual
