TI中文支持网
TI专业的中文技术问题搜集分享网站

I2S的DMA同步事件

我使用的是I2S2,对应的同步通道是DMA1 的channel 0.对DMA的配置,源地址,目的地址,控制寄存器,同步事件寄存器都配好了,I2S在不使用DMA时,是正常工作的。现在的问题是,在使用DMA同步事件后,由于DMA中断时打开的,可以观测DMA中断是能触发的,但是中断后,观察到DMA没有传输数据,或者是传输的数据为零。看手册上说,DMA是传输完成后触发中断的。但是为啥没有数据传输呢?

Shine:

先试一下DMA程序能否搬移片上RAM里的数据?如果可以了,再在此基础上做修改。

另外,I2SINTMASK寄存器里的中断都先disable掉。

user5052112:

回复 Shine:

我做了个用DMA从DARAM搬移到SARAM的定时器同步事件,在不打开DMA中断的情况下,数据传输正常,是和定时器同步的。但是,打开DMA中断,问啥它不跳到DMA中断函数中去。

I2SINTMASK中的中断都关了,再打开的情况下,程序就跑飞了。在I2S这个程序中,DMA中断都能进去啊(虽说它没有搬数据)。但是在定时器同步事件中,DMA中断标志都置为1了,但是还不跳到中断去。

DMA1_CH0_TCRU

DMAIER

IER0 = 0x0100

INTM

这四个有关中断的都设置了。

赞(0)
未经允许不得转载:TI中文支持网 » I2S的DMA同步事件
分享到: 更多 (0)