This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS7953-Q1: Auto-2 Mode Sequence

Part Number: ADS7953-Q1

NOTE: I am using device ADS7953-Q1.
NOTE: I am using datasheet ADS79xx (SLAS605C) in my references below, because it appears there are multiple errors in datasheet ADS79xx-Q1 (SBAS652A), i.e. Figure 54.

I am implementing an FPGA to control the SPI port of the ADS7953-Q1.

The design needs to sample all 16 channels at a pre-defined system frame rate (i.e. 10ms).  The sequence repeats every 10ms.  I wish to reset and reconfigure the device each frame.

Can you please verify the sequence I have listed below is acceptable:

Register Action (For Next Frame) Mode SDI
SPI Command
Sample and Convert Channel; Frame MUX
Channel
Selected
SDO; Frame Frame
GPIO Program Register Reset Device Manual 0x4200 N/A CH0 Manual Don't Care n-2
Auto-2 Program Register Set Last Channel Manual 0x93C0 CH0 Manual; n-2 CH0 Manual Don't Care n-1
Auto-2 Mode Register Change to Auto-2 Mode; Reset to CH0 Auto-2 0x3C00 CH0 Manual; n-1 CH0 Manual CH0 Manual; n-1 n
Auto-2 Mode Register Auto-2 Mode; Increment Channel Mode Auto-2 0x3800 CH0 Manual; n CH0 Auto-2 CH0 Manual; n n+1
Mode Control Register Continued Operation Auto-2 0x0000 CH0 Auto-2; n+1 CH1 Auto-2 CH0 Auto-2; n+1 n+2
Continued Operation Auto-2 0x0000 CH1 Auto-2; n+2 CH2 Auto-2 CH0 Auto-2; n+2 n+3
Continued Operation Auto-2 0x0000 CH2 Auto-2; n+3 CH3 Auto-2 CH0 Auto-2; n+3 n+4
Continued Operation Auto-2 0x0000 CH3 Auto-2; n+4 CH4 Auto-2 CH0 Auto-2; n+4 n+5
Continued Operation Auto-2 0x0000 CH4 Auto-2; n+5 CH5 Auto-2 CH0 Auto-2; n+5 n+6
Continued Operation Auto-2 0x0000 CH5 Auto-2; n+6 CH6 Auto-2 CH0 Auto-2; n+6 n+7
Continued Operation Auto-2 0x0000 CH6 Auto-2; n+7 CH7 Auto-2 CH0 Auto-2; n+7 n+8
Continued Operation Auto-2 0x0000 CH7 Auto-2; n+8 CH8 Auto-2 CH0 Auto-2; n+8 n+9
Continued Operation Auto-2 0x0000 CH8 Auto-2; n+9 CH9 Auto-2 CH0 Auto-2; n+9 n+10
Continued Operation Auto-2 0x0000 CH9 Auto-2; n+10 CH10 Auto-2 CH0 Auto-2; n+10 n+11
Continued Operation Auto-2 0x0000 CH10 Auto-2; n+11 CH11 Auto-2 CH0 Auto-2; n+11 n+12
Continued Operation Auto-2 0x0000 CH11 Auto-2; n+12 CH12 Auto-2 CH0 Auto-2; n+12 n+13
Continued Operation Auto-2 0x0000 CH12 Auto-2; n+13 CH13 Auto-2 CH0 Auto-2; n+13 n+14
Continued Operation Auto-2 0x0000 CH13 Auto-2; n+14 CH14 Auto-2 CH0 Auto-2; n+14 n+15
Continued Operation Auto-2 0x0000 CH14 Auto-2; n+15 CH15 Auto-2 CH0 Auto-2; n+15 n+16
Continued Operation Auto-2 0x0000 CH15 Auto-2; n+16 CH0 Auto-2 CH0 Auto-2; n+16 n+17





Also, I am not entirely sure that the SPI write to 0x3C00 mentioned above is required, because the datasheet states in Figure 55, Frame 'n' that "DI10 = x. Device automatically resets to channel 0".

Can you confirm that the sequence below is also valid ... I just removed the first Auto-2 Mode Register command:

