2026-05-27 2:06 AM
Hello,
I am trying to interface EVAL-AD5791ARDZ DAC board with STM32MP257F-EV1 using SPI3 from A35 Linux.
STM32MP257F-EV1 pin 24 / PB1 / SPI3_NSS -> AD5791 PMOD 1 / SYNCB
STM32MP257F-EV1 pin 19 / PB8 / SPI3_MOSI -> AD5791 PMOD 2 / SDIN
STM32MP257F-EV1 pin 21 / PB10 / SPI3_MISO -> AD5791 PMOD 3 / SDO
STM32MP257F-EV1 pin 23 / PB7 / SPI3_SCK -> AD5791 PMOD 4 / SCLK
STM32MP257F-EV1 3V3 -> AD5791 PMOD 6 / VLOGIC
STM32MP257F-EV1 GND -> AD5791 PMOD 5 / DGND
LDAC -> GND
RESET -> 3.3 V
CLR -> 3.3 VSPI3 is enabled on A35 and /dev/spidev0.0 is available.
/dev/spidev0.0 exists
spi@400c0000/status = okayI wrote a Linux spidev test program to send 24-bit AD5791 frames. The SPI program runs successfully.
Example output:
SPI ready: /dev/spidev0.0 mode=1 speed=1000000 Hz
AD5791 init...
WRITE reg=2 data=0x00312 frame=20 03 12
Writing DAC code 0x80000
WRITE reg=1 data=0x80000 frame=18 00 00I also tested manual CS/SYNCB using GPIO PB1. PB1 can toggle HIGH/LOW manually.
DAC output is not as expected.
Measured output examples:
0x00000 = 0 V
0x80000 = 0.20 V
0xFFFFF = 0.20 VSometimes I saw around 2.2 V, but output is not following the DAC code correctly.
Digital/control side looks correct:
VLOGIC to DGND = 3.3 V
RESET to DGND = 3.3 V
CLR to DGND = 3.3 V
LDAC to DGND = 0 VAnalog supply rails are present:
VDD to AGND = +12 V / +15 V
VSS to AGND = -12 V / -15 VBut the reference voltages are wrong:
VREFP to AGND = about 0.80 V
VREFN to AGND = about 0.74 VAlso, the ADR445 reference daughter board does not seem to generate the expected 5 V reference. I checked the 5 V test point and it is not showing 5 V.
The issue seems not to be STM32 SPI now, but the EVAL-AD5791ARDZ reference board / reference power path.
The EV-ADR445-REFZ daughter board is physically plugged into the EVAL-AD5791ARDZ board, but the AD5791 board is not getting proper reference voltages.
I have attached a photo of my EVAL-AD5791ARDZ + EV-ADR445-REFZ setup.
Main issue: AD5791 VDD/VSS are correct, but VREFP/VREFN stay around 0.8 V and ADR445 5 V TP is not coming up.