打印

PSOC,DMA

[复制链接]
7146|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DMA, PSOC, rc, RS, ST
看DMA的数据手册的时候看到两个参数不是很明白,有点混淆,请高手指点明津,Burst count和Transfer count,谢谢了!
沙发
gongche| | 2012-6-7 20:21 | 只看该作者
没遇到过,帮顶吧

使用特权

评论回复
板凳
tian111|  楼主 | 2012-6-7 20:23 | 只看该作者
我看到手册里的这么一句话“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”呢?

使用特权

评论回复
地板
huanghuac| | 2012-6-7 20:26 | 只看该作者
因为要传16-bit data啊, 一个burst 8-bit.

使用特权

评论回复
5
tian111|  楼主 | 2012-6-7 20:28 | 只看该作者
这些天光看DMA,就是这两个参数搞的不是很明白。“burst count ”可以根据要传输的数据的大小随意设置吗?

使用特权

评论回复
6
wenfen| | 2012-6-7 20:30 | 只看该作者
什么意思

使用特权

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

使用特权

评论回复
8
wenfen| | 2012-6-7 20:33 | 只看该作者
没关注过。。。

使用特权

评论回复
9
tian111|  楼主 | 2012-6-7 20:35 | 只看该作者
哦,水知道"Burst count和Transfer count"是什么关系啊

使用特权

评论回复
10
PSoC小子| | 2012-6-7 22:58 | 只看该作者
举一个例子来理解, 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)

使用特权

评论回复
11
PSoC小子| | 2012-6-7 23:06 | 只看该作者

使用特权

评论回复
12
tian111|  楼主 | 2012-6-7 23:38 | 只看该作者
多写楼上详细的解答~~~

使用特权

评论回复
13
tian111|  楼主 | 2012-6-7 23:38 | 只看该作者
要是是中文的图标就更好了,哈哈,开玩笑滴^_^

使用特权

评论回复
14
PSoC小子| | 2012-6-8 00:17 | 只看该作者
我想写中文来着,可我的XP系统是英文版的,可能没装中文字库,打出来都是乱码。

使用特权

评论回复
15
liudianlingliu| | 2012-6-8 15:44 | 只看该作者
111111111111111

使用特权

评论回复
16
Go_PSoC| | 2012-6-9 21:40 | 只看该作者
图配文,很清晰

使用特权

评论回复
17
fengyiyong| | 2013-12-1 19:34 | 只看该作者
PSoC小子 发表于 2012-6-7 22:58
举一个例子来理解, DMA 的常规应用之一是将 ADC 的转换结果传送到 SRAM(某个数组), 假设我们的 DelSig A ...

解答了我一直的问题、

使用特权

评论回复
18
fengyiyong| | 2013-12-1 20:19 | 只看该作者
PSoC小子 发表于 2012-6-7 23:06

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

使用特权

评论回复
19
jxin| | 2013-12-4 15:14 | 只看该作者
fengyiyong 发表于 2013-12-1 20:19
我想追问个问题、关于那个SRAM的destination是怎么设置的、是可以设置一个uint8的变量,然后直接将想存储 ...

第一个理解是对的,就是定义一个变量,然后直接存储。 怎样用UART读变量的值,可以参照UART example project, Creator > File > Example Project.

使用特权

评论回复
20
yangguangaisha| | 2013-12-21 12:16 | 只看该作者
楼上大神 膜拜ing

使用特权

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

本版积分规则

797

主题

8878

帖子

7

粉丝