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.

ADS1278 in SPI mode

Other Parts Discussed in Thread: ADS1278

If someone is using SPI with the ADS1278, I would appreaciate your input.

I am trying to use an ADS1278EVM in SPI mode.  My goal is to use high resolution mode, in SPI TDM format.

When I do so, the first bit in my 48 bit data chain appears incorrect.  I have grounded the positive and negative inputs of both channels.  The data following the MSB is always a chain of ones (a small twos completement negative number).  However the first bit, the MSB, is sometimes zero.  The second channel has a chain of numerous zeros until the LSBs, (consistent with a small positive twos complement number) although the MSB is sometimes 1 (I expect it is really the LSB of channel 1).

Same actual data is as follows.  It consist of an array of 8 sets of samples of channel 1 & 2 data.  Each word [0] and the 8 msb of word [1] should be one channel, while the 8 LSB of word [1] and the entire word [2] should be the second 24 bit sample.  Note each sample, except for the MSB, always begins with a string of ones or zeros. 

 

[0] = 0x0000C000@Data
 [0] = 1111111111111111
 [1] = 10001110-00000000
 [2] = 0000000110011001
[1] =
0x0000C003@Data
 [0] = 1111111111111111
 [1] = 11100111-10000000
 [2] = 0000000110011100
[2] =
0x0000C006@Data
 [0] = 1111111111111111
 [1] = 01111011-10000000
 [2] = 0000001111000111
[3] =
0x0000C009@Data
 [0] = 1111111111111111
 [1] = 10101111-00000000
 [2] = 0000000100100011
[4] =
0x0000C00C@Data
 [0] = 1111111111111111
 [1] = 11111001-00000000
 [2] = 0000000100010011
[5] =
0x0000C00F@Data
 [0] = 1111111111111111
 [1] = 11110001-00000000
 [2] = 0000001001001001
[6] =
0x0000C012@Data
 [0] = 1111111111111111
 [1] = 11001111-00000000
 [2] = 0000000110111001
[7] =
0x0000C015@Data
 [0] = 0111111111111111
 [1] = 10100111-00000000
 [2] = 0000000110110001

The settings for the ADS1278EVM board are as follows:

My ADS1278EVM settings are as follows:

SW11.1 = M0 = Off, SW11.2 = M1 = ON, SW11.3 = F0 = ON, SW11.4 = F1 = ON, SW11.5 = F2 = ON, SW11.6 = CLKDIV = 0FF.

For SW10, 1 & 2 are on and all other are off.

NN1, NP1, NN2, NP2 are all grounded, others float.

Channel switches are all toward ADC1278 chip.

SW1 set to ON BRD

TOUT = 7.87 MHZ

At this point, I may have a number of issues with my setup which currently respresents my best assumptions.  My assumption is that I am getting data from the channels, because the first couple bytes of data are generally all ones or zeros except for the MSB.  This is consistent with very small negative and positive twos complement numbers which is what I would expect with shorted inputs.

John

  • Hi John,

    In the past we have seen customers run into problems with the MSB because they are unaware of the D-Flip-Flop (U20) present on the DOUT1 line on the EVM. I have recommended to have customers gain access to DOUT1 pre-DFF by using pin 1 on the J2 header. For why we have the DFF in place see here.

    http://e2e.ti.com/support/data_converters/precision_data_converters/f/73/p/128646/460780.aspx#460780

    The other issue we have seen is customers not waiting the required tMSBPD following the /CS low. If this timing is not met, it is possible that the MSB is missed.

    Regards,

    Tony Calabria

  • Thank you.  You have solved my problem!

     

     You may want to update table 3 of sbau129d.pdf (the users guilde for the EVM).  The items from the table shown in red lead me to believe it was the DOUT1 signal from the 1278.  The names and wording should reflect that it is a conditioned version of the signal.  Additionally, a note in the stand alone section would be helpful.  Anyway, the flip flop does appear on the circuit diagram.

    Pin No.   Pin Name   Signal Name    I/O Type    Pullup    Function
    J5.13     DR         DOUT1          Out         None      ADS1278 data out

    Bit 23 is now always consistent with following bits.

    [0] = 0x0000C000@Data
     [0] = 1111111111111111
     [1] = 10000101-00000000
     [2] = 0000001100001110
    [1] = 0x0000C003@Data
     [0] = 1111111111111111
     [1] = 01011010-00000000
     [2] = 0000001011000000
    [2] = 0x0000C006@Data
     [0] = 1111111111111111
     [1] = 00000000-00000000
     [2] = 0000001100011001
    [3] = 0x0000C009@Data
     [0] = 1111111111111111
     [1] = 01110010-00000000
     [2] = 0000001100001111
    [4] = 0x0000C00C@Data
     [0] = 1111111111111111
     [1] = 01110110-00000000
     [2] = 0000001100001100
    [5] = 0x0000C00F@Data
     [0] = 1111111111111111
     [1] = 01111000-00000000
     [2] = 0000001100001010
    [6] = 0x0000C012@Data
     [0] = 1111111111111111
     [1] = 11100010-00000000
     [2] = 0000010111110001
    [7] = 0x0000C015@Data
     [0] = 1111111111111111
     [1] = 01101000-00000000
     [2] = 0000001011100001

  • Great and thanks for the input! I agree that it would be a good idea to add this to the User's Guide. I will see what I can do about getting it changed on the next revision.

    Glad we can help.

    -Tony