作者sherry470 (sherry)
看板Electronics
标题[问题] FPGA影像存取问题(verilog)
时间Tue Mar 6 11:50:35 2018
大家好,目前我在学习用FPGA搭配MT9P001影像感测器做影像处理
但在最基本的获取正确影像这部分就碰到了问题
试了好久一直无法解决,所以想上来请教大家
目前系统架构是用FPGA对MT9P001进行I2C暂存器设定
得到的影像会存进FPGA上的SRAM,再以RS232传送给电脑
目前得到的影像是这个样子
https://imgur.com/HKsYzOB.jpg
我使用的是鱼眼镜头,会有桶状畸变的问题
桶状畸变在底部应该是下凹的形状
但我得到的影像却是全部上凸,像是只得到了一部分的正确影像
但像素的个数是正确的(640*480)
後来调整I2C暂存器设定(只调整了PLL的参数)得到以下这张图
https://imgur.com/Bcq1tmG.jpg
放大看
https://imgur.com/nnc1Wab.jpg
这张图畸变的样子正确了,可是整整有49个在一张影像里啊QQ
黄色箭头是第一张图里亮亮的那条线
也可以看出第一张图拍到的范围有多小...
想请问有没有人也曾经遇过类似问题呢
已检查过SRAM存值读值和RS232传输的部分都是正确的
但不确定是I2C设定出了问题还是我程式码(verilog)出问题
抱歉叙述有点长,先谢谢各位了!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.39.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1520308237.A.EDB.html
1F:→ furio: Image sensor跑的比RAM写入速度快,你的sensor跟ram write 03/06 14:39
2F:→ furio: 跑非同步? 03/06 14:39
3F:→ furio: MT9P001这等级的sensor应该没有内建几何失真调整功能 03/06 14:42
我是用FPGA本身的system clock(40MHz)经过PLL建立2个时脉
20MHz给MT9P001,80MHz给SRAM(存取时间最快可以到10ns)
想说用PLL应该是能保持相位同步
MT9P001的确没有内建校正功能,校正是想要用软体写的
只是现在还没能得到正确的影像
https://imgur.com/nvnBGHp.jpg
上面是简易画的方块图,目前觉得最有可能有问题的地方
是由MT9P001得到的PIXCLK经过filter(内有两层D flip-flop)後变为20MHz
後来才发现PIXCLK是60MHz啊QQ
filter的clock给40MHz根本不够(I2C设定没检查好打开了PLL,一直以为同样是20MHz)
但60MHz太快了,所以目前有尝试过
1.关闭MT9P001的PLL,让EXTCLK=PIXCLK=20MHz
结果图片变成很像电视杂讯,完全看不出东西
2.不加filter,结果跟上面一样
反而60MHz变成20MHz的奇怪情况才照得出这篇文的第一张图(虽然还是错的)
请问有可能是这边出问题吗?
我会再检查一下我的时脉的,谢谢
※ 编辑: sherry470 (140.116.39.184), 03/06/2018 17:04:39
4F:→ furio: 你的PIXCLK要对上SRAM写入频率跟时序规格 03/06 17:19
5F:→ furio: 另外,SRAM写入要确认它是几个clock写入一笔资料 03/06 17:21