FX3/CX3 简介

news/2025/3/16 15:25:11/

FX3,CX3(Cyusb3014,cyusb3065等)是Cypress 公司集成了ARM9处理器的USB3.0外设控制器。
FX3 的并行和串行接口提供了与系统中其他设备的高速连接。
FX3设备在系统中的主要功能是在USB主机与外设(如摄像头或扫描仪)之间传输高带宽数据。强大的片上ARM9处理器使FX3能够进行访问数据流,并能高效地处理数据。在不要求FX3执行数据处理的系统中,ARM9固件仅初始化和管理USB和数据消耗/提供设备两个接口间的数据传输。
除了I2C、SPI、UART和I2S串行接口之外,FX3还有一个高度灵活的可编程接口,即第二代通用可编程接口(GPIF II)。通过可编程的GPIF II,FX3可以同各种设备(包括FPGA、图像传感器、ADC以及应用处理器)相连接。因此,在多种高性能USB 3.0应用中,FX3是一个优秀的控制器选择。

DMA
GPIF II是一种可编程的状态机,它所启用的灵活接口使用自己的高速时钟,完全独立于ARM9。

FX3集成了512 KB或256 KB的嵌入式SRAM(取决于所选择的设备型号),并支持四种启动代码的方法(USB、GPIF II、I2C或者SPI)。

CX3 = FX3 + MIPI(摄像头接口)
2. 程序流程:
main函数初始化时钟,IO口,
/* This is a non returnable call for initializing the RTOS kernel */
CyU3PKernelEntry ();
然后加入:
CyFxApplicationDefine()
此中创建IO线程,
–Thread: CyCx3UvcAppThread_Entry – CyCx3UvcApplnInit( usb_init;) CyCx3UvcApplnStart

low performance peripheral (LPP)
3 . GPIO settting

void
CyFxGpioInit (void)
{CyU3PGpioClock_t gpioClock;CyU3PGpioSimpleConfig_t gpioConfig;CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;/* Init the GPIO module */gpioClock.fastClkDiv = 2;gpioClock.slowClkDiv = 0;gpioClock.simpleDiv = CY_U3P_GPIO_SIMPLE_DIV_BY_2;gpioClock.clkSrc = CY_U3P_SYS_CLK;gpioClock.halfDiv = 0;apiRetStatus = CyU3PGpioInit(&gpioClock, CyFxGpioIntrCb);if (apiRetStatus != 0){/* Error Handling */CyU3PDebugPrint (4, "CyU3PGpioInit failed, error code = %d\n", apiRetStatus);CyFxAppErrorHandler(apiRetStatus);}/* Configure GPIO 45 as input with interrupt enabled for both edges */gpioConfig.outValue = CyTrue;gpioConfig.inputEn = CyTrue;gpioConfig.driveLowEn = CyFalse;gpioConfig.driveHighEn = CyFalse;gpioConfig.intrMode = CY_U3P_GPIO_INTR_BOTH_EDGE;apiRetStatus = CyU3PGpioSetSimpleConfig(45, &gpioConfig);if (apiRetStatus != CY_U3P_SUCCESS){/* Error handling */CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",apiRetStatus);CyFxAppErrorHandler(apiRetStatus);}/* Override GPIO 21 as this pin is associated with GPIF Control signal.* The IO cannot be selected as GPIO by CyU3PDeviceConfigureIOMatrix call* as it is part of the GPIF IOs. Override API call must be made with* caution as this will change the functionality of the pin. If the IO* line is used as part of GPIF and is connected to some external device,* then the line will no longer behave as a GPIF IO.. Here CTL4 line is* not used and so it is safe to override.  */apiRetStatus = CyU3PDeviceGpioOverride (21, CyTrue);if (apiRetStatus != 0){/* Error Handling */CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",apiRetStatus);CyFxAppErrorHandler(apiRetStatus);}/* Configure GPIO 21 as output */gpioConfig.outValue = CyFalse;gpioConfig.driveLowEn = CyTrue;gpioConfig.driveHighEn = CyTrue;gpioConfig.inputEn = CyFalse;gpioConfig.intrMode = CY_U3P_GPIO_NO_INTR;apiRetStatus = CyU3PGpioSetSimpleConfig(21, &gpioConfig);if (apiRetStatus != CY_U3P_SUCCESS){/* Error handling */CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",apiRetStatus);CyFxAppErrorHandler(apiRetStatus);}
}
   /* Wait for two seconds */CyU3PThreadSleep(2000);apiRetStatus = CyU3PGpioSetValue (21, CyFalse);

