USB30开发笔记.docx

上传人:b****5 文档编号:8635565 上传时间:2023-02-01 格式:DOCX 页数:14 大小:1.50MB
下载 相关 举报
USB30开发笔记.docx_第1页
第1页 / 共14页
USB30开发笔记.docx_第2页
第2页 / 共14页
USB30开发笔记.docx_第3页
第3页 / 共14页
USB30开发笔记.docx_第4页
第4页 / 共14页
USB30开发笔记.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

USB30开发笔记.docx

《USB30开发笔记.docx》由会员分享,可在线阅读,更多相关《USB30开发笔记.docx(14页珍藏版)》请在冰豆网上搜索。

USB30开发笔记.docx

USB30开发笔记

20130819(周一)

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.CyU3PMemSet((uint8_t*)&io_cfg,0,sizeof(io_cfg));

io_cfg.isDQ32Bit=CyFalse;

io_cfg.useUart=CyTrue;

io_cfg.useI2C=CyFalse;

io_cfg.useI2S=CyFalse;

io_cfg.useSpi=CyFalse;

io_cfg.lppMode=CY_U3P_IO_MATRIX_LPP_UART_ONLY;

/*GPIO45isusedasinputpin.GPIO21isalsousedbutcannot

*beselectedhereasitispartoftheGPIFIOs(CTL4).Since

*thisIOisnotused,itcanbeoverriddentobecomeaGPIOby

*invokingtheCyU3PDeviceGpioOverridecall.*/

io_cfg.gpioSimpleEn[0]=0;

io_cfg.gpioSimpleEn[1]=0x00002000;/*GPIO45*/

io_cfg.gpioComplexEn[0]=0;

io_cfg.gpioComplexEn[1]=0;

status=CyU3PDeviceConfigureIOMatrix(&io_cfg);

15./*ConfigureGPIO45asinputwithinterruptenabledforbothedges*/

gpioConfig.outValue=CyTrue;

gpioConfig.inputEn=CyTrue;

gpioConfig.driveLowEn=CyFalse;

gpioConfig.driveHighEn=CyFalse;

gpioConfig.intrMode=CY_U3P_GPIO_INTR_BOTH_EDGE;

apiRetStatus=CyU3PGpioSetSimpleConfig(45,&gpioConfig);

16./*OverrideGPIO21asthispinisassociatedwithGPIFControlsignal.

*TheIOcannotbeselectedasGPIObyCyU3PDeviceConfigureIOMatrixcall

*asitispartoftheGPIFIOs.OverrideAPIcallmustbemadewith

*cautionasthiswillchangethefunctionalityofthepin.IftheIO

*lineisusedaspartofGPIFandisconnectedtosomeexternaldevice,

*thenthelinewillnolongerbehaveasaGPIFIO..HereCTL4lineis

*notusedandsoitissafetooverride.*/

apiRetStatus=CyU3PDeviceGpioOverride(21,CyTrue);

/*ConfigureGPIO21asoutput*/

gpioConfig.outValue=CyFalse;

gpioConfig.driveLowEn=CyTrue;

gpioConfig.driveHighEn=CyTrue;

gpioConfig.inputEn=CyFalse;

gpioConfig.intrMode=CY_U3P_GPIO_NO_INTR;

apiRetStatus=CyU3PGpioSetSimpleConfig(21,&gpioConfig);

17./*CallbackfuntionfortheDMAeventnotification*/

void

CyFxUartLpDmaCallback(

CyU3PDmaChannel*chHandle,/*HandletotheDMAchannel.*/

CyU3PDmaCbType_ttype,/*Callbacktype.*/

CyU3PDmaCBInput_t*input)/*Callbackstatus.*/

{

CyU3PReturnStatus_tstatus;

if(type==CY_U3P_DMA_CB_PROD_EVENT)

{

/*ThisisaproduceeventnotificationtotheCPU.Thisnotificationis

*receiveduponreceptionofeverybuffer.Thebufferwillnotbesent

*outunlessitisexplicitlycommitted.Thecallshallfailifthere

*isanyapplicationerror.*/

status=CyU3PDmaChannelCommitBuffer(chHandle,input->buffer_p.count,0);

if(status!

=CY_U3P_SUCCESS)

{

CyFxAppErrorHandler(status);

}

}

}

18.需要掌握的usb固件,有实现FIFO访问模式的数据传输例子

和实现vendorrequests到IIC访问的例子

和实现vendorrequests到GPIO模拟的SPI访问例子

20130901

1.今天开始测试直接在开发板上跑通上述三个案例。

2.首先是IICregistermode调试,固件非常完整,可以实现iic到eeprom的访问。

但是访问来自于CY_U3P_USB_VENDOR_RQT,这个指令需要上位控制界面发送出来。

/*Decodethefieldsfromthesetuprequest.*/

bReqType=(setupdat0&CY_U3P_USB_REQUEST_TYPE_MASK);

bType=(bReqType&CY_U3P_USB_TYPE_MASK);

bTarget=(bReqType&CY_U3P_USB_TARGET_MASK);

bRequest=((setupdat0&CY_U3P_USB_REQUEST_MASK)>>CY_U3P_USB_REQUEST_POS);

wValue=((setupdat0&CY_U3P_USB_VALUE_MASK)>>CY_U3P_USB_VALUE_POS);

wIndex=((setupdat1&CY_U3P_USB_INDEX_MASK)>>CY_U3P_USB_INDEX_POS);

wLength=((setupdat1&CY_U3P_USB_LENGTH_MASK)>>CY_U3P_USB_LENGTH_POS);

调试界面上,

bRequest=0xba,caseCY_FX_RQT_I2C_EEPROM_WRITE:

bRequest=0xbb,caseCY_FX_RQT_I2C_EEPROM_READ:

wValuei2cAddr=0xA0|((wValue&0x0007)<<1);,

CyFxUsbI2cTransfer(wIndex,i2cAddr,wLength,,wIndex=iicregisteraddress,16bit;

wLength=64,

3.然后是SPIGPIOregistermode,使用GPIO作为SPI管脚的模式。

bRequest=0xc2,CY_FX_RQT_SPI_FLASH_WRITE,

bRequest=0xc3,CY_FX_RQT_SPI_FLASH_READ,

bRequest=0xc4,CY_FX_RQT_SPI_FLASH_ERASE_POLL,

wValue在erase模式下(wValue)?

CyTrue:

CyFalse

wIndex=pageAddressforFLASH

经过测试,产生错误报告,应该是由于开发板上并不存在gpio口连接到了SPIflash上面。

故而改为SPIregistermode,使用CY3014指定的SPI口连接到flash芯片。

调试有反应,但是数据返回错误,重新返回详读flash操作手册。

flash的写入需要首先进行erase,然后才可以进行写入。

这是器件的物理特性决定的,所有调试的时候也是要先erase该sector。

4.接下来需要调试的是bulk数据传输模式。

5.FlagA和FlagB的意思

做一个FPGA到PPort的最简单的写入逻辑,

if(~flag_a)n_sl_wr<=0;

6.官方给出的cmos直接到GPIF的状态机:

USBvideoclass(又称为USBvideodeviceclassorUVC)就是USBdeviceclass图像产品在不需要安装任何的驱动程序下即插即用,包括摄像头、数字摄影机、模拟图像转换器、电视卡(英语:

TVtunercard)及静态图像相机(英语:

Stillcamera)。

TotestyourUVCimplementation,youcanusethefollowingtools:

∙GraphEdit

∙KsStudio

∙USBView

1.

2.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1