FX3 UVC 1080p 60fps

FX3 UVC固件相关。
我们要使用CYUSB3014芯片传输1080p(1920*1080)60fps的视频信号,YUV422每像素16bit。
所以要使用GPIF的32并口一个时钟周期传两个像素。
要对官方AN75779的固件例程怎么修改,才能实现我们这样的分辨率帧率要求?

找官方技术文档吧,应该会有关于FX3 UVC固件修改的信息

USB之Cyusb3014芯片原理之四控制传输实现原理(十二) 2022-04-01
可以参考下


https://www.baidu.com/link?url=1oidypZrE6pRASOrYDDMu3yaJqGkiRSGZ_9wt6dYINEH4yde_k0e4yhXifASt_nmsL7lfln2vPtet6iMMvHEAg1193ku_qSnY7740s0MsCO&wd=&eqid=b0fd66ae000105a10000000464bf89e6

打开官方提供的AN75779固件源代码。知道代码中与分辨率和帧率相关的的地方,修改代码以支持你要的分辨率和帧率。
根据修改后的参数重新生成固件二进制文件。将新的固件二进制文件烧录到CYUSB3014芯片中

找到处理视频帧的代码,将宽度和高度设置为1920x1080像素

在源代码中修改分辨率,然后重新编译

要对 CYUSB3014 芯片使用 GPIF 的 32 并口传输 YUV422 格式的视频信号,需要对官方的 AN75779 固件例程进行修改。下面是一些可能需要进行的修改:

修改 GPIF 配置:在 GPIF Designer 工具中打开工程文件,将 GPIF 状态机配置为适合 YUV422 格式的输入和输出。根据每个时钟周期传输两个像素的要求,可以设置阈值和计数器等参数,以确保正确的数据传输。

修改 DMA 配置:在固件代码中,需要修改 DMA 配置以匹配新的 GPIF 配置。具体来说,需要设置正确的周边设备地址、数据宽度和传输模式等参数。

修改 UVC 控制:在 UVC 控制命令中,需要添加支持新分辨率和帧率的选项,并更新相关参数。例如,需要修改 Probe 和 Commit 控制命令,以支持 1080p60 分辨率和 YUV422 格式。

调整固件缓存大小:由于使用了更高分辨率和帧率的视频信号,因此可能需要增加固件缓存的大小,以确保数据的稳定传输。可以通过修改固件代码中的缓存大小常量来实现。

这些修改可能需要针对具体情况进行调整。在进行任何修改前,请先详细阅读 AN75779 文档,并参考其他类似项目的经验。建议进行充分测试和验证,以确保新的固件能够正常运行并满足要求。

要实现1080p 60fps的视频传输,并且每像素为16位的YUV422格式,您需要对FX3 UVC固件进行一些修改以满足您的需求。以下是修改官方AN75779固件例程的步骤:

1,修改GPIF配置:

打开AN75779固件例程的工程,找到配置GPIF的部分。
确保您的GPIF配置允许在一个时钟周期内传输两个16位像素数据。通常情况下,在FX3的GPIF配置中,数据总线的宽度决定了在一个时钟周期内传输多少数据。您需要将数据总线宽度设置为32位,以便在一个时钟周期内传输两个16位像素数据。

2,修改帧率设置:

在UVC应用程序中,可以通过修改帧间隔来实现所需的帧率。在uvc.c或类似的文件中找到关于帧率的设置。
在UVC_VIDEO_STREAMING_INTERFACE的描述符中,找到与帧率相关的字段。帧率以帧间隔的形式表示,单位为100ns。要实现60fps的帧率,帧间隔应该是166666(1秒钟约有10000000个100ns,所以1秒钟60帧约等于166666个100ns)。
3,修改分辨率设置:

在UVC应用程序中,找到与分辨率设置相关的部分,一般在uvc.c或类似的文件中。
根据您的要求,将分辨率设置为1920x1080。同时,确保UVC视频帧的数据格式是YUV422,并且每像素为16位。
4,确保带宽足够:

1080p 60fps的视频传输需要较高的带宽。确保您的USB 3.0连接能够提供足够的带宽支持这种数据传输。
5,编译和烧录:

完成修改后,编译修改后的固件并将其烧录到FX3开发板中。
以上步骤提供了大致的修改方向,但实际修改过程可能因为具体固件版本和文件结构的差异而有所不同。在进行修改时,务必仔细阅读官方文档和代码注释,以确保正确地修改UVC固件以满足您的需求。

另外,请注意,实现1080p 60fps的视频传输需要优化固件和硬件设计。确保您的系统能够在此高带宽条件下稳定工作,以及正确处理和传输高速的视频数据流。