智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 27905|回复: 54
打印 上一主题 下一主题

[讨论] K60 的 DMA 部分

  [复制链接]

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
跳转到指定楼层
1#
发表于 2013-2-16 11:45:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问一下野火的DMA驱动里面的一些问题吗,一直在看数据手册的DMA部分,全是英文,看的真的不是很懂,好多纠结。

    源地址和目的地址的区别是啥啊,当数据来临时是目的地址进行相应的增加吗?如果我的目的地址和源地址设定为0X0003,通道每次传输字节数为4个字节,那DMA转换结束后,目的地址是会变成0X007吗?
    主循环和副循环是怎么区分的呢?如果的我的主循环次数为3,那就上面的例子,是不是指总共会造成12个字节的传输呢,最后的目的地址和源地址是什么啊?
    当前和起始主循环次数是什么意思啊,为什么主循环结束后要恢复源地址呢?
    DMA总共有16个通道,一个通道用来采集编码器的脉冲个数,另一个用来保存ADC对8个传感器的直接采样值(也就是说没有检波电路,>20KHz进行采样,我是电磁组的),这两个交替工作,能实现吗?


   DMA_NBYTES_MLNO(CHn) =   DMA_NBYTES_MLNO_NBYTES(BYTEs); // 通道每次传输字节数,这里设置为BYTEs个字节。注:值为0表示传输4GB */


    DMA_CITER_ELINKNO(CHn)  = DMA_CITER_ELINKNO_CITER(count); //当前主循环次数
    DMA_BITER_ELINKNO(CHn)  = DMA_BITER_ELINKYES_BITER(count);//起始主循环次数

/* 配置 DMA 传输结束后的操作 */
    DMA_SLAST(CHn)      =   0;                              //调整  源地址的附加值,主循环结束后恢复  源地址
    DMA_DLAST_SGA(CHn)  =   (u32)( (cfg & 0x20) == 0 ? (-count)  : 0 ); //调整目的地址的附加值,主循环结束后恢复目的地址或者保持地址

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
2#
发表于 2013-2-16 12:29:21 | 只看该作者
不懂,昨天看到触发源那边就晕了,不知槽为何物
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
3#
 楼主| 发表于 2013-2-16 13:12:34 | 只看该作者
本帖最后由 yangkuanqaz8598 于 2013-2-16 13:32 编辑
suebillt 发表于 2013-2-16 12:29
不懂,昨天看到触发源那边就晕了,不知槽为何物


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
4#
 楼主| 发表于 2013-2-16 13:14:59 | 只看该作者
suebillt 发表于 2013-2-16 12:29
不懂,昨天看到触发源那边就晕了,不知槽为何物

不知道槽是不是可以理解为DMA需要采集数据的数据源呢.....槽是个很神奇的名词
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
5#
发表于 2013-2-16 13:23:17 | 只看该作者
yangkuanqaz8598 发表于 2013-2-16 13:14
不知道槽是不是可以理解为DMA需要采集数据的数据源呢.....槽是个很神奇的名词

DMA可以软件触发,也可以IO电平触发,我只是困惑exti那部分初始化的时候定义了IO的外部中断触发DMA,但是DMA初始化那边的触发源还需要选择,但是不知道source的值对应的是多少,我看到例程中的跟datasheet中不一样
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
6#
 楼主| 发表于 2013-2-16 13:30:36 | 只看该作者
suebillt 发表于 2013-2-16 13:23
DMA可以软件触发,也可以IO电平触发,我只是困惑exti那部分初始化的时候定义了IO的外部中断触发DMA,但是 ...

楼上能不能给个例程附件看下勒,我这只有野火的DMA驱动,
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
7#
发表于 2013-2-16 13:40:49 | 只看该作者
yangkuanqaz8598 发表于 2013-2-16 13:30
楼上能不能给个例程附件看下勒,我这只有野火的DMA驱动,

我就是看的野火的,就是不知道PTB8 被宏定义在哪,找不到
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
619
威望
289
贡献
138
兑换币
184
注册时间
2012-12-13
在线时间
96 小时
8#
 楼主| 发表于 2013-2-16 14:01:37 | 只看该作者
suebillt 发表于 2013-2-16 13:40
我就是看的野火的,就是不知道PTB8 被宏定义在哪,找不到

PTB8啊,它在GPIO_CFG.H里面,是一个PTxn的枚举。
只不过这个触发源的配置看不懂,加上这source[5-0]是怎么对应触发源的,我找不到呢

/* 配置 DMA 触发源 */
    DMAMUX_CHCFG_REG(DMAMUX_BASE_PTR, CHn) = (0
            | DMAMUX_CHCFG_ENBL_MASK                        /* Enable routing of DMA request */
            //| DMAMUX_CHCFG_TRIG_MASK                        /* Trigger Mode: Periodic   PIT周期触发传输模式   通道1对应PIT1,必须使能PIT1,且配置相应的PIT定时触发 */
            | DMAMUX_CHCFG_SOURCE((ptxn >> 5) + DMA_Port_A) /* 通道触发传输源:     */

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
9#
发表于 2013-2-16 14:05:14 | 只看该作者
yangkuanqaz8598 发表于 2013-2-16 14:01
PTB8啊,它在GPIO_CFG.H里面,是一个PTxn的枚举。
只不过这个触发源的配置看不懂,加上这source[5-0]是怎 ...

英文资料太复杂,没看懂,刚刚看这个知道了通道源那部分

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

6

主题

782

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4804
威望
2424
贡献
1324
兑换币
1685
注册时间
2011-11-2
在线时间
528 小时
10#
发表于 2013-2-16 16:57:05 | 只看该作者
不懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 01:01 , Processed in 0.079422 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表