ADS7950 is not switching channels in manual mode.
My initial problem started out where it looked like the mux inside the chip was not switching when sitting at -40 degrees C and then being turned on. I was in Auto-2 Mode. The SCLK is at 15.625Mhz(64ns).
I originally sent only 0x3840 (enter Auto 2 mode, Allow D10:D00 to be programmed, use x2 ref) in my 1st frame and then 0x0000 thereafter. The device would function at -40 degrees after being powered up for a little while and then have the power toggled. So right away I am thinking it is a timing issue. Upon looking with an oscilloscope, the timing looked okay (rising/falling edge of SCLK in the middle of the SDI/SDO bits).
Not being sure if I had to program the last channel for auto 2 mode, I changed the initialization to send 0x90C0 in the 2nd frame upon turn on. Again I had no success.
So now I am debugging at room temperature to try other modes.
At room temperature, I see the mux incrementing through the channels. As a test I tried to setup Auto 2 mode with the channel stopping at 2 (starting from '0') (this is a 4 channel chip) by sending 0x3840 in the 1st frame and 0x9080 for the 2nd frame an then 0x0000 thereafter. It still incremented through the 4 channels anyway. I am pretty sure this should have sequenced channels 0 ,1 & 2 only. (Channels starting from '0')
So then I decided to try manual mode.
I sent 0x1840, 0x18C0, 0x1940, 0x19C0 repeatedly. Here is where I see only channel 0 being returned.
I even tried sending 0x1840 for the 1st frame and then 0x1040, 0x10C0, 0x1140, 0x11C0 for each successive 4 frames thinking maybe I need to disable
I have seen other people having the same issues and they seemed "resolved" however I am not sure what I am doing differently to not get the mux to sequence through the channels when in manual mode.
The reason I wanted to go into manual mode was that I was hoping this would help my issue in "cold" start since I would be constantly sending data to the A/D as opposed to just to words at startup.
Any help would be appreciated since this chip is used in 4 of our designs which operate from -40 to +70 degrees C.
Thank-you,
Gennaro
Below is scope trace of sending a frame (in this case the data was 0x3840. Ignore the labels. The top trace is CSn, the red is SCLK and the Blue is SDI) (Green is SDO which in N/A for the 1st Frame)
This is trace from Vivado "chip-scope" showing me sending 0x1840 for the 1st frame, and then 0x1040, 0x10C0, 0x1140, 0x11C0 for each successive 4 frames thereafter. As you can see the channel read back never changes(s_ad chan[3..0])
One last snapshot of when it was setup for Auto 2 mode and working: