MT9M001
1赞声明:改进代码源自CrazyBingo的VIP_Board Mini
淘宝链接http://item.taobao.com/item.htm?spm=a230r.1.14.19.2TD1rO&id=38171507897&ns=1#detail
最近已经出书啦!!!大伙没事去了解了解吧。。。
平台:Cyclone IV 、MT9M001、Cypress68013A
主要内容:9M001驱动 “根据现象解决问题”
同样根据之前的OV7725驱动改I2C代码,0V7725是8位的数据位,需要改成16位的数据位,即16-Bit Write/ Read Sequence 模式,很顺利ok改完没问题(个人觉得I2C_CLK是100KHz的)。初始化过程犯了一个贼“傻逼”的问题,请问:0x0280-1=?我=0x0279,煞笔煞笔!
结果出来就那么一瞬间,过程很重要。。。娓娓道来。。。
经过仔细阅读手册配置MT9M001 ,主要是配置分辨率640*480,手册说要写成odd number (奇数),于是我改成0x0279*0x01df 很显然是错的,因为“0x0279”。但是配制成0x0280*0x01eE0 图像是这样( \ 左上角到右下角倾斜的)这里图象显示是自左至右,由上至下的:
假设上位机显示控件是6*6(实际640*480)分辨率 ,而我送入7*7的数据分辨率。
我的数据1代表第一行数据,2代表第二行数据。。。。7代表第七行数据。
原始7*7数据:
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3
4 4 4 4 4 4 4
5 5 5 5 5 5 5
6 6 6 6 6 6 6
7 7 7 7 7 7 7
6*6显示之后:
1 1 1 1 1 1
1 2 2 2 2 2
2 2 3 3 3 3
3 3 3 4 4 4
4 4 4 4 5 5
5 5 5 5 5 6
6 6 6 6 6 6
7 7 7 7 7 7
这就得出了结论 :1、 图像向左倾斜=>每行数据发多了一个像素导致这样倾斜。
2、 图像从上至下移动=>场数据多了
9M001配制成0x0280*0x01E0根据手册也就是641*481的分辨率 , 用640*480显示肯定不对啊
后来顿悟0x0280-1=0x027F,最终配置为0x027F*01DF。整整两天时间,还好,好使了,还有就是细化了,比如Line、Frame时间。。。不多说,默认也可以。
配置错的不是一个列啊,差太多了,能好使么。。。
VGA、上位机是很严格的,差一个都不行!!!!!!
“根据现象解决问题”
--小伟--
--2014.9.23. 00:27--
