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.

LM98640QML-SP: Initialization of Register

Part Number: LM98640QML-SP

Hello,

I have read the datasheet and all threads regarding this device here in this forum. However, I am not sure whether I initialize the device in a correct way.

1) Can I write the values for my application as default register values or do I have to write the baseline values in the datasheet first?

2) Do I have to write all (all writeable register; note that 0x07 and 0x3e are read-only as I understood) registers in increasing order?

3) Or should I write them in decreasing order to fulfill the the note in the datasheet saying "Write the Clock Monitor (0x09) register after the Test & Scan Control (3x0D) register".

4) Should I really write all reserved and not-used registers or are there further register that should not be written (except 0x07 and 0x3e)?

Best Regards
Kristian

  • Hello,

    You will need to write the baseline values to all the registers except the reserved registers after power-up to place the device in a valid state.

    Some of the reserved bits are for special test modes when testing the part and changing these can put the part into a different state.

    As far as the status registers go, the status bits will either can not be written or will self reset.

    Please find below the initialization sequence for normal mode operation..

    1. Power up supply voltages VDD33 and VDD18
    2. Give the ADC a 40MHz INCLK clock.
    3. Set all the registers to their baseline value (except the reserved registers)
    4. Set register 0x25 to 0x02 for 40MHz operation
    5. Set the reference buffer power level to 100% on register 0x06 (by writing 0x87) and issue a DLL reset on register 0x28 (by writing a 0xF)
    6. Set register 0x34 to 0 to disable  the test pattern control
    7. Set register 0x3D to 0 to disable the test pattern functions
    8. Write to Clock Monitor register (0x09)

    If the above sequence does not work, can you please provide the exact sequence of registers that you are writing to in step 3 and their values?

    Additionally the value that you write to in register 0x09.

  • Hello Praveen,

    thanks for your help. We experienced corrupted register values in registers 0x00 to 0x06 if the register 0x3d is being written after these registers in some conditions. That's because I reversed the write order.

    Our application uses CDS (not S/H) and 23.5 MHz for INCLK and I cannot change it. I suspect I should adapt the baseline values accordingly?

    Our initialization values are as follows (0x00 to 0x3f), registers 0x07 and 0x3e are not written, registers are written from 0x3f to 0x00 (reversed order)

    0x01 0x00 0x24 0x5b 0x34 0x0e 0x07 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0xff 0x00 0xff 0x00 0x61 0x00 0x00
    0x00 0xff 0x00 0xff 0x61 0x00 0x00 0x00
    0x08 0x1c 0x28 0x3c 0x34 0x12 0x00 0x00
    0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x48 0x00

    Best Regards
    Kristian

  • Hello Kristian,

    I am not sure why writing 0 (baseline value) to register 0x3D corrupts registers 0x00 to 0x06.

    Are you able to read back the initialized values? 

    I do not see an issue with the register values for S/H mode and for INCLK freq. of 23.5 MHz but would recommend the sequence as I have outlined below.

    1. Power up supply voltages VDD33 and VDD18
    2. Give the ADC a 23.5 MHz INCLK clock.
    3. Set all the registers to their baseline value (except the reserved registers)
    4. Set register 0x25 to 0x12 for 23.5MHz operation
    5. Set the reference buffer power level to 100% on register 0x06 (by writing 0x07) and issue a DLL reset on register 0x28 (by writing a 0xF)
    6. Set register 0x34 to 0 to disable  the test pattern control
    7. Set register 0x3D to 0 to disable the test pattern functions
    8. Write to Clock Monitor register (0x09)
    9. Read back initialized values including registers 0x07 and 0x3E.
  • Hello Kristian,

    Since I did not hear back from you, I believe you were able to resolve the issue.

    I will close the post and if you have any pending questions, feel free to post them here.