硬汉嵌入式论坛

 找回密码
 立即注册
查看: 444|回复: 3
收起左侧

[DMA] 大佬们,关于DMA的FIFO和突发模式我还不太明白,我现在的理解有什么问题吗

[复制链接]

4

主题

6

回帖

18

积分

新手上路

积分
18
发表于 2024-2-21 20:09:15 | 显示全部楼层 |阅读模式
本帖最后由 WenShan 于 2024-2-22 12:06 编辑

①直接模式和使能FIFO两个是相对的?
   直接模式就是不使能FIFO是吗。直接模式就是fifo里面进一个数据就出一个是吗,所以要求进出两边的数据宽度要一样是吗
图1
  使能了FIFO之后,如果这里突发设置成第一个之后,就和直接模式差不太多是吗?





②普通模式和循环模式
   普通模式就是接收一个请求之后就发送一次数据,如果接收到了第二个请求也不会发送数据的意思吗?循环模式就是接收一次请求就发送一次数据,没有次数限制是吗。然后我去翻hal库,发现里面有个DMA_PFCTRL模式,不太清楚是干什么用的。




③这里的datalength实际上不是数据长度,而是类似于发送数据的次数的意思是吗
图2
就比如说如果msize和psize都是word四字节,datalength设置为4,就是实际发送了十六字节是吗


④单次传输和突发传输
图3
    一般情况下,是DMA要发送一次数据就会去总线那边请求一次,如果要发四个数据就请求四次是吗?突发传输的一次就是只去总线那边请求一次,然后一次把要发的数据发完是吗?然后发数据的个数和pburst里面设置的突发大小有关是吗。


⑤突发传输要使能FIFO,突发传输是要怎么触发啊?是就只看FIFO里面设置的阈值吗?
    就比如我msize设置的字节,然后阈值设置的一半,fifo里面灌到一半就自己触发突发传输吗?
    还有就是突发传输msize是字节,设置的满,INCR4,8,16之间的区别不太理解。一次16节拍,两次8节拍和四次4节拍之间的差别就是一次16节拍的突发中间一只占着总线,四次4节拍中间释放过总线是吗?
    还有就是DMA怎么往fifo里面灌的数据,是用户不用太管是吗,外设和内存里面都自己硬件弄好了是吗,这个灌的速度用户可以改吗?






补:我在看视频时候一直不知道datalength指的是啥,然后去翻hal库的时候发现他就是DMA_SxNDTR要设置的值,我看硬汉老哥和安富莱手册上面好像没有特别讲这两个,我翻手册时候看到里面写了这个,就贴过来了
图4
    DMA这块的东西我翻来翻去怎么着也弄不太明白,原来没怎么学过这块,没啥基础,看了视频和v7手册之后感觉还有不少地方不太理解,希望大佬们能帮我下
   

图1

图1

图2

图2

图3

图3

图4

图4
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-2-22 09:03:56 | 显示全部楼层
楼主方便的时候,把图片单独上传下,我们论坛有bug,复制i粘贴的不行。
回复

使用道具 举报

4

主题

6

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-2-22 12:07:37 | 显示全部楼层
eric2013 发表于 2024-2-22 09:03
楼主方便的时候,把图片单独上传下,我们论坛有bug,复制i粘贴的不行。

老哥我重新上传了,我不知道这块我哪里理解的有问题,可以把我理解有问题的地方和我说说吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-2-22 15:04:52 | 显示全部楼层
1、对,效果差不多。
2、有次数限制,通用DMA是65535次。
3、对
4、突发传输是一次请求,连续传输的次数。
5、节拍就是DMA的一次数据传输,比如8个节拍的一次突发就是指:一次突发,连续传输8次数据。
突发传输和FIFO的配合是DMA自动完成的,也就是这个表格支持的配置选项,禁止的方式,切勿配置。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 05:36 , Processed in 0.202765 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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