USB论坛
直播中

chunhuahua

9年用户 1422经验值
擅长:接口/总线/驱动
私信 关注
[问答]

如何在EZ-USB SX3配置实用程序中配置它的设置?

SX3 UVC(CYUSB3017)是否可以使用图像传感器接口以非整数帧速率(如 29.97fps)传输 UVC 视频?

如何在 EZ-USB SX3 配置实用程序中配置它的设置?谢谢。

回帖(1)

刘敏

2025-5-20 18:15:32

在EZ-USB SX3配置实用程序中配置CYUSB3017(SX3 UVC)以实现非整数帧率(如29.97fps)的UVC视频传输,需遵循以下步骤和注意事项:




一、配置EZ-USB SX3实用程序




  1. 连接设备并启动工具



    • 通过USB连接设备至主机,确保固件已加载。

    • 打开Cypress提供的EZ-USB SX3配置实用程序(如Cypress Suite或Cypress Control Center)。




  2. 配置UVC参数



    • UVC描述符设置

      • 在工具中找到UVC Frame Descriptor配置界面。

      • 设置视频格式(如MJPG、YUY2等)、分辨率(如1920x1080)及颜色空间。


    • 帧间隔(Frame Interval)配置

      • dwFrameInterval字段中,输入精确的帧间隔值。例如,29.97fps对应帧间隔为:
        1秒 / 29.97 ≈ 33.3667毫秒 = 333,667 * 100纳秒单位

      • 在描述符中需将此值转换为100纳秒单位的整数(即333667)。





  3. 时钟配置



    • 像素时钟(Pixel Clock)

      • 计算所需像素时钟:分辨率宽 × 高 × 帧率(需包含消隐区域)。

      • 在工具中调整图像传感器接口的时钟分频器或PLL设置,确保生成的像素时钟与目标帧率匹配。


    • 参考代码示例(伪代码):
      // 设置像素时钟为148.5MHz(示例值,需根据实际分辨率调整)
      PLL_Config(24MHz, 148.5MHz); // 输入时钟24MHz,输出148.5MHz




  4. 下载固件



    • 完成配置后,将设置下载到设备并重新枚举。






二、支持非整数帧率的关键点




  1. UVC协议支持



    • UVC规范允许通过dwFrameInterval定义任意帧间隔,主机驱动会根据该值计算帧率。确保在描述符中正确列出所有支持的帧间隔。




  2. 硬件限制验证



    • CYUSB3017数据手册:查阅是否支持图像传感器接口(如MIPI CSI-2/Parallel)的动态帧率调整。

    • 传感器输出能力:确认传感器可输出非整数帧率(如通过I2C配置其输出格式)。




  3. 主机端兼容性



    • 在Windows中,使用UVC ViewAMCap工具验证实际帧率是否接近29.97fps。

    • Linux下可通过v4l2-ctl --list-frameintervals检查支持的帧间隔。






三、常见问题与排查




  1. 配置未生效



    • 检查描述符:使用USB分析仪(如Wireshark)确认设备枚举时上报的UVC描述符是否包含目标帧间隔。

    • 重新枚举设备:修改配置后需断开并重新连接USB。




  2. 帧率误差过大



    • 时钟精度:确保像素时钟误差在传感器容忍范围内(通常需小于±1%)。

    • 消隐区域调整:适当增加水平/垂直消隐时间以匹配时钟分频。




  3. 自定义固件修改



    • 若配置工具无法直接输入非整数帧率,可能需要手动修改固件代码中的描述符:
      // 示例:在固件中定义29.97fps的帧间隔
      { 333667 }, // 29.97fps (100纳秒单位)






四、参考资源



  • Cypress文档:查阅《EZ-USB SX3 Technical Reference Manual》和《UVC 1.5 Class Specification》。

  • 示例工程:参考Cypress提供的UVC例程(如FX3_SDK_UVC),调整帧间隔和时钟配置。


通过以上步骤,理论上可实现29.97fps的UVC视频传输。实际效果需结合硬件验证和主机兼容性测试。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分