According to the AM5728 TRM, if I would like to send multiple SPI words in a single transfer without using the FIFO, I would need to manually have the CS line asserted in single channel mode. However, when I do this, the transfer does not take place - I don't see the CLK toggle on the oscilloscope when I write an SPI word to the TX register. When I disable single channel mode and don't have the CS forced, I can see the correct values being put onto the SPI bus - but only for a single word transfer. I'd like to have CS go low for multiple transfers. The following are the register settings of the SPI2 bus (using channel 0):
Register | Value | Notes |
MCSPI_MODULCTRL (0x4809 A128) | 0x1 | Only SINGLE bit set |
MCSPI_CH0CONF (0x4809 A12C) | 0x10F84 |
D0 is Rx, D1 is Tx, 32-bit SPI word, SPIEN manually driven low, SPI operating in both transmit and receive mode, 24 MHz clock, |
MCSPI_CH0CTRL | 0x1 | Channel 0 is enabled |
The mux modes and everything are already set for the appropriate pins along with the interface and functional clocks. A single transfer works fine when NOT in the SINGLE channel mode, but I can't get a transfer when in SINGLE mode with SPIEN manually asserted (I don't see clock or D1 toggling when I write data to MCSPI_TX0). What am I missing?
Thanks