I'm working on a new circuit design based around using two AD5270's as Digi-Pots in a Wheatstone's Bridge to generate it tiny signal voltage (about 0.1 - 10mV).
For me the IC's seem incredibly temperamental often giving a variety of resistances when running the same bit of firmware in debug mode after numerous reboots. I know the SPI is working as I have checked SYNC, SCLK. DIN & SDO with an oscilloscope to ensure the correct signals are being generated / supplied. Although occasionally I find there is no SDO but repeatedly recycling the power eventually fixes this.
My supply voltage is 3.3V, Vss & EXT_CAP are connected via a 1uF capacitor, SDO is being pulled up by 1K resistor.
My clock is configured as SMP = 0, CKE = 0, CKP = 0.
The SPI code segment I am using is as follows:
|SPI_Out = 0xXXXX;|
|PORTBbits.RB5 = 0;|
|SPITX = SPI_Out;|
|SPI1BUF = SPITX;|
|SPIRX = SPI1BUF;|
|PORTBbits.RB5 = 1;|
The Data Out and Data In is shown below
|Data Out||Description||Data In||Desciption|
|0x2400||Software Shutdown Disabled (Just In Case)||0x0000||Default|
|0x1000||Software Reset (RDAC = Last 50-TP)||0x2400||Echo|
|0x1C03||Enable Update of RDAC & 50-TP||0x1000||Echo|
|0x2000||Read Control Register||0x1C03||Echo|
|0x0400||Set RDAC to Minimum||0x0000||RDAC & 50-TP Not Enabled|
Sometimes the return from 0x2000 is 0x0003 (RDAC & 50-TP Enabled) which is the desired effect but I can walk away, come back 20 minutes later and the same lines of code return different responses or the chip becomes totally unresponsive.
Any suggestions or solutions to this would be gladly welcomed; I would definitely not call myself an expert so it’s quite possible it is very simple. I am already interfacing with an AD8402 which gave no bother, I understand the 5270 is quite more complex however.
Thanks in advance.