DMA channel 0 interrupt on 5402

Started by Eli September 16, 2001
Hello All.

A peculiar thing just happened to me (with a new DSK 5402).

What I did, was to read McBSP0 with DMA using auto-initialize. The
idea is to fill a buffer, and then go on to the next one. The
interrupt routine is supposed to alter the global registers, so the
data gets to a different buffer each time.

I'm sure I didn't invent the wheel here.

At first I used channel 0. The buffer was filled, but no interrupt
occured. I wrote 0x40 to IMR, and got stuck on an "IDLE 1". No
interrupt. (To the best documentation I have, bit #6 is DMAC0).

Just to toy a bit, I moved to DMA channel 4, wrote 0x1000 to IMR, and
suddenly it all works like a clockwork. (bit #12 is DMAC4).

Honestly, all I did was to change the DMA channel and IMR. And I'm
positive that the only change was a shift in the subaddresses to the
DMA registers. I didn't mess with that.

In fact, my problem is solved. But I still wonder: Does anyone have
any idea of how this magic happened?