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:
-
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)
-
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.
-
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Ω.
-
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!
- SPI :
ch1 : clk ch2 : data ch3 : ready (with intern pull up) ch4 : SYNC - Schématics :


