cancel
Showing results for 
Search instead for 
Did you mean: 

STM32MP257F-EV1 + EVAL-AD5791ARDZ SPI works, but DAC output not correct because VREFP/VREFN not generated

Amruta_Dixit
Associate II

Hello,

I am trying to interface EVAL-AD5791ARDZ DAC board with STM32MP257F-EV1 using SPI3 from A35 Linux.

Hardware used

  • STM32MP257F-EV1
  • EVAL-AD5791ARDZ
  • EV-ADR445-REFZ reference daughter board
  • External dual power supply for analog rails

Digital PMOD connections

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 V

Linux side

SPI3 is enabled on A35 and /dev/spidev0.0 is available.

/dev/spidev0.0 exists
spi@400c0000/status = okay

I 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 00

I also tested manual CS/SYNCB using GPIO PB1. PB1 can toggle HIGH/LOW manually.

Problem

DAC output is not as expected.

Measured output examples:

0x00000 = 0 V
0x80000 = 0.20 V
0xFFFFF = 0.20 V

Sometimes I saw around 2.2 V, but output is not following the DAC code correctly.

Power measurements

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 V

Analog supply rails are present:

VDD to AGND = +12 V / +15 V
VSS to AGND = -12 V / -15 V

But the reference voltages are wrong:

VREFP to AGND = about 0.80 V
VREFN to AGND = about 0.74 V

Also, 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.

Current suspicion

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.

Questions

  1. On EVAL-AD5791ARDZ, what jumper/link settings are required for using the EV-ADR445-REFZ reference board?
  2. Should the ADR445 reference board automatically generate VREFP/VREFN when VDD/VSS are applied?
  3. Which test points should show 5 V, +10 V, and -10 V?
  4. Is ±12 V enough for generating ±10 V reference, or should I use ±15 V?
  5. Are there any required links/jumpers near LK2, LK3, LK4, or LK12 for enabling the reference path?

I have attached a photo of my EVAL-AD5791ARDZ + EV-ADR445-REFZ setup.WhatsApp Image 2026-05-27 at 1.13.44 PM.jpeg

Main issue: AD5791 VDD/VSS are correct, but VREFP/VREFN stay around 0.8 V and ADR445 5 V TP is not coming up.

0 REPLIES 0