I have an Mcbsp configured to operate as an SPI in clock stop mode. I have one DMA channel configured to write to the Mcbsp transmitter using the transmit sync event, and another DMA channel configured to read the Mcbsp receiver using the receive sync event. I have the Mcbsp set to operate in the loopback mode to isolate it from the external device for this test. I am starting the DMA receive channel to receive the block of data, and starting the DMA transmit channel to transmit the block of data. I am using the following steps to start the transfer. 1. Set the DMA Receive sync event 2. Start the Receive DMA channel 3. Set the DMA Transmit sync event 4. Write a word to the Mcbsp transmit register 5. Wait for the transmitter to empty 6. Start the Transmit DMA channel With the DSP running at 60 MHz and slower this procedure works. At 80 MHz and faster, the first Transmit DMA word is missed by the receiver. Also, if I don't do step 5, the transmit DMA never starts. According to tech support, I shouldn't have to do #4 or #5. I'm using Rev 2.0 silicon. Has anyone had a similar problem? |
DMA-Mcbsp
Started by ●June 7, 2002