CYUSB3014支持8位、16位、32位数据传输,为了最大限度的利用USB3.0的带宽,可以选择32位数据总线。CYUSB3014共用GPIO是59个(也有说是61个),由于多个外设复用一个引脚,因此CYUSB3014的GPIO是相当复杂的。
在32位数据总线的SLAVE FIFO模式下,GPIO的分配如下:
1、数据总线32位,由GPIO[0-15]+GPIO[33-44]+GPIO[46-49]组成。
2、同步时钟PCLK,引脚是GPIO[16]。
3、控制信号线SLCS#,引脚是GPIO[17]。
控制信号线SLWR#,引脚是GPIO[18]。
控制信号线SLOE#,引脚是GPIO[19]。
控制信号线SLRD#,引脚是GPIO[20]。
控制信号线FLAGA,引脚是GPIO[21]。
控制信号线FLAGB,引脚是GPIO[22]。
控制信号线PKTEND#,引脚是GPIO[24]。
地址线A1,引脚是GPIO[28]。
地址线A0,引脚是GPIO[29]。
以上引脚共计是42个,59个余下的还有17个,除了一些专用引脚外(GPIO[30-32]启动方式引脚),其它的一些外设引脚可以当作GPIO,如GPIO[23]、GPIO[45]、GPIO[50-52]I2S引脚、GPIO[53-56]串口引脚、GPIO[57]I2S引脚、GPIO[58-59]I2C引脚。这些引脚可以控制SENSOR的电源控制、复位控制等。
在软件上,有几个函数来完成对这些GPIO的控制。GPIO[53-56]是串口引脚,如果数据传输用不到串口,这几个引脚完全可以当普通IO来使用。第一个要使用的函数是status = CyU3PDeviceConfigureIOMatrix (&io_cfg);这个函数是是分配GPIO的,由输入参数io_cfg来决定。输入参数的定义是
/* 53-56 GPIOs are enabled. */
设置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
用户1289874 2014-7-4 12:03
tuyongfei_706464766 2014-6-13 13:35
用户377235 2014-6-6 01:31
支持你的研究,希望交流。