Hi,
Hi,
I am using two AD5293BRUZ-100 digital potentiometers connected to the same SPI bus with separate SYNC (chip select) signals.
Hardware
-
AD5293BRUZ-100 (100 kΩ version)
-
MCU SPI configured as Mode 1 (CPOL = 0, CPHA = 1)
-
VDD = 24 V
-
VLOGIC = 3.3 V
-
RDY = 3.3 V
-
RESET = 3.3 V
-
Separate SYNC lines for each AD5293
-
Shared SCLK, SDI, and SDO
-
SDO, SDI, and SCLK pulled up to 3.3 V through 10 kΩ resistors
Initial Issue
The SDO line was always low whenever an AD5293 was connected. After reviewing the datasheet and EngineerZone posts, I found that sending:
0x8001
followed by:
0x0000
places the SDO pin into high-impedance mode. After doing this, the pull-up works correctly and I can observe activity on the SDO line.
Based on EngineerZone discussions, this appears to be expected behavior because SDO does not automatically enter high-impedance mode when SYNC is deasserted.
Current Issue
I am now trying to verify that the RDAC register is actually being updated.
Initialization Sequence
-
0x8001
-
0x0000
-
0x1802 (enable RDAC writes)
Write Operation
For example, writing code 512:
-
Command = Write RDAC
-
Data = 512
Readback Operation
-
Send Read RDAC command
-
Wait for RDY
-
Send NOP command
However, the value returned on SDO appears to be the previous command rather than the programmed RDAC value.
For example, after sending a Read RDAC command, the next NOP transaction returns the previous command frame instead of the expected RDAC value. Sending additional NOP commands does not appear to return the programmed wiper value either.
Questions
-
Is the readback sequence above correct for the AD5293?
-
What is the exact recommended SPI sequence for:
-
Enabling writes
-
Writing a wiper value
-
Reading back the wiper value
-
-
Is the returned data expected to be delayed by one or more SPI frames?
-
Does placing SDO into high-impedance mode using 0x8001 followed by 0x0000 affect readback behavior in any way?
-
Is there any additional step required after enabling SDO high-impedance mode before readback can be performed?
Verifying RDAC Update Physically
I am also looking for a reliable way to verify that the RDAC value is actually changing.
The AD5293 is being used in rheostat mode:
-
Terminal A is left open
-
W and B are used
-
Device is the 100 kΩ version
Questions:
-
After writing codes such as 0, 512, and 1023, what is the recommended way to verify that the RDAC has actually updated?
-
Can I power down the board and measure resistance directly between W and B to verify the programmed value?
-
If so, should I expect approximately:
-
Code 0 → near 0 Ω
-
Code 512 → approximately 50 kΩ
-
Code 1023 → approximately 100 kΩ
-
-
Are there any considerations when measuring W-B resistance in-circuit that could cause misleading readings?
Any guidance, example SPI transaction captures, or recommendations for verifying correct RDAC operation would be greatly appreciated.
Thank you.
Thank you.
