Hello,
I designed a board with an LMX2581E and I can't manage to communicate with it.
I followed the datasheet recommended initialization sequence which suggest when power is good to soft reset the LMX then write from R15 to R0 the value needed for operation. This is the sequence I'm sending:
0x0020 0015 //R05 - RESET
0x0000 080F //R15
0x4082 000D//R13
0x0008 2437 //R07
============================================
| R7 || Pinmode | INVERTED | SELECT |
|----||--------------|----------|----------|
| LD || HD_PUSH_PULL | NORMAL | READBACK |
| MUX|| PUSH_PULL | NORMAL | READBACK |
| FL || TRI_STATE | NORMAL | GND |
============================================
0x0000 00C6//R06
0x0020 0005 //R05
0x0000 0004 //R04
0x0002 FBC3//R03
0x0A00 0002//R02
0x0000 0011 //R01
0x000E 0000 //R00
After writing in R15 Muxout goes and stay at 1 forever, software reset is not sufficient, needs power cycling
The first 2 word received are:
0x0000 1CC0
If I skip R15:
After writing in R13 Muxout goes and stay at 0 forever, software reset is not sufficient, needs power cycling *
The first 2 word received are:
0x0000 1CC0
*Note: If R15 is sent after R13, then Muxout becomes 1
If I skip R13 and R15:
The first 9 words are : 0x0000 1CC0
Then, after writing in R0, it becomes 0x0000 0530
After sending the initialization register (initially R15 to R0 but now R7 to R0), I read all of them using R6: 0x0000 01E6 ... 0x0000 0006
and the value always stay at 0x0000 0530
All of this is repeated a few time and checked using a logic analyzer. It seems that the chip is responding but not how I expect it. I think this could be the diagnostic readback, but it seems odd since it doesn't comply with Fig.18 (p.22) of the datasheet where it should be 0xXXXX XXXF (address should be 1's)
It's also behave oddly since when I change R7 and invert Muxout or change Select, the result is the same. So I don't think the LMX2581E understand what I'm saying. But on the other hand, I don't see why not. My schematic is pretty much the same to the demo board.
Do you have any clue what I might do wrong?
Thanks