USB论坛
直播中

klysa

14年用户 1336经验值
私信 关注
[问答]

I2C EEPROM无法从FX3S USB控制器启动怎么处理?

在我的设计中,我们使用 USB 控制器 FX3S(CYUSB3035-BZXI)和 I2C EEPROM(M24M02-DRMN6/AT24CM02-SSHM),通过 USB 电缆成功进行刷新,刷新后,重新启动电路板,只有一次显示 BULKLOOP。
我再次重新启动了主板,但要求 USB 启动增益(引导加载程序设备),而不是从 EEPROM 启动。 您能否建议如何在 EEPROM 中完成程序后始终从 EEPROM 设备设置启动顺序?
PMODE 设置(F1F):我们在我的主板上使用并通过 USB 电缆进行闪存。


回帖(1)

王璐

2025-5-26 18:23:08

针对FX3S无法从I2C EEPROM启动的问题,请按照以下步骤排查和解决:




1. 确认PMODE引脚配置



  • 硬件检查:FX3S的PMODE[3:0]引脚必须设置为 I2C启动模式。  

    • 正确的PMODE配置:PMODE[3:0] = 1111 (0xF),对应二进制F1F(从I2C EEPROM启动)。

    • 检查原理图:确保PMODE引脚通过电阻上拉至3.3V(无外部下拉干扰)。





2. 验证EEPROM硬件连接



  • I2C地址匹配

    • M24M02/AT24CM02的I2C地址由A2/A1/A0引脚决定。默认地址为 0x50(若A2/A1/A0均接地)。

    • 在FX3S固件配置工具(如Cypress Suite)中,需设置相同的EEPROM地址。


  • 信号完整性

    • SCL/SDA线需接4.7kΩ上拉电阻至3.3V。

    • 检查走线长度,避免过长导致信号延迟或干扰。





3. 固件生成与烧录



  • 生成正确的镜像

    • 使用Cypress SDK的elf2img工具生成EEPROM镜像时,需指定启动模式:  
      elf2img -i firmware.elf -o firmware.iic -boot i2c

    • 确保镜像包含有效的启动头(Boot Header)。


  • 烧录EEPROM

    • 使用Cypress Control Center或CyUSBCli工具,选择 I2C EEPROM 作为存储设备。

    • 执行烧录后,务必进行校验(Read & Compare),确认数据完整。





4. 检查电源与时序



  • 上电顺序:确保EEPROM在FX3S启动前已供电就绪(EEPROM启动时间 < FX3S启动延迟)。

  • 电源稳定性:测量EEPROM的3.3V电源,避免电压跌落或噪声。




5. 固件与启动配置



  • 启动标志位:在固件代码中,确认CyU3PBootLoaderEnter函数未被调用,否则会强制进入引导加载程序。

  • 引导加载程序版本:更新FX3S的引导加载程序至最新版本(通过Cypress工具升级)。




6. 高级排查步骤



  • 读取EEPROM内容

    • 使用I2C调试工具(如Saleae Logic Analyzer)抓取FX3S启动时的I2C通信,确认读取操作是否发生。

    • 通过Control Center读取EEPROM内容,与原始镜像对比。


  • 替换EEPROM:排除器件损坏的可能性。

  • 简化测试:尝试使用Cypress官方示例固件(如BulkLoop例程)测试EEPROM启动流程。




7. 参考配置示例



  • EEPROM连接
    FX3S          M24M02
    ---------------------
    SDA   <-----> SDA
    SCL   <-----> SCL
    VDD   <-----> VCC (3.3V)
    GND   <-----> GND
    A0/A1/A2 --> GND (地址0x50)

  • PMODE设置
    PMODE0 (Pin X) = 1 (3.3V)
    PMODE1 (Pin Y) = 1
    PMODE2 (Pin Z) = 1
    PMODE3 (Pin W) = 1




可能的问题根源



  • PMODE配置错误:硬件电阻未正确上拉。

  • EEPROM地址不匹配:工具配置与硬件地址不一致。

  • 镜像损坏:烧录过程未校验导致数据错误。

  • 电源时序问题:EEPROM未在FX3S启动前就绪。


通过以上步骤逐步排查,应能解决从EEPROM启动失败的问题。如仍无法解决,建议提供示波器抓取的I2C启动波形供进一步分析。

举报

更多回帖

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