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.
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