Post Go back to editing

Subject: Issue with SPI Communication: RDAC Value Not Changing on Digital Potentiometer

Thread Summary

The user encountered issues changing the RDAC value of a digital potentiometer when interfacing with an MSP430FR5994 microcontroller using SPI. The final answer suggested that the 0x03 command byte was being sent incorrectly, causing the device to interpret it as 0xC0. The correct command should be 0x07FF to write to the RDAC. Additionally, the user noted that after power cycling, a 0x1803 command must be sent to re-enable the control register before setting the RDAC value.
AI Generated Content
Category: Hardware
Product Number: AD5292

Hello,

I am currently working on a project that involves interfacing a digital potentiometer with an MSP430FR5994 microcontroller using SPI. While the SPI communication appears to be functioning correctly, I am encountering an issue where the RDAC value of the potentiometer does not change as expected. It remains fixed at 10kΩ regardless of the commands sent.

Here are the details of my setup and what I've tried so far:

  1. SPI Configuration:

    • CPOL = 0 (Clock Polarity: inactive state is low)
    • CPHA = 1 (Clock Phase: data captured on the first edge, changed on the following edge)
    • SPI mode: 3-wire (MOSI, MISO, SCLK)
  2. Initialization and Write Sequence:

    • I have configured the SPI peripheral on the MSP430 and verified that the data is being transmitted correctly using an oscilloscope.
    • According to the datasheet, the SYNC pin (connected to a GPIO) is set low to enable the shift register, and data is transferred on the falling edges of the clock signal. The register should be updated on the rising edge of SYNC following the 16th clock cycle.
    • I ensured that the SYNC pin goes high only after the 16th clock cycle to complete the write sequence.
  3. Observations:

    • The SPI signals appear correct when observed with an oscilloscope.
    • Despite sending the correct 16-bit command sequence, the resistance value of the RDAC does not change from its default 10kΩ.

  4. I am looking for insights into what might be going wrong. Is there any additional initialization or specific timing requirement that I might be missing? Could it be a hardware issue or a problem with the specific potentiometer?

    Any advice or suggestions to troubleshoot and resolve this issue would be greatly appreciated.

    Thank you!

  5. SPI :   ch1 : clk ch2 : data ch3 : ready (with intern pull up) ch4 : SYNC
  6. Schématics :