Hi
I have a question about DMA transfers when using McASP with multiple serializers on OMAP-L138. In my situation it looks like that:
- I have 8 serializers programmed as input and 8 programmed as output
- I'm transmitting/receiving 32 8-bit slots on every serializer
- so far the transmitters are looped back to receivers for debugging purposes
I thought I should set up DMA to transfer 32slots*1byte*8serializers ACNT bytes every AXEVT and receive the same amount on AREVT but it doesn't seem to work. When I simply set ACNT to 256 bytes XDMAERR and RDMAERR bits light up. Setting ACNT to 32 doesn't cause DMA errors, but I don't follow why is that. How should writing and reading from McASP DMA port look like in my situation? When I tell EDMA to transmit 256 bytes form address 0x11800000 does it write 32slots*1byte for serializer 1, 32slots*1byte from 0x11800020 for serialzer 2 and so on?
Also, what is the best way of triggering a different DMA transfer, let's say, once 5 AXEVT or AREVT events?
My McASP setting and status registers:
WFIFOCTL: 0
RFIFOCTL: 0
RMASK: ffffffff
RFMT: 30
AFSRCTL: 1003
ACLKRCTL: 20
AHCLKRCTL: 800b
RXTDM: ffffffff
RINTCTL: 0
RCLKCHK: 8ff0008
TXMASK: ffffffff
TXFMT: 30
AFSXCTL: 1002
ACLKXCTL: 60
AHCLKXCTL: 800b
TXTDM: ffffffff
XINTCTL: 0
XCLKCHK: 8ff0008
SRCTL[0]: 2
SRCTL[1]: 1
SRCTL[2]: 2
SRCTL[3]: 1
SRCTL[4]: 2
SRCTL[5]: 1
SRCTL[6]: 2
SRCTL[7]: 1
SRCTL[8]: 2
SRCTL[9]: 1
SRCTL[10]: 2
SRCTL[11]: 1
SRCTL[12]: 2
SRCTL[13]: 1
SRCTL[14]: 2
SRCTL[15]: 1
PFUNC: 0
PDIR: fc00aaaa
DLBCTL: 5
AMUTE: 0
XSTAT: 1d1
RSTAT: 1d0
GLBCTLR: 1f1f
GLBCTLX: 1f1f
Regards
Szymon