SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
When the DMA handler has completed its ‘N-2’ CBASS0 accesses read_count is assigned with ‘N-2‘.
Step | Register/Bit Field/Programming Model | Value |
---|---|---|
Start the channel | MCSPI_CHCTRL_0/1/2/3[0] EN | 1 |
Wait until channel_enable = TRUE | ||
Wait until read_count = TRUE | ||
Disable DMA read request | MCSPI_CHCONF_0/1/2/3[15] DMAR | 0 |
Wait until last_transfer = TRUE | ||
Wait for end of transfer | MCSPI_CHSTAT_0/1/2/3[2] EOT | =1 |
Stop the channel | MCSPI_CHCTRL_0/1/2/3[0] EN | 0 |
Wait until channel_enable = FALSE |
Step | Register/Bit Field/Programming Model | Value |
---|---|---|
Read MCSPI_IRQSTATUS | MCSPI_IRQSTATUS | 0x- |
Write MCSPI_IRQSTATUS to reset channel status bits | MCSPI_IRQSTATUS[channel i bits] | 0b1111 |
IF: RXx_FULL | ||
IF: read_count = N - 2 | ||
last_transfer = TRUE | ||
Wait until channel_enable = FALSE | ||
ENDIF | ||
IF: read_count < N | ||
Read the receiver register | MCSPI_RX_0/1/2/3 | 0x- |
Increment read_count +1 | ||
ENDIF | ||
ENDIF |