原创 USB3.0芯片终于出来了(47)_用I2C总线配置摄像头MT9J001

2014-6-6 10:32 2927 18 19 分类: MCU/ 嵌入式 文集: USB3.0芯片终于出来了

 

        CYPRESS近日更新了USB3.0开发包,版本号由1.23升级到了1.3,变化还是不小的。现在CYPRESS公司共有三种USB3.0的芯片(不含西桥芯片Benicia),分别是FX3、FX3S、CX3,开发包从1.3开始,开始全面支持这三类芯片了。不过,现在可以应用的还是FX3,其余的两种官方还在测试当中。

        I2C通信理论上比较简单,含有I2C模块的芯片也较多,对搞电子 的人来说,都应该不陌生。从USB2.0的芯片开始,CYPRESS的USB芯片就已经含有I2C模块了。软件上,CYPRESS也提供了API函数,供开发者调用。在前面提到 的例程UsbI2cRegMode中,就含有对API函数的说明。

        在库文件cyu3i2c.h中,列出了所有关于I2C通信的函数,文件前面是关于I2C通信用的数据类型定义,其后是I2C通信的实现函数,加在一起共有十几个,并不算多。其中有一个最主要的函数是CyU3PI2cTransmitBytes(),用来向I2C从设备写入一个或者多个字节的数据,其函数原型为:

 

extern CyU3PReturnStatus_t
CyU3PI2cTransmitBytes
       (
                    CyU3PI2cPreamble_t *preamble,   /**相关的数据结构,包括从设备地址及                                  
                                                                                       读 写等信息。 */
                    uint8_t *data,                        /**< 数据地址. */
                    uint32_t byteCount,             /**< 数据个数. */
                    uint32_t retryCount             /**< Number of times to retry request in case of a    
                                                                    slave NAK response. */
        );

        其中第一个参数CyU3PI2cPreamble_t ,定义如下:

typedef struct CyU3PI2cPreamble_t
{
    uint8_t  buffer[8];         /**< 第一个字节是设备地址(含读写位),第二、三个字节是寄存器地址等信息 */
    uint8_t  length;            /**共计字节数. */
    uint16_t ctrlMask;          /**< This field controls the start stop condition after every byte of */

} CyU3PI2cPreamble_t;       

        在美光的SENSOR中,从设备地址是一个字节,寄存器的地址是2个字节,对寄存器的赋值也是2 个字节,因此有必要重新封装一个函数,来实现对一个寄存器进行更新,如下:

 

/* Write to an I2C slave with two bytes of data. */
CyU3PReturnStatus_t SensorWrite2B
(
            uint8_t slaveAddr,      /*  设备地址*/
            uint8_t highAddr,        /*  寄存器地址高字节*/
            uint8_t lowAddr,          /*  设备地址*/
            uint8_t highData,        /*  设备地址*/
            uint8_t lowData          /*  设备地址*/

 

 

正在更新,,,,,,,,,,,,,,

 

近期文章:

1、毫威摄像头传感器OV5620简介

2、用USB3.0开发板驱动毫威摄像头传感器OV5620

3、测试USB3.0速度的几个固件例程

 

(另公布一群号178338109,CYUSB3014开发专业讨论区。)

 

 

我的博客:http://bbs.ednchina.com/BLOG_liangziusb_440752.HTM

淘宝店铺:http://shop64171919.taobao.com

良子.2013年    承接USB开发工程  USB毕设指导

QQ:2687652834

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2014-3-3 16:14

请问:EP0控制配置I2C过程中,采用GPIF II接口经EP8完成图像数据的接收,完成后,可以正常接收图像数据,但是I2C配置无法正常完成,该如何采用合理设计。
相关推荐阅读
liangziusb_940932268 2016-06-30 21:33
最新的良子USB2.0开发板3_AD7980数据采集开发2
      接上一篇。            这一篇介绍FPGA驱动单个AD7980的开发过程,驱动多个AD7980的级联模式可以查阅后面的帖子。单个AD7980的驱动时序图如下:   ...
liangziusb_940932268 2016-06-30 20:41
最新的良子USB2.0开发板2_AD7980数据采集开发1
     USB2.0开发板已经调试完毕了,板子上的各个芯片都编写了测试例程,例程有10个左右,和之前的USB2.0开发板例程差不多。除了上一篇介绍的配套的双摄像头子板,另外还设计了MT9M001...
liangziusb_940932268 2016-05-22 13:42
CYUSB3065开发板调试过程4_测试开发板的三种启动过程
        CYUSB3065的开发板已经调试完毕,很快就会在淘宝上架。利用这段时间,整理一下如何测试CYUSB3065开发板。开发板上设置了两种非易失性的存储器,一个是I2C接口的EEPRO...
liangziusb_940932268 2016-04-17 09:49
最新的良子USB2.0开发板1_电路板介绍
     近日在设计双摄像头的开发板,已经接近结束。这块电路板的结构还是采用FPGA+SDRAM+USB2.0的,没有太大的变化,因为这种电路结构是最优的,非常适合做数据采集和图像采集之用。之前的US...
liangziusb_940932268 2016-03-02 21:05
良子USB2.0摄像头开发板19_电路板升级
      近日升级了USB2.0摄像头开发板,现在的版本号是1.4。此外,又额外增加了几种摄像头。开发板如下,摄像头是200万像素的MT9D001,没有安装镜头:   配300万像...
liangziusb_940932268 2016-02-29 18:50
200万像素摄像头AR0237开发1
      APTINA目前发布了200万像素的CMOS芯片AR0237CS,像素阵列大小为1928 (H) x1088 (V),是一棵标准的1080@60芯片。AR0237CS支持两种输出模式,...
我要评论
1
18
关闭 站长推荐上一条 /3 下一条