Register Action (For Next Frame) Mode SDI
SPI Command
Sample and Convert Channel; Frame MUX
Channel
Selected
SDO; Frame Frame
GPIO Program Register Reset Device Manual 0x4200 N/A CH0 Manual Don't Care n-2
Auto-2 Program Register Set Last Channel Manual 0x93C0 CH0 Manual; n-2 CH0 Manual Don't Care n-1
Auto-2 Mode Register Auto-2 Mode; Increment Channel Mode Auto-2 0x3800 CH0 Manual; n-1 CH0 Auto-2 CH0 Manual; n-1 n
Mode Control Register Continued Operation Auto-2 0x0000 CH0 Auto-2; n CH1 Auto-2 CH0 Auto-2; n n+1
Continued Operation Auto-2 0x0000 CH1 Auto-2; n+1 CH2 Auto-2 CH0 Auto-2; n+1 n+2
Continued Operation Auto-2 0x0000 CH2 Auto-2; n+2 CH3 Auto-2 CH0 Auto-2; n+2 n+3
Continued Operation Auto-2 0x0000 CH3 Auto-2; n+3 CH4 Auto-2 CH0 Auto-2; n+3 n+4
Continued Operation Auto-2 0x0000 CH4 Auto-2; n+4 CH5 Auto-2 CH0 Auto-2; n+4 n+5
Continued Operation Auto-2 0x0000 CH5 Auto-2; n+5 CH6 Auto-2 CH0 Auto-2; n+5 n+6
Continued Operation Auto-2 0x0000 CH6 Auto-2; n+6 CH7 Auto-2 CH0 Auto-2; n+6 n+7
Continued Operation Auto-2 0x0000 CH7 Auto-2; n+7 CH8 Auto-2 CH0 Auto-2; n+7 n+8
Continued Operation Auto-2 0x0000 CH8 Auto-2; n+8 CH9 Auto-2 CH0 Auto-2; n+8 n+9
Continued Operation Auto-2 0x0000 CH9 Auto-2; n+9 CH10 Auto-2 CH0 Auto-2; n+9 n+10
Continued Operation Auto-2 0x0000 CH10 Auto-2; n+10 CH11 Auto-2 CH0 Auto-2; n+10 n+11
Continued Operation Auto-2 0x0000 CH11 Auto-2; n+11 CH12 Auto-2 CH0 Auto-2; n+11 n+12
Continued Operation Auto-2 0x0000 CH12 Auto-2; n+12 CH13 Auto-2 CH0 Auto-2; n+12 n+13
Continued Operation Auto-2 0x0000 CH13 Auto-2; n+13 CH14 Auto-2 CH0 Auto-2; n+13 n+14
Continued Operation Auto-2 0x0000 CH14 Auto-2; n+14 CH15 Auto-2 CH0 Auto-2; n+14 n+15
Continued Operation Auto-2 0x0000 CH15 Auto-2; n+15 CH0 Auto-2 CH0 Auto-2; n+15 n+16
  • Hi Eric,

    The above sequence looks correct at first pass. I will take a closer look at both sequences and get back to you by end of business tomorrow.

    Thanks,
    Keith N.
  • Hi Eric,

    The first sequence should work as expected. For frames n+1 through n+16, you can also write 0x3800 on SDI, or 0x0000 which will repeat the auto-2 command.

    You are correct; when you enter auto-2 mode, the device will automatically reset to channel 0, so you do not need to explicitly set DI10 bit in the mode control register for auto-2. However, in either case there is a two cycle delay from the time the MUX is set to channel 0 until you get the conversion result.

    In the second sequence, you enter auto-2 mode in frame n. Per Figure 56 in the datasheet, you will not get the conversion results until 2 frames later, or frame n+2 in your above example. The sequence you have now will give conversion results for CH0 in frames n, n+1, and n+2. Frame n+3 will be CH1, and frame n+16 will be CH14. You still need to add one additional frame to get the conversion results of CH15, as per your first sequence above.

    Please let me know if you have additional questions.

    Regards, Keith N.