FX3/CX3 USB3.0
宇宙379
C/C++,VC++
展开
-
FX3/CX3 定时器
1 定义定时器static CyU3PTimer UvcTimer;2 初始化定时器CyU3PTimerCreate (&UvcTimer, UvcAppProgressTimer, 0x00, TIMER_PERIOD, 0, CYU3P_NO_ACTIVATE);参数1是定时器实例名; 参数2是定时器执行函数; 参数3: Parameter to be原创 2016-12-09 13:53:40 · 1750 阅读 · 0 评论 -
从0开始创建FX3工程之四 - I2C
添加i2c功能 1. 启动i2c功能#ifdef MY_I2C io_cfg.useI2C = CyTrue;#else io_cfg.useI2C = CyFalse;#endif初始化i2c模块#ifdef MY_I2CCyU3PReturnStatus_tMy_I2c_Init (void){ CyU3PI2cConfig_t i2cConf原创 2017-07-05 14:45:32 · 1364 阅读 · 0 评论 -
从0开始创建FX3工程之三 - GPIO
GPIO初始化,调用CyU3PGpioInit函数设置gpio模块的时钟以及回调函数。 复用的GPIO口需要调用CyU3PDeviceGpioOverride。 设置高低电平的函数为: CyU3PGpioSetValue (45, CyFalse);//低电平 CyU3PGpioSetValue (45, CyTrue);//高电平 代码如下:#ifdef MY_GPIO io_c原创 2017-07-05 14:06:13 · 2084 阅读 · 0 评论 -
RGB565 to gray
test pattern: solid color. { 0x4322,0x03},//B Gb R Gr all 0x03FF { 0x4323,0xFF}, 原始数据0x03FF,amcap软件显示的像素全为: RGB565 : RGB 0,124,248(0,01111100,11111000) raw原始数据: 00000011 11111111 需要转化为: 0,1原创 2017-04-17 09:49:40 · 3469 阅读 · 0 评论 -
FX3/CX3 简介
FX3,CX3, FX3是Cypress 公司的ARM9处理器。 FX3是一个集成了ARM9处理器的USB 3.0外设控制器。并行和串行接口提供了与系统中其他设备的高速连接。 FX3设备在系统中的主要功能是在USB主机与外设(如摄像头或扫描仪)之间传输高带宽数据。强大的片上ARM9处理器使FX3能够进行访问数据流,并能高效地处理数据。在不要求FX3执行数据处理的系统中,ARM9固件仅初始原创 2016-12-01 19:01:09 · 9085 阅读 · 0 评论 -
FX3/CX3 M25P40存储器读写
直接上代码: cycx3_M25P40.h/* * 保存imu数据到flash(M25P40)中 */#ifndef _INCLUDED_CYCX3_M25P40_H_#define _INCLUDED_CYCX3_M25P40_H_#include "cyu3types.h"#include "cyu3usbconst.h"#include "cyu3os.h"#inclu原创 2017-08-31 14:21:00 · 1329 阅读 · 0 评论 -
FX3/CX3 yuv/rgb输出修改
Camera sensor的格式输出修改(yuv,rgb等),可以通过修改usb描述符的GUID来实现。 AN75779等代码输出的格式默认都是yuy2,可以修改为rgb565等格式,如下: /* GUID, globally unique identifier used to identify streaming-encoding format: YUY2 */ //0原创 2017-08-31 14:12:44 · 1135 阅读 · 0 评论 -
uvc 协议分析
Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x64). Complements of www.perisoft.netDevice Length Phase Data Delta Cmd.Phase.Ofs(rep) Time原创 2017-02-22 18:25:41 · 8165 阅读 · 2 评论 -
uvc control
a1 82 00 04 00 03 08 00 bmRequestType 0xa1: GET_CUR,GET_MIN,GET_MAX,GET_RES,GET_INFO,GET_DEF bRequest: 0x82: GET_MIN 其他为:define UVC_RC_UNDEFINED 0x00define UVC_SET_CUR 0x01define原创 2017-02-20 17:38:29 · 3163 阅读 · 0 评论 -
色彩校正中的 gamma 值是什么?
https://www.zhihu.com/question/27467127转载 2017-09-06 16:16:46 · 1941 阅读 · 0 评论 -
从0开始创建FX3工程之五 - SPI
SPI 功能使能 #ifdef MY_SPI io_cfg.useSpi = CyTrue;#else io_cfg.useSpi = CyFalse;#endifSPI 初始化#ifdef MY_SPICyU3PReturnStatus_t my_spi_init(void){ CyU3PSpiConfig_t spiConfig; C原创 2017-07-05 15:04:58 · 899 阅读 · 0 评论 -
CONTROL OUT transfer failed with Error Code:997
curEndpt.TimeOut = 25000;success = curEndpt.XferData(ref buf, ref len);if (success){ OutputBox.Text += stat + " Write Success"; BuildDataCaption(); DisplayXferData(buf, len, true); Out原创 2017-09-13 11:18:50 · 3206 阅读 · 0 评论 -
FX3/CX3 模拟i2c
void delay(uint32_t t){ while(--t);//CyU3PBusyWait (t);}CyU3PReturnStatus_tIIC_Set_SDA(CyBool_t isHigh){ CyU3PReturnStatus_t status; status = CyU3PGpioSetValue (FX3_I2C_SDA, isHigh);原创 2017-10-10 16:04:41 · 718 阅读 · 0 评论 -
CyU3PSpiInit 错误(返回0x44)
1. status = CyU3PSpiInit (); if (status != CY_U3P_SUCCESS) { CyU3PDebugPrint(4, "CyU3PSpiInit Err = 0x%x\r\n",status);//0x44:CY_U3P_ERROR_NOT_CONFIGURED return status; }原创 2016-11-14 20:27:13 · 968 阅读 · 0 评论 -
FX3/CX3 REQ_VENDOR自定义usb命令
CyApi上位机代码:void CCyUSB_DemoDlg::OnBnClickedOk5()//cyusb_demo{ CtlEndpoint->Target = TGT_DEVICE; //不必关注,固定 CtlEndpoint->ReqType = REQ_VENDOR; //请求类型:自定义请求(标准请求等) CtlEndp原创 2017-07-07 14:54:21 · 1794 阅读 · 1 评论 -
FX3/CX3 编程实现usb启动更新固件
FX3/CX3 有很多种启动方式,SPI启动,I2C 启动,还有usb启动等。 烧写程序是需要从usb启动的,但是运行程序则是要在spi或i2c启动(要么是spi flash,要么是 i2c eeprom)。 所以要更新固件(usb驱动),必须修改启动方式,板子要么弄几个拨码开关选择启动方式,要么每次都用电烙铁修改(特麻烦),要么选择编程方式实现。编程方式实现的原理就是如果spi或i2c原创 2017-08-31 17:18:48 · 3800 阅读 · 2 评论 -
FX3/CX3 延时
CyU3PThreadSleep(6);CyU3PBusyWait (10);uint32_t tEnd = CyU3PGetTime() + 5; while (CyU3PGetTime() < tEnd);其他还有很多,比如自己写个: void Delay(uint32_t time) { uint32_t i,j; for(i=0;i<655535;i++){原创 2016-12-23 14:36:51 · 2001 阅读 · 0 评论 -
从0开始创建FX3工程之一 - 框架
我们一般都是在已有的工程上修改,添加新的功能,现在从0开始创建一个新的工程。 1. 创建工程 菜单栏,File-new-project- Cypress 点击next,进入下图: 输入项目名,点击finish即可。(有三个模板可供选择,此处我们不需要勾选) 2. 而后我们看到项目有三个文件,mekefile先不管,里面很多问题。 cyfxtx.c :This file pr原创 2017-07-05 10:57:43 · 2654 阅读 · 7 评论 -
FX3 use of SPI and 32 bits words GPIF
io_cfg.isDQ32Bit = CyTrue; io_cfg.useSpi = CyTrue;FX3 use of SPI and 32 bits words GPIF不能共存。如果必须用32 bits words GPIF,必须: io_cfg.useSpi = CyFalse;可以使用模拟spi接口。 参考:cyfxusbspigpiomodeCyFxGpioI原创 2017-09-20 17:09:28 · 861 阅读 · 0 评论 -
FX3/CX3 uint8_t等类型找不到警告
#include <stdint.h>#include <stddef.h>添加即可。原创 2017-09-12 16:34:30 · 609 阅读 · 0 评论 -
FX3/CX3 I2C error
status = CyU3PI2cReceiveBytes(&preamble, buf, count, 0); if(status == CY_U3P_ERROR_FAILURE){ CyU3PI2cGetErrorCode(&err);//CY_U3P_I2C_ERROR_NAK_BYTE_0 }单步调试发现CyU3PI2cReceiveB原创 2017-09-27 13:49:01 · 733 阅读 · 1 评论 -
CameraDS类Directshow camera raw10
//////////////////////////////////////////////////////////////////////// Video Capture using DirectShow// Author: Shiqi Yu (shiqi.yu@gmail.com)// Thanks to:// HardyAI@OpenCV China// flym转载 2017-09-06 09:36:53 · 1708 阅读 · 0 评论 -
无题
如果你没有google到,可能是你犯了很简单的一个错误。 一个uvc程序,windows下正常,ubuntu下不能打开设备,不能看到图像。 最初以为windows兼容性好些,ubuntu差些。 set_config error, 一段初始化代码放入其中…我都忘记了为何要放入到那个地方,真是无语。原创 2017-02-23 15:32:59 · 374 阅读 · 0 评论 -
ov7251
pin 信号 MDP :MIPI/LVDS data lane positive output 数据正输出 MDN :MIPI/LVDS data lane negative output 数据负输出 MCP : MIPI/LVDS clock lane positive output 时钟正输出 MCN : MIPI/LVDS clock lane negative output原创 2017-03-06 13:34:42 · 7272 阅读 · 1 评论 -
Bus hound USTS
USTS :Bus hound help 里有解释: Windows 4 byte USBD_STATUS code 即是一个4字节的USB状态码。CTL a1 85 00 10 00 03 02 00 GET LEN USTS c0000004原创 2017-02-23 10:06:18 · 6823 阅读 · 0 评论 -
FX3/CX3 JLINK 调试
FX3 JLINK调试是一个有些麻烦的事情,经常有些莫名其妙的问题。 设置参见 c:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware 下的 EzUsbSuite_UG.pdf 文档。 常见问题: 1.装了多个版本的jlink,使用了未注册或不适当的版本 选择一个正确的版本。JLinkARM_V408l,JLinkA原创 2017-03-17 09:42:37 · 2165 阅读 · 1 评论 -
FX3/CX3 flash
M25P40 4Mbit = 512k Bytes spi 串行接口(max 75MHz clock rate); Sector Erase (512 Kbit) in 0.6 s (typical) Bulk Erase (4 Mbit) in 4.5 s (typical) Hardware Write Protection: protected area size defined原创 2016-12-28 14:04:42 · 1409 阅读 · 0 评论 -
FX3/CX3 timestamp
uint32_t time0 = CyU3PGetTime();// msvoid CyCx3AppThread_Entry (uint32_t input){ CyCx3AppDebugInit(); for (;;) { CyU3PThreadSleep (1000); CyU3PDebugPr原创 2016-12-22 13:54:23 · 1014 阅读 · 0 评论 -
FX3/CX3 elf转为img文件
cmd:elf2img.exe -i test.elf -o test.img其中elf2img.exe 在安装目录下: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\util\elf2img原创 2016-11-22 10:06:21 · 2418 阅读 · 0 评论 -
FX3/CX3 USBDebug
/** \brief Log a codified message. **Description**\n This function is used to output a codified log message which contains a two byte message ID and a four byte parameter. The message ID is原创 2016-11-21 19:11:34 · 1728 阅读 · 0 评论 -
FX3/CX3 事件机制
CyU3PEvent glFxGpioAppEvent; //定义事件对象 retThrdCreate = CyU3PEventCreate(&glFxGpioAppEvent); //初始化事件对象CyU3PEventSet(&glFxGpioAppEvent, CY_FX_GPIOAPP_GPIO_HIGH_EVENT, //设置信号 CYU3P原创 2016-12-09 10:10:55 · 1280 阅读 · 0 评论 -
灰尘导致镜头图像变形
灰尘导致相机捕获的画面异常,光线反射,越亮的地方图像失真严重,灯光的矩形变成了椭圆。。。原创 2016-12-16 15:00:18 · 780 阅读 · 0 评论 -
i2c 通讯失败(低电平1v)
众所周知,单片机低电平一般都是0v。 结果我发现我的板子上居然是1v,板子上有2个i2c,一个是通讯正常的,一个没有ack, 测了很久发现低电平是1v,有一个i2c是标准i2c,1v可能可以识别为0(3.3v为高)。但另外一个是sccb的, 兼容i2c,高电平只有1.8v左右。1v识别不成低电平,所以当然通讯失败。 检测stio口输出的就是1v(没在后续级联电路测试), 可能原创 2017-03-15 15:03:51 · 6387 阅读 · 0 评论 -
uvc颜色空间设置
在配置描述符中设置: 有一个16字节的GUID,通过它来设置。 samples: // 32595559-0000-0010-8000-00AA00389B71 ‘YUY2’ == MEDIASUBTYPE_YUY2 OUR_GUID_ENTRY(MEDIASUBTYPE_YUY2, 0x32595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa,原创 2017-04-18 09:41:25 · 1128 阅读 · 0 评论 -
FX3/CX3 SPI
硬件spi,without DMA. 1. main中: io_cfg.useI2C = CyTrue; 2. #include "cyu3spi.h"CyU3PReturnStatus_tmy_spi_init(void){ CyU3PGpioSimpleConfig_t gpioConfig; CyU3PSpiConfig_t spiConfig; CyU原创 2016-12-02 14:16:01 · 1074 阅读 · 0 评论 -
FX3/CX3 Thread创建
#ifdef My_Sensor_Thread void *ptr2 = NULL; ptr2 = CyU3PMemAlloc (UVC_APP_THREAD_STACK); /* Create the control request handling thread. */ retThrdCreate = CyU3PThreadCreate (&mpuThread,原创 2016-12-02 14:27:42 · 1167 阅读 · 0 评论 -
FX3/CX3 jtag debug
按照文档EzUsbSuite_UG.pdf 3.1节配置。 . JLinkGDBServerCL.exe 版本问题,我的是JLinkARM_V486b。 可打开JLinkGDBServer.exe查看连接状态。 . gdb的路径:E:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\bin\arm-none-eabi-gdb.exe原创 2017-07-03 16:38:28 · 1850 阅读 · 0 评论 -
FX3/CX3 CyU3PMutex
定义 CyU3PMutex SharedMutex; // Used to control access to a shared resource初始化 Status = CyU3PMutexCreate(&SharedMutex, CYU3P_INHERIT); //Whether priority inheritance should be al原创 2017-07-06 17:12:05 · 531 阅读 · 0 评论 -
First_FX3_App
```/* ## Cypress USB 3.0 Platform source file (first_app.c) ## =========================== ## ## Copyright Cypress Semiconductor Corporation, 2010-2011, ## All Rights Reserved ## UNPUBLISHED,原创 2017-07-06 15:15:57 · 885 阅读 · 0 评论 -
从0开始创建FX3工程之二 - UART
在上一步的基础上添加uart模块。 在线程1之中添加uart初始化代码,波特率为115200,代码如下:CyU3PReturnStatus_tUart_Init ( void){ CyU3PUartConfig_t uartConfig; CyU3PReturnStatus_t status = CY_U3P_SUCCESS; /* Initialize原创 2017-07-05 11:39:20 · 1288 阅读 · 1 评论