打印
[DSP编程]

dm642 VP1口采集raw数据FIFO地址到底是哪?

[复制链接]
2333|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

FIFO地址是从0x78000000开始的,但是手册上又说AB通道共用5120字节缓存空间,这5120字节地址到底是哪里?DM642采集RAW8位数据应该放在哪?
如果放到0x78000000,那么占几个字节,还有设置DMA门限值时,大小是0到0x3ff,这个值明显超过0x78000000 - 0x78000010范围,只能是在5120字节那里存储。

相关帖子

沙发
zhangmangui| | 2014-8-31 23:52 | 只看该作者
从你贴出的书上看  是没有FIFO的指定的

使用特权

评论回复
板凳
匿名  2014-9-1 00:16
去百度查下!

使用特权

评论回复
地板
九方卧虫|  楼主 | 2014-9-1 08:04 | 只看该作者
zhangmangui 发表于 2014-8-31 23:52
从你贴出的书上看  是没有FIFO的指定的

其他原版的英文资料也没有,都搜了一遍

使用特权

评论回复
5
九方卧虫|  楼主 | 2014-9-1 08:05 | 只看该作者
匿名者 发表于 2014-9-1 00:16
去百度查下!

百度要是能查到我还会提问?

使用特权

评论回复
6
zhangmangui| | 2014-9-1 22:23 | 只看该作者
九方卧虫 发表于 2014-9-1 08:04
其他原版的英文资料也没有,都搜了一遍

简单找了一下      


你关心的地址也没有看到

使用特权

评论回复
7
九方卧虫|  楼主 | 2014-9-2 18:31 | 只看该作者
zhangmangui 发表于 2014-9-1 22:23
简单找了一下      

那RAW视频数据应该放到哪呢?5120字节缓存空间还是0x78000000 Y信号的FIFO?

使用特权

评论回复
8
edishen| | 2014-9-2 20:25 | 只看该作者
帮忙顶一下 希望快点解决

使用特权

评论回复
9
背着氧气的鱼| | 2014-9-3 12:24 | 只看该作者
感觉你对fifo的理解出错了,地址就是那几个地址,dma就是从那个固定地址读取数据的。

使用特权

评论回复
10
九方卧虫|  楼主 | 2014-9-4 18:37 | 只看该作者
背着氧气的鱼 发表于 2014-9-3 12:24
感觉你对fifo的理解出错了,地址就是那几个地址,dma就是从那个固定地址读取数据的。 ...

你的意思是那个地址对应的空间不是1个字节吗?而是很多吗(加起来等于5120字节)?我想直接把采到的数据读出来分析下,又不会用DMA(地址搞不清楚)。应该看哪里?

使用特权

评论回复
11
九方卧虫|  楼主 | 2014-9-13 09:30 | 只看该作者

使用特权

评论回复
12
背着氧气的鱼| | 2014-9-14 13:50 | 只看该作者
DMA的源地址就一个,DMA在达到触发门限之后就从这个源地址进行数据的搬移,这个地方我觉得只能用DMA来做。

使用特权

评论回复
13
九方卧虫|  楼主 | 2014-9-14 22:07 | 只看该作者
背着氧气的鱼 发表于 2014-9-14 13:50
DMA的源地址就一个,DMA在达到触发门限之后就从这个源地址进行数据的搬移,这个地方我觉得只能用DMA来做。 ...

我感觉你没理解我的问题,DMA源地址是一个,可是这个地址的深度是多少?源地址找到了,那他后面的连续地址呢?如果该地址后面连续100个字节都是存放同一类数据,第101字节开始存放其他类型数据且禁止访问,而我DMA门限设置的200字节,这样搬运时不就出问题了吗?同理看一楼,摄像头的数据进入FIFO(0x78000000),后面只有8个字节是存放Y信号数据的,可是DMA门限却可以设置0x3ff大小,完全不匹配嘛

使用特权

评论回复
14
背着氧气的鱼| | 2014-9-16 19:01 | 只看该作者
这个fifo不是随机寻址的,虽然长度是5120,但他只提供一个指向fifo顶端的地址,通过对这个一个地址进行操作,来完成视频数据的读出和写入。
当这个fifo的数据量达到预先设置的门限时会触发DMA。

使用特权