3 . Timer

static CyU3PTimer        mpuTimer;
static void mpuAppProgressTimer (uint32_t arg)
{CyU3PDebugPrint (4, "Timer test...\r\n");// CyU3PTimerStart (&mpuTimer);//one shot 1694line
}//  CyU3PTimerCreate (&mpuTimer, mpuAppProgressTimer, 0x00, TIMER_PERIOD, 1, CYU3P_AUTO_ACTIVATE);//thread.sleep(1);//  CyU3PTimerStart (&mpuTimer);

4 . cyu3error.h 错误返回值宏定义,类似GetLastError 中的返回值。


http://www.ppmy.cn/news/170105.html

相关文章

华硕飞行堡垒fx53vd无法安装377以上独显驱动

解决方法:升级bios 下载最新官方bios 。 https://www.asus.com.cn/Laptops/FX53VD/HelpDesk_BIOS/ 下载winflash用于安装bios。 https://dlsvr04.asus.com/pub/ASUS/nb/Apps_for_Win10/Winflash/Winflash_Win10_64_VER322.zip 运行winflash,选择“从…

FX3U_硬件接线

FX3U-32MT/ES-A 1> AC接线图2> 输入接线2.1> 输入外部接线;2.2> 接近开关_接线分析2.2.1> NPN型2.2.2> PNP型 3> 输出接线3.1> 晶体管输出 4> 通讯接线4.1> Mini-Din-8P 母头_引脚定义4.2> 与HMI连接 5> 参考资料 1> AC接线…

拆卡服务器芯片,千元级最新专业卡Quadro FX380详细拆解

【IT168评测中心.产品预览】今年3月底,NVIDIA发布了最新的Quadro 10代产品,造就了当前专业图形卡中的生力军。在这一代产品中,NVIDIA都以“8”命名,从最高端的Quadro FX5800到最底端的Quadro FX380,以示与之前7系列之间…

Windows 7装机必备 - 主流品牌驱动大集合

Windows 7装机必备 - 主流品牌驱动大集合 一直以来,经常看到有网友为了Windows 7的驱动搞得焦头烂额,此前早就想弄个Windows 7驱动集合,方便大家下载,但之前由于Windows 7还处于测试阶段,很多厂商都未提供有Windows 7的…

史上投入最大的618 哪家看点更足?

“今年淘宝天猫618是历史上最大投入的一届”“今年的京东618会是全行业投入力度最大的一次618”“今年苏宁易购618是家电3C新底价的一届”“拼多多百亿补贴打造史上最实惠618大促”。消费复苏背景下,各家卯足了劲,今年618将是年中消费潜力集中释放的“关…

Vue.js 的数据双向绑定实现原理

Vue.js 的数据双向绑定实现原理 Vue.js 是一款流行的前端框架,它采用了数据双向绑定的方式,让前端开发人员更加方便地管理数据和视图。在本文中,我们将深入探讨 Vue.js 的数据双向绑定实现原理,以及相关的代码示例。 数据双向绑定…

三星i9000 android 6.0,大神给力!七年前的三星i9000成功运行安卓7.0

IT之家1月23日消息,我们或许已经遗忘了三星在2010年6月发布的初代安卓旗舰GT-i9000,即第一代Galaxy S,在当年这款设备曾备受关注。令人吃惊的是,最近有国外大神将这款设备翻了出来,并且使其成功运行起了最新的Android …

三星手机和计算机如何连接打印机,三星打印机连接到电脑没反应怎么办

打印机在如今的生活当中已经成为了非常常见的办公设备,而且也可以这么说,现在的办公已经离不开打印机,有的人为了回家之后也能够更好的工作,在家里面也购买了三星打印机。那么在家里面使用三星打印机连接电脑,没有反应…