打印

两个参数不是很明白

[复制链接]
360|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stly|  楼主 | 2017-9-3 16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DMA, DM, rc, RS, ST
看DMA的数据手册的时候看到两个参数不是很明白,有点混淆,请高手指点明津,Burst count和Transfer count,谢谢了!
沙发
stly|  楼主 | 2017-9-3 16:24 | 只看该作者
我看到手册里的这么一句话“For example, if you want to move 100 bytes of data from a 16-bit peripheral to a memory buffer, the burst count is set to 2 and transfer count is set to 100.”为什么要把“burst count ”设置为“2”呢?

使用特权

评论回复
板凳
dingy| | 2017-9-3 16:26 | 只看该作者
因为要传16-bit data啊, 一个burst 8-bit.

使用特权

评论回复
地板
stly|  楼主 | 2017-9-3 16:28 | 只看该作者

这些天光看DMA,就是这两个参数搞的不是很明白。“burst count ”可以根据要传输的数据的大小随意设置吗?

使用特权

评论回复
5
pengf| | 2017-9-3 16:30 | 只看该作者
什么意思

使用特权

评论回复
6
stly|  楼主 | 2017-9-3 16:32 | 只看该作者
比如传输一位的数据,就可以设置为“1”,16位的数据可以设置成“8”,可以设置成“16”吗?

使用特权

评论回复
7
renyaq| | 2017-9-3 16:33 | 只看该作者
没关注过。。。

使用特权

评论回复
8
stly|  楼主 | 2017-9-3 16:36 | 只看该作者
哦,水知道"Burst count和Transfer count"是什么关系啊

使用特权

评论回复
9
supernan| | 2017-9-3 16:37 | 只看该作者

举一个例子来理解, DMA 的常规应用之一是将 ADC 的转换结果传送到 SRAM(某个数组), 假设我们的 DelSig ADC 的分辨率设为 16bit, 现在想用 DMA 将 100 个 ADC 转换结果(16bits = 2 bytes) 传送到内存数组 uint16 Array[100].
DMA 要完成上述操作, 一个方法就是每次从 ADC 的结果寄存器读取 2bytes 的转换结果传送到内存, 一共传送 100 次。 在这种配置下,我们就需要将 Burst count 设为 2(代表 DMA 一次传送的字节数, 这里 ADC 的转换结果是 2bytes, 所以应该设为 2); Transfer count 设为 200 (代表 DMA 这个 TD 一共传送的 数据量总数 100 * 2bytes = 200 bytes, 所以应设为 200)

使用特权

评论回复
10
houcs| | 2017-9-3 16:57 | 只看该作者
解答了我一直的问题、

使用特权

评论回复
11
xxrs| | 2017-9-3 17:38 | 只看该作者

我想追问个问题、关于那个SRAM的destination是怎么设置的、是可以设置一个uint8的变量,然后直接将想存储的0x..的地址赋给变量、这样么、还有就是如果想将SRAM的数据在通过UART读取、是有UART的什么API函数么、THX

使用特权

评论回复
12
liuzaiy| | 2017-9-3 18:00 | 只看该作者
第一个理解是对的,就是定义一个变量,然后直接存储。 怎样用UART读变量的值,可以参照UART example project, Creator > File > Example Project.

使用特权

评论回复
13
stly|  楼主 | 2017-9-3 18:04 | 只看该作者
楼上大神 膜拜ing

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