评论回复
15
九方卧虫|  楼主 | 2014-9-19 11:18 | 只看该作者
背着氧气的鱼 发表于 2014-9-16 19:01
这个fifo不是随机寻址的,虽然长度是5120,但他只提供一个指向fifo顶端的地址,通过对这个一个地址进行操作 ...

“这个fifo不是随机寻址的”,什么意思?另外可不可以这样理解,这5120字节我只能找到或访问首地址,即0x78000000,而0x78000001(0x78000000后面随便找的一个小于5120的数)并不是在5120字节内。

使用特权

评论回复
16
背着氧气的鱼| | 2014-9-21 21:52 | 只看该作者
不是随机寻址的意思就是说,这个fifo只有一个地址,就是0x78000000。假设里面有10个数据,那么你读出一个,里面的数据就少一个。读10次才能读完。
在读取这个vp口fifo的数据的时候,DMA的设置应该是源地址不变,目的地址自增的方式进行。
你还是没有理解fifo。
单片机的串口fifo没接触过吗?

使用特权

评论回复
17
九方卧虫|  楼主 | 2014-9-22 10:39 | 只看该作者
背着氧气的鱼 发表于 2014-9-21 21:52
不是随机寻址的意思就是说,这个fifo只有一个地址,就是0x78000000。假设里面有10个数据,那么你读出一个, ...

我不明白的是,0x78000000就是一个地址,这个地址对应8个二进制位也就是一个字节,他怎么能一次存放10个数据?stm32单片机(入门学的)串口是把收到的数据存到一个特定寄存器,一次只能存一个字节,然后DMA或cup一次读走这个字节。上面画的图是我对一个地址居然能存放10(多个)个字节的想到的解决方法,应该是不对的。
要是下面这种情况我就理解了,地址0x78000000到0x78000000+5120是FIFO,0x78000000是队头,数据依次往下存,存到0x78000000+5120(队尾)存满,设置DMA门限比如100,当FIFO中有100个字节时一次性取走,然后后面的数据往前推。

使用特权

评论回复
18
背着氧气的鱼| | 2014-9-22 12:11 | 只看该作者
本帖最后由 背着氧气的鱼 于 2014-9-22 12:13 编辑

这一个地址只是fifo的顶端地址,只能存一个数。但你每读取完一个数之后,后面的数据是往前推的,不然怎么能称之为fifo呢?
“设置DMA门限比如100,当FIFO中有100个字节时一次性取走”
不是一次性取走的!而是在fifo中有100个数据的时候dma被触发开始搬运,要读取100次才能将这100个数据搬运完成。每读取一个数据,后面的数据就往前推,但是你还是只能读取fifo顶端的地址。也就是0x78000000这一个地址。
常用的单片机的串口是有fifo的,对用户来说串口的发送读取就是对一个特定的寄存器进行读写。这里为什么要用fifo进行缓存呢?!
因为,CPU的读写速度是远大于串口的发送接收速率的。就拿串口的发送来说。我要通过串口发送两个数据,如果没有fifo的情况下,CPU必须要等待第一个数据按照串口的波特率发送完成之后再发送第二个数据,这个是很慢的。而有fifo缓存的情形下,CPU就可以直接把两个数据快速的写到fifo中(就是你说的对特定寄存器的写入),数据在fifo中等待按照串口的波特率被送出。这样提高了cpu的效率。
这个VP口的fifo是一回事。你再好好把这硬件的fifo理解下。

使用特权

评论回复
19
九方卧虫|  楼主 | 2014-9-22 22:22 | 只看该作者
背着氧气的鱼 发表于 2014-9-22 12:11
这一个地址只是fifo的顶端地址,只能存一个数。但你每读取完一个数之后,后面的数据是往前推的,不然怎么能 ...

非常感谢鱼前辈的回答,硬件FIFO基本理解了,但是还有一个问题,0x78000000是顶端地址,那0x78000001、0x78000002、0x78000004、0x78000006中存放的数据是FIFO中的数据吗?

使用特权

评论回复
20
背着氧气的鱼| | 2014-9-23 11:52 | 只看该作者
不是fifo的数据。如果手册没有指明就是system Reserved

使用特权

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

本版积分规则

6

主题

31

帖子

0

粉丝