天嵌 ARM开发社区

 找回密码
 注册
查看: 2357|回复: 0

Uboot下的摄像头数据DMA速度和响应问题

[复制链接]
aapii 发表于 2013-7-26 10:42:57 | 显示全部楼层 |阅读模式
天嵌2416的板子,考虑任务单一,选择没上Linux,直接在uboot,bootm前进行展开DMA采集/中断和数据处理。DMA handshake,single,byte模式,摄像头RGB565输出,代码就是直接下到nandflash,uboot.bin.

摄像头用了OV7670模块,3.3v供电,没有fifo。用GPIO的G口->DMA1->SDRAM(DDR2)。目前是实验线路,数据带10~15cm链接,外加8cm杜邦线到逻辑分析仪。

DMA的理论基本时序如图:


2416的DMA时序XnXDACK 电平刚好相反,高电平有效,其他一致。

我这里DMA用外部请求信号,摄像头的AD数据输出时钟PCLK (下降沿),DMA时钟是系统的HCLK 133MHz

XSCLK:ARM的HCLK 133MHz
XnXDREQ:摄像头的AD数据输出时钟PCLK (下降沿输出数据)2.08MHz有丢数据,每行0~5个。
XnXDACK:高电平有效,下图标注了DmaAck。


问题描述:

理论上,8~10个DMA时钟周期就可以取8位数据,13MHz的摄像头PCLK没问题,但实际上我仅实现了1M而已,相当于128个周期。640*480动态图像稳定(每秒一帧),色彩有些偏差。上图是2M的频率,64分频,每行丢0~5byte数据。通过高频逻辑分析仪观察,XnXDACK响应时序正确,但是复位经常会迟7个XSCLK,严重的迟了30个XSCLK,在当前XnXDREQ高电平周期内来不及复位,只好在下一个周期复位,引发数据丢失。
摄像头频率越高丢数据越厉害。

推测:

1.一般认为是干扰, 数据带连接底板和摄像头10~15CM,外接杜邦线8CM到逻辑分析仪。没看到干扰大小引起图像有波动,没法判断。没做好接插板之前搞不定。

2.时序上看,最有可能的是总线忙,因为XnXDREQ先复位后只有总线申请才会迟滞XnXDACK。考虑SDRAM可能忙,我改用GPIO-DMA-LCD buffer,没有效果。总线时序观察方式有待研究。

3.GPIO响应速度,这个主要是datasheet上缺乏数据,按理不应该只有这点速度。

效果如下:


请问哪位仁兄可以做些指点,提供点经验参考,快没方向了。
想问天嵌的工程师,开发板uboot条件下,会有什么地方与DMA抢总线吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 01:57 , Processed in 1.037043 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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