打印
[PSoC™]

PSOC 4 闪存 Em_EEPROM 读写时卡住的问题及解决方法

[复制链接]
106|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 IFXJone 于 2024-4-9 15:24 编辑

Symptoms




Diagnosis
       客户使用 PSOC 4 CY8C4147AZI-S455 设计了遥控器,实现了 Segment LCD+ Capsense+ 系统控制功能,使用 Flash Em_EEPROM(版本:V2.2)组件存储系统参数,该遥控器在酒店客房使用,当房间 ID 卡插入供电间时,交流电接通,室内空调和遥控器开始工作,当取出 ID 卡时,交流电断电,室内空调和遥控器停止工作。他们反馈遥控器在工作数月后无法启动且无显示。然而我们读取了坏的遥控器,发现代码部分都是一样的,但EEPROM 数据彼此不同。

       我们对损坏的遥控器重新编程,它又能正常运行了
Solution
      我们检查了KBA227502&KBA227530 &KBA228069,并修改了cy_em_eeprom.c中的以下代码


但我们仍然发现Cy_Em_EEPROM_Write() 存在以下问题

for(; i <= seqNum; i++)

{

    ......

}

当 seqNum=0xFFFFFFFF 时,for 循环将***循环下去,没有机会跳出。

因此,我们需要在它之前添加一些特殊处理

if(seqNum >= (0xFFFFFFF0))

{

    seqNum=1;

}




我们修改了cy_em_eeprom.c,并下载了附件中的文件。

请按以下路径更新:

C:/Program Files (x86)/Cypress\PSoC Creator\4.X\PSoC Creator\psoc\content\CyComponentLibrary\CyComponentLibrary.cylib\Em_EEPROM_Dynamic_v2_X\API



注:cy_em_eeprom的C文件请见附件。










cy_em_eeprom.zip

10.25 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

11

帖子

0

粉丝