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.

ADS6144 SPI-bus problem

Other Parts Discussed in Thread: ADS6144

Using ADS6144 (14bit ADC)

I always write to the ADC after power on according to the figure below.

The output is configurated for LVDS but i get CMOS 

If I configure the output for LVDS again at address 0 (0100) I get LVDS, ok

If I make any SPI bus write after that ex. 5400, LVDS is going back to CMOS again

Why?

SPI bus is checked with a logic analyser, it seem to be correct

adr(hex)                 A4 3 2 1   A0 D10 D8   D7   D4   D3   D0
0 0100 0 0 0 0   0 0 0 1   0 0 0 0   0 0 0 0
4 2500 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0
9 4800 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
A 5400 0 1 0 1   0 1 0 0   0 0 0 0   0 0 0 0
B 5800 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0
C 6000 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
E 7000 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
F 7800 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

LVDS,Signed,Bit-wise selection,

 

  • Roger,

       I looked the register code in the data sheet and found that the code you are using is different what I think. In register 0A, D8 should be 0. Can you please try it? In register 9 D0 to D9 are defined 0 in the table, you may try this also. Set register 00 by code 100 is for LVDS mode.

    I hope this helps,

    Regards,

    Hui

  • If I write '0000' (adr 00) I get CMOS mode

    If I write '0100' (adr 00) I get LVDS mode

    A4 3 2 1   A0 D10 D8   D7   D4   D3   D0
    0 0 0 0   0 0 0 1   0 0 0 0   0 0 0 0

    If I write '5400' (adr 0A) to get UNsigned-mode I get CMOS mode !! Why?

    Writing to adr 0A should not affect the LVDS/CMOS output mode. 

     

  • Hi,

      Data in the register should be defined by D0 to D10, D11 should be 0. When write register 0A for SB format, it should be written by "400" not "5400". I am thinking if write "5400" the program only take the first 3 numbers  "540" and this cause D8 to set "1", but D8 is defined as 0 all time in the data sheet. Can you send "400" instead of "5400" to register 0A? Hope this helps.

    Regards,

    Hui

     

  • Writing 400 does not help, how do I write the Register address?

    I follow the serial interface timing diagram at p.13 in the datasheet(ADS6144).

    First a reset pulse, SEN signal low, Reg.address & Reg.data(16bit)...

     

  • Hi Roger,

    Are you sending the reset pulse at the beginning of each register write?  If so, this will reset all the registers to their unprogrammed (default) values.  It's necessary to do this before sending any serial data, but once the serial interface is initialized the reset pin must remain low.

    Best regards,
    Max Robertson
    Analog Applications Engineer
    Texas Instruments
    m-robertson@ti.com

  • Yes I send the reset pulse at the beginning of each reg.write.

    After removing the reset pulse the ADC works fine!

    Thank you :-)

    /Roger T