本帖最后由 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文件请见附件。
|