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

6747 uart dma 发送

DMA方式发送中,每次发送的字节都不大于16-byte,如何采用dma方式发送大于16-byte的数据,求解?

Shine:

可以看一下OMAP-L138 starterware中的uart-edma例程:OMAPL138_StarterWare_1_10_03_03\examples\evmOMAPL138\uart_edmahttp://www.ti.com/tool/starterware-dsparm

ka ka:

回复 Shine:

非常感谢,DMA的OPT选项我没有设置好,现在可以发送了,只是发送的时候第一个字节总是发送两遍,而且更新完程序的时候需要复位一下,才可以发送,还没有找到那里设置有问题

ka ka:

回复 Shine:

多谢shine的回复,现在可以发送大于16字节的数据了,还有一个问题是,我把uart配置成dma的事件发送,第一次的时候可以发送,没有问题,但是后面就无法发送了,程序如下:

dma和uart配置完成

EDMA3_Uart0TX(addr,256); EDMA3_SECR = (1<<9);

EDMA3_Uart0TX(addr,256);

第一个可以发送出去,第二个发送不了

Shine:

回复 ka ka:

你之前不是可以发送的吗? 改了什么地方?

看一下EDMA EER, ER寄存器有没有置1?  UART FCR寄存器DMAMODE1有没有使能?

ka ka:

回复 Shine:

没有改别的地方,DMA也使能了。是这样的,复位以后的第一次发送可以完成,然后SER寄存器会置位,后面的发送就不成功。你帮我看看怎么回事,我现在在每次发送之前先把SER和EMR对应位清除,再通过PWREMU_MGMT的14位复位用来产生一次UTXEVT,这样的话倒是可以。可是例程里面并没有这个复位,不知道是哪里的问题,困惑!

Shine:

回复 ka ka:

看一下EDMA EER, ER寄存器有没有置1, TX event有没有产生?  UART FCR寄存器DMAMODE1有没有使能?

qi smith:

您好,我最近在调试6747的串口DMA传输,但是却出现了发出来的数据是00 00的问题。我已经研究了一段时间,但是百思不得其解。想向您请教一下。 在调试时发现SER和EMR寄存器在传输完成之后均被置位,就我看芯片手册的理解看来,这种情况不应该出现的,想向您请教一下原因。期待您的答复。 还有就是问一下,您的程序方便发我一下参考一下吗?

tangdaowan:

回复 Shine:

您好,我想通过6747的UART定时的接收约50字节的数据进行处理,6747UART的FIFO只有16字节,这是说我只能在16字节以内设置门限触发中断,有没有方法可以一次接收完所有字节后触发cpu中断,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 6747 uart dma 发送
分享到: 更多 (0)