Other Parts Discussed in Thread: DAC80508
Tool/software:
I'm getting some unexpected behavior with the SPI bus. I'm hooked into an NXP RT1176 chip using the LPSPI1 bus. I've verified the timing looks good from the MCU: data is being sent on each rising edge of the clock, so it should be latched correctly by the DAC80508. I'm seeing two main problems right now:
1. When I send a command (any command, read or write) I only get the bits I have sent the DAC80508 to the SDI pin being sent back out the SDO pin. Sending a read command of, say, the DEVID register (0x810000) returns the same on the SDO pin, 0x810000. Similar for any other register. Sending a write command exhibits the same behavior, with no change if I read the register out again following a write. The clock is slow, 2usec period, 20kHz.
Here is my test where I am just reading the DEVID register:

I assume this means that the chip is 'working' but for some reason is not reading or sending the data.
The one part I wasn't positive about from the timing diagram was the CS. It appears to go low during the high part of the clock pulse. I wasn't sure if that was necessary. I figured because it was sending the command identically back from SDO that this meant my timing was correct here.
This is the eval board, so it is the DAC80508ZRTET chip, which means the SDO pin should be output and not CLR
2. When I power the DAC80508 with a 5V power supply to VDO, some of the return bits on the SDO line are out of phase. Screenshot attached... I send it 0x040873 as a test and I see back 0x0411dc, which you can see from the scope shot looks like the final bits were read too quickly (ignore the small glitches, when I check those lines on the analog scope they are not present, just a crosstalk issue with the scope)
When I switch the power into VDO to 3.3V, this behavior goes away and the bits align correctly, returning the same 24 bit frame I sent on SDI back out on SDO on return regardless of it being a read or write

What might I be doing wrong here? What am I missing?





