adxiaowei

MT9M001

1
阅读(4699)

声明:改进代码源自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--