I have been using the AD7689 for a while and only recently have discovered an interesting issue. The AD7689 works perfectly for a few hours, and at some point in time it decides to respond back with CFG (read back) and the ADC data in the reverse order.
Here is my configuration:
- VDD = 5V, VIO=3.3V
- CNV = 8KHz PWM signal (with 20% duty cycle)
- 3.2us after the falling edge of the PWM ( 25us from the rising edge = 20% 8MHz PWM) I send the CFG register value 2X ( 2x 16bit sent with a 1 us time in between each word = 32 SCK rising edges - SCK currently at 8MHz).
The content of the CFG register is:
- CFG = 1
- INCC = 7
- INx = x (I rotate through this for all 8 channels)
- BW = 1
- REF = 1 or 7 (I have two AD7689s, VREF_IN (2nd one) = VREF_OUT (1st))
- SEQ = 0
- RB = 1
Based on my system settings (above) I'm assuming that I'm in RAC (read after conversion) mode. l am following everything recommended in the timing diagram for RAC. The AD7689s work perfectly for a few hours, and then all of a sudden both of them start responding with the Data and CFG (RB) reversed. After the AD7689s enter this mode, the only way to get them to respond in the normal fashion is by recycling power to them.
Am I doing something wrong?
What could be a potential cause of this behavior?
The data being returned are still good, so I can fix it in the SW if need be, but I would like to understand the actual behavior before doing so.
I've attached a could of scope captures below, hoping that it could shed some light on what might be happening:
(the images are when things are normal)
( 3=CNV, 4=SCK, 1=SDI, 2=SDO)
The issue is consistently reproducible (although very slow - it takes 4-5 hours for it to happen), but it is very difficult to capture what exactly happens at the time.
Any help will be truly appreciated.