USB论坛
直播中

吴藩

10年用户 912经验值
擅长:可编程逻辑
私信 关注
[问答]

为什么无法在USB控制中心选择固件映像文件?

我在开发 CYUSB3KIT-003 固件并将固件映像文件下载到 FX3 时遇到了一个问题。
我通过将 PMODE[2:0] 配置为 F11 来设置 USB 启动模式,并像往常一样将新开发的固件下载到 SPI Flash。
但是,在某个时间点之后,我无法再使用 USB 控制中心将新的固件映像文件下载到 SPI Flash 或 EEPROM。
当我从程序选项卡单击 SPI Flash 或 EEPROM 时,USB 控制中心不会弹出图像选择窗口,而是自动下载固件的先前版本。
由于这个问题,我无法将我新开发的固件映像文件下载到 FX3。
即使我重命名以前的固件映像文件或从本地存储中完全删除以前的映像文件,USB 控制中心仍会自动下载旧的固件版本!
从 Program 选项卡中选择 SPI Flash 或 EEPROM 后,会出现消息“Waiting for CYPRESS™ Boot Programmer device to enumerate.。.”,然后会出现“ CYPRESS™ Boot Programmer Device Not Found”,然后旧固件版本会自动下载到 FX3。
即使使用 C:Program Files (x86) CYPRESS™ EZ-USB™ FX3 SDK1.3 中的 unins000.exe 文件卸载 SDK 并重新安装 SDK 后,此问题仍然存在。
以前,我可以毫无问题地更新固件,但我认为在看到下图所示的消息后,问题就开始出现了。
如果我在 USB 控制中心选择 PROGRAM 》 RAM,我就可以成功下载新开发的固件映像文件。
该问题仅发生在我的桌面上。 在我的笔记本电脑上,我可以选择图像文件并使用同一 CYUSB3KIT-003 上的 USB 控制中心将其下载到 EEPROM 或 SPI Flash 中,没有任何问题。
最可疑的部分是,即使在重命名或删除以前的固件映像文件后,USB 控制中心也会自动下载以前的固件版本。
如果有人遇到或可以解决这个问题,请帮忙。

回帖(1)

吴凡

2025-5-9 17:59:18

针对您在使用CYUSB3KIT-003开发板时遇到的固件下载问题,以下是逐步的解决方案:


1. 确认硬件配置



  • PMODE设置:确保PMODE引脚设置为F11(即PMODE[2:0] = 111),并通过跳线或开关正确连接。若之前更改过其他设置,建议重新检查物理连接。

  • 供电与连接:使用稳定的USB线缆连接开发板,避免使用USB集线器。尝试更换USB端口或线缆以排除硬件连接问题。


2. 清除USB控制中心缓存



  • 重置配置:关闭USB控制中心,删除其配置文件或重置设置。配置文件通常位于安装目录或用户文档中(如C:CypressUSBControlCenter)。

  • 临时文件:清理系统临时文件夹(如Windows的%TEMP%),避免残留旧固件信息。


3. 检查固件存储路径



  • 路径权限:确保新固件文件存放在无空格、非系统保护目录(如桌面或文档),并具有完全读写权限。

  • 重命名与生成:彻底删除旧固件文件后,重新编译生成新固件,避免文件名冲突(即使重命名也可能因缓存问题导致错误)。


4. 处理存储器件写保护



  • 解除写保护

    • 使用Cypress提供的CyFlashProg工具检查SPI Flash/EEPROM的写保护状态。

    • 在USB控制中心中,尝试擦除整个Flash(Program → Erase All)后再重新编程。


  • 坏块检测:若怀疑存储器件损坏,通过工具执行全片擦除或使用备用开发板测试。


5. 更新软件与驱动



  • 升级工具链:前往Cypress官网下载最新版USB Control CenterFX3 SDK

  • 重新安装驱动:在设备管理器中卸载FX3驱动,重新插拔设备让系统自动安装正确驱动。


6. 替代编程方法



  • 使用命令行工具
    # 示例:通过CyUSB3Kit-003的DFU模式编程SPI Flash
    cycfx3prog -i <固件文件>.img

    使用Cypress提供的cycfx3progElftool绕过图形界面问题。


  • 切换启动模式:临时将PMODE设置为001(I2C Boot),通过其他接口(如JTAG)强制烧录固件。


7. 固件与工程验证



  • 生成有效性:确认新固件通过Elftool正确转换为.img格式:
    elftool.exe -b <固件文件>.elf <固件文件>.img

  • 最小化测试:创建一个简单的LED闪烁固件,验证是否能正常下载,以排除工程配置错误。


8. 联系技术支持


若上述步骤无效,请提供以下信息联系Cypress支持:



  • 操作系统版本和工具链版本(如USB Control Center 3.4.7)。

  • 固件生成步骤的详细日志。

  • 硬件配置照片(尤其是PMODE跳线)。

  • 尝试过的所有故障排除步骤及结果。


可能原因总结



  • 缓存/配置冲突:USB控制中心残留旧固件路径。

  • 存储器件写保护:SPI Flash的特定区域被锁定。

  • 软件版本缺陷:旧版工具存在固件选择逻辑错误。

  • 固件生成问题:编译流程未正确生成有效映像。


通过逐步排除硬件配置、软件缓存、存储保护和工具链问题,应能恢复正常的固件下载功能。

举报

更多回帖

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