如遇开发技术问题,欢迎前往开发者社区,极海技术团队将在线为您解答~
极海官方开发者社区​https://community.geehy.cn/

《APM32芯得》系列内容为用户使用APM32系列产品的经验总结,均转载自21ic论坛极海半导体专区,全文未作任何修改,未经原文作者授权禁止转载。

目录

烧录失效就是FLASH有问题吗?

1. 烧录失效现象

2. 对比FLASH内容

3. FLASH读写测试

4. SRAM读写测试

5. 降低主频测试

6. 失效地址读写

7. 总结


烧录失效就是FLASH有问题吗?

   最近从产线上交一片烧录报错的APM32芯片(量产10K以上遇到1片,难得)。表象是FLASH失效,实则分析下来竟然是SRAM失效。看我记录的分析过程:

1. 烧录失效现象

  • 测试方法:使用JFLASH烧录BIN文件,观察现象。
  • 测试结果:烧录bin文件出现校验报错,并报出错误产生的FLASH地址。

2. 对比FLASH内容

  • 测试方法:出现异常时回读FLASH内容,与原始文档对比,观察现象。
  • 测试结果:回读FLASH内容,与原始文档对比,发现存在部分位置FLASH数据从0->1现象,如48->4A,B1->B3,CD->CF等等。

 

3. FLASH读写测试

  • 测试方法:在SRAM中运行FLASH全片擦写读测试,观察现象。
  • 测试结果:测试多组图形,尝试片擦/页擦等不同的方式,都未发现异常。FLASH应该没有问题。

 

4. SRAM读写测试

  • 测试方法:jflash烧录时数据是通过SRAM的程序和缓存搬入FLASH内部的。故在测试FLASH未发现异常的情况下,可继续测试SRAM看是否正常。
  • 测试结果:使用96M主频,循环测试SRAM 3369次时发现异常。对比数据,确认SRAM地址0x200008FF的bit1位置从0变1:00000000 -> 00000010

5. 降低主频测试

  • 测试方法:96M主频情况下,复现异常几率较低。考虑到烧录bin文件时实际是8M主频驱动,故尝试降低SRAM测试的主频,观察现象。
  • 测试结果:使用8M主频,测试1次即可发现SRAM异常,地址仍是0x200008FF。可能机理:SRAM存储单元类似RS触发器,有两个稳态。如果读的时候存在漏电,读的时间短,来不及误翻转。如果读得慢些,可能漏电会引起状态翻转,导致读出错。

6. 失效地址读写

  • 测试方法:针对失效地址,做针对性读写验证,观察现象。
  • 测试结果:写入0x00后,前几次读取均正常0x00,多读几次后,数据位发生翻转,读取值异常0x02

7. 总结

经分析,确认这片烧录失效的芯片是SRAM存在异常:地址0x200008FF的bit1位置有几率发生从0变1的读异常。SRAM异常会导致芯片程序运行异常和烧录异常(烧录时需在SRAM中运行搬运程序和缓存FLASH数据)。
  这个烧录失败案件让你更了解MCU芯片的烧录机制当遇到烧录工具烧录校验不过,并报出校验错误地址(通常为FLASH区地址)时,真正失效的地方,可能是FLASH,也可能是SRAM,都需要排查。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