TI中文支持网
TI专业的中文技术问题咨询交流网站

请教280025C LIN/SCI 模块启动 DMA的问题

使用280025C做一个产品,需要三个串口。SCI已被占用,所以将两个LIN配置为SCI使用。

由于LIN/SCI的多缓冲模式只有8级,又不够用,所以需要用LIN/SCI启动DMA进行传输。

采用C2000Ware_3_03_00_00中的示例 lin_ex3_sci_dma 进行修改。

该示例中是采用多缓冲模式的,需要修改为禁用多缓冲模式,但此时出错了。

原示例在我们自己做的板子上正常运行,但是,改为禁用多缓冲模式后,SCI不能启动DMA。

不知类似的问题有没有遇到过的,请各位高手各位大侠帮帮忙!

另外,发现TI手册中有错误,也害我不浅,分享一下,免得用这个芯片的人也走弯路。

在SPRUIN7中给出的LIN 寄存器地址是这样的:

而 driverlib 中定义的地址是这样的:

仔细一看,整整差了一倍!!!

发现此问题后,赶紧TI网站上找勘误表,没有找到!

请TI的大师们给个解释哈

我的程序95%是汇编写的,所以我需要从手册上得到寄存器的地址,按说明书编程后,什么动静都没有。。。

因此,才找到示例对比。发现地址问题后,LIN/SCI可以正常工作了,但是我编的程序不能启动DMA

便又运行示例,修改示例,才发现禁止多缓冲模式时,DMA不启动

不知是我哪里搞错了

求指点

Green Deng:

你好,不知道你的程序中具体修改的是哪些?
寄存器地址的问题我会向相关人员反馈确认一下.

BBF_ZHOU:

回复 Green Deng:

您好,感谢您的回复!

Lin_ex3_sci_dma 例程修改如下:

1.主程序定义:

2.DMA初始化函数 initDMA() 修改

3.Lin/sci 配置函数 configureSCIMode(void) 修改

4.运行结果:

5.观察LIN 的SCITD 和 SCIRD ,数据是一样的,都是 7FH,所以说,LIN/SCI工作是正常的。而DMACH6 的目标地址和源地址都没有激活,说明DMACH6

  没有接收到RX_DMA 信号。

6.观察LIN的SCISETINT 中的 SET_RX_DMA 和 SET_TX_DMA ,都为0.这部分没有修改,使用原版的示例程序也是一样

7.附上原版示例程序运行的结果:

   谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 请教280025C LIN/SCI 模块启动 DMA的问题
分享到: 更多 (0)