1 of 1 people found this helpful
Using a DMA with SPI is a great thing! (Love the PSoC!). What are you you using for your DMA drq? In order to get the SS line to go from active low to inactive high for each SPI transfer, you need to select "Enable TX Internal Interrupt" and then "Interrupt On SPI Idle" ONLY. The SPI idle flag occurs when ALL the SPI data in the SPI FIFO is sent. This will cause the SS line to go inactive high. Your DMA drq is attached to the tx_intterrupt with this interrupt only set.
All the other interrupt sources can cause the next SPI data to be loaded immediately so the SS line will remain active low.
thank you for your message.
my DMA drq is connected to the tx_interrupt pin with only "interrupt on tx fifo empty" checked.
I tried your configuration but my SS went high after each byte of data (DMA burst set to 1 byte).
This was fixed after changing the request_per_burst from 1 to 0. i found this on another forum (If the parameter REQUEST_PER_BURST is set to zero then the DMA will transfer number of bytes as specified by TD)
thank you for helping me in the right direction!