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.

TPS92518HV: SPI reply data doesn't match specification, what am I doing wrong?

Part Number: TPS92518HV
Other Parts Discussed in Thread: TPS92518

I have the SPI interface up and running, the lower bits seem to be working properly, but the upper bits do not appear to be working properly.

I figure I must be misunderstanding things.

When the part first turns on, the first message I get from SPI is an 0x8000, SPI Error. Is that correct?

Then, I can write registers, but the reply always seems to set the MSB, which is SPE and shouldn't be set, unless the rest of the bits are zero.

When I read them the upper bits also seem to be out of whack, at least SPE is.

I double checked with the scope to confirm that the data I'm getting back is what's being sent.

Note: I sent the commands twice so the send and receive data would match.

Here is a sample write command:

Here is a sample read command.

The write command is 0x821F, and the read command 0x0200, which should write register 0 and read register 0. The data seems to be correct, but the SPE bit being high is wrong according to the spec.

I can set the parity bit incorrectly and get the part to return 0x8000.

Any idea what I'm doing wrong with the part to cause this issue?

Thanks.

  • I think I understand.

    SPI Error is set once by the power up, for whatever reason.

    This makes the after power up first returned word, 0x8000.

    With each subsequent write or read, the SPI Error bit stays the same, while the rest of the returned data is what you expect it to be, I think.

    Then, if I read Register 0x01, then I see the SPIE bit set and, most importantly, that clears it, then on subsequent reads SPIE is low.

    In my opinion, this behavior should be documented more explicitly in the documentation.

    So I need to read Reg 0x01 right away, then set the MAX Off Time, then go about my business.

    If that's the correct behavior, could you confirm?

    Thanks.

  • Yes, that is the correct behavior. Please refer to the TPS92518 datasheet SLUSCR7 and reference Table 3, "STATUS Register Field Descriptions" text.