tag 标签: 摄像头测试板

相关博文
  • 热度 25
    2014-6-6 20:34
    2619 次阅读|
    3 个评论
            CYUSB3014支持8位、16位、32位数据传输,为了最大限度的利用USB3.0的带宽,可以选择32位数据总线。CYUSB3014共用GPIO是59个(也有说是61个),由于多个外设复用一个引脚,因此CYUSB3014的GPIO是相当复杂的。         在32位数据总线的SLAVE FIFO模式下,GPIO的分配如下: 1、数据总线32位,由GPIO +GPIO +GPIO 组成。 2、同步时钟PCLK,引脚是GPIO 。 3、控制信号线SLCS#,引脚是GPIO 。       控制信号线SLWR#,引脚是GPIO 。       控制信号线SLOE#,引脚是GPIO 。       控制信号线SLRD#,引脚是GPIO 。       控制信号线FLAGA,引脚是GPIO 。       控制信号线FLAGB,引脚是GPIO 。       控制信号线PKTEND#,引脚是GPIO 。       地址线A1,引脚是GPIO 。       地址线A0,引脚是GPIO 。         以上引脚共计是42个,59个余下的还有17个,除了一些专用引脚外(GPIO 启动方式引脚),其它的一些外设引脚可以当作GPIO,如GPIO 、GPIO 、GPIO I2S引脚、GPIO 串口引脚、GPIO I2S引脚、GPIO I2C引脚。这些引脚可以控制SENSOR的电源控制、复位控制等。         在软件上,有几个函数来完成对这些GPIO的控制。GPIO 是串口引脚,如果数据传输用不到串口,这几个引脚完全可以当普通IO来使用。第一个要使用的函数是status = CyU3PDeviceConfigureIOMatrix (io_cfg);这个函数是是分配GPIO的,由输入参数io_cfg来决定。输入参数的定义是            /* 53-56 GPIOs are enabled. */              io_cfg.gpioSimpleEn  = 0;              io_cfg.gpioSimpleEn  = 0x01E00000;              io_cfg.gpioComplexEn = 0;              io_cfg.gpioComplexEn = 0;         其中001E00000中的1是对GPIO的定义。         第二个要使用的函数是apiRetStatus = CyU3PGpioSetSimpleConfig(SESOR_RESET#, gpioConfig);输入参数定义如下:    /* Configure GPIO 56 as output(SESOR_RESET#) */     gpioConfig.outValue    = CyFalse;     gpioConfig.inputEn     = CyFalse;     gpioConfig.driveLowEn  = CyTrue;     gpioConfig.driveHighEn = CyTrue;     gpioConfig.intrMode    = CY_U3P_GPIO_NO_INTR;           经过以上两个函数,就可以正常控制GPIO了,作用就是 SESOR_RESET#。 设置SESOR_RESET#为高电平,如下 apiRetStatus = CyU3PGpioSetValue (SESOR_RESET#, CyTrue);   设置SESOR_RESET#为低电平,如下 apiRetStatus = CyU3PGpioSetValue (SESOR_RESET#, CyFalse);     (另公布一群号333917885 ,SPARTAN6开发专业讨论区。)     淘宝店铺: http://liangziusb.taobao.com 良子.2014年    承接USB开发工程  USB毕设指导 QQ:1345482533