1
\$\begingroup\$

I am controlling an LMX2820 synthesizer over SPI. I want to perform SPI register reads and need to use the chip's MUXOUT signal as SDO pin as SPI MISO.

I expect to have to set MUXOUT_SEL to assign readback operation to MUXOUT pin instead of lock-detect sense, but I don't see any MUXOUT_SEL bit in any registers in the LMX2820 Register map document. I read in another Stack Exchange that the LMX2820 uses the same SPI interface as the LMX2594, however, the LMX2594 does have a MUXOUT_SEL bit in register 0.

Can anyone explain how to configure the LMX2820 to enable readback over the SPI using MUXOUT pin? How do I set the MUXOUT_SEL function?

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

After a bit of digging, I found some information courtesy of the TI engineers over at their e2e forums.

The LMX2820 is programmed using 24-bit shift registers. The shift register consists of a R/W bit (MSB), followed by a 7-bit address field and a 16-bit data field. Addresses can be found in the address map. For the R/W bit, 0 is for write, and 1 is for read.

To read a register, serial data is shifted MSB first into the shift register. The R/W bit must be set to 1, followed by the 7-bit address. The data field contents on the SDI line are ignored during a read operation; and the read back data on MUXOUT pin is clocked out starting from the falling edge of the 8th clock cycle.

In a write operation, the first bit is a zero, followed by the seven-bit address, followed by the 16-bit register contents to write. Data is buffered during the shift-in, and is written to the internal register only after the 24th bit is clocked. Data is shifted in on the SCK rising edge.

For example, to read the current state of the reference path multiplier (address 0x0C) you would clock in, in MSB order:

1000 1100 XXXX XXXX XXXX XXXX

(X meaning 'don't care', and the first bit set to '1' for read mode)

and after the 8th clock, you would start to receive on MUXOUT:

0000 0100 0000 1000

(i.e. the power-on default of 0x408 per the register map.)

If needed, further details about the power-on sequence can also be found at the link.

\$\endgroup\$
11
  • 1
    \$\begingroup\$ Thank you Matt S for your response - The protocol is pretty familiar. The problem is the MUXOUT pin powers-up in a mode that outputs "lock detect" status, and not in "register readback" mode that is required for it to function as the SPI output pin. In other versions of similar parts, you send a write command first-thing after power-on to assign MUXOUT properly. I just don't see how to do that on this part?? Thanks. \$\endgroup\$
    – jwasch
    Commented Dec 24, 2022 at 15:16
  • 1
    \$\begingroup\$ Oh, p.s., I have all the pins connected to an oscilloscope and I can see SCK, SDI, SDO(MUXOUT), and CS (Chip select), and all looks normal except MUXOUT is silent. Next I'm going to substitute my header cable for TI Eval Board connector that they use to command part over USB->SPI dongle and see if I can capture their power-up sequence to see what they do. FYI. \$\endgroup\$
    – jwasch
    Commented Dec 24, 2022 at 15:23
  • 1
    \$\begingroup\$ I see what you mean re "LD". I'm referring to "rb_LD". Datasheet says: 7.3.6 MUXOUT Pin and Readback Readback is useful for getting information regarding the device status. Fields that can be read back are: 1. Raw register values to confirm programming. 2. VCO lock detect status (rb_LD). 3. VCO calibration information (rb_VCO_SEL; rb_VCO_CAPCTRL; rb_VCO_DACISET). 4. Die temperature (rb_TEMP_SENSE). \$\endgroup\$
    – jwasch
    Commented Dec 24, 2022 at 15:26
  • 1
    \$\begingroup\$ Hmm. Then again, I see these rb_XXX are also registers in the Register Map. Perhaps these functions are read as standard register reads through the register access protocol. I will verify my SPI polarity and clocking modes. Thanks for pointing this out. \$\endgroup\$
    – jwasch
    Commented Dec 24, 2022 at 15:31
  • 1
    \$\begingroup\$ Yep this was it. changing clocking edge triggered MUXOUT to show results. Device was never seeing the first "R" bit. Thanks for your help Matt. \$\endgroup\$
    – jwasch
    Commented Dec 24, 2022 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.