你好,
我们正在使用SPI Flash MX25R1635F,即16Mbit。
当擦除flash从SmartSnippet我得到错误消息“SPI内存擦除失败”。
然后我开始调查原因。我从SDK构建jtag_programmer_585.bin,其中我设置SPI FLASH默认值,以匹配MX25R1635F:
#define MX25R1635F_SIZE 2097152 // 0x1000000Mbit / 8 = 0x200000 = 2097152 Mbyte
#定义MX25R1635F_PAGE 256
MX25R1635F_SIZE // SPI Flash内存大小
#define SPI_FLASH_DEFAULT_PAGE MX25R1635F_PAGE // SPI Flash内存页大小(以字节为单位
我想以上是必要的,因为SDK flash程序员不会自动检测我们的flash,而不是添加我们的flash到自动检测数组,它更容易添加为默认设置。
现在我尝试flash擦除命令(完全擦除)从SmartSnippet再次,我仍然得到相同的错误。
接下来,我在'ACTION_SPI_ERASE'开关case中添加了一个断点,这样我就可以从ACTION_SPI_ERASE中读取结果变量。返回的结果是0,所以一切正常,FLASH确实被擦除了。spi_flash_chip_erase()不会超时,即使我们使用的是16Mbit的flash,它需要更长的时间来擦除。但是,现在我观察到SmartSnippet在spi_flash_chip_erase()返回之前输出错误消息“SPI Memory erase failed.”,所以我猜测,这是SmartSnippet内部的超时,生成错误消息,而不是jtag_programmer_585.bin
您能否证实我的结论,它是SmartSnippet的内部超时,它导致错误,如果是“是”是否有办法改变SmartSnippet中的超时设置?
最好的问候,
Ciano霜
我也有同样的问题。
嗨ciano,
请检查SPI闪光引脚配置是否正确?你可以配置SPI Flash引脚从“Board Setup”点击SmartSnippets工具箱(版本4.8.3)。(Tools -> Board Setup)。
谢谢,PM_Dialog
嗨,对话框中,
是的,我可以确认,SPI Flash引脚安装正确。
最好的问候,
Ciano霜
spi闪存芯片的擦除时间是15秒。
工具箱等待时间为10s。
spi flash擦除时间比工具箱等待时间长得多。
工具箱超时。
这是spi flash的规格。
这是擦除日志。
smartnippetstoolbox .exe -type spi -chip DA14585-00 -com_port 16 -cmd erase -max 2097152
启动SmartSnippets工具箱v 4.8.3.1804
2018年四月11日4:40:44下午java.util.prefs.WindowsPreferences
警告:无法打开/创建prefs根节点软件\JavaSoft\ prefs在根0x80000002。Windows RegCreateKeyEx(…)返回错误码5。
使用默认波特率:57600 Bd。
已成功打开COM16端口连接。
COM16端口断开连接成功。
成功设置SPI Flash gpios: CLK=P0_0, CS=P0_3, MISO=P0_5, MOSI=P0_6
已成功打开COM16端口连接。
等待接收数据包长度最高字节的超时(10000毫秒)
COM16端口断开连接成功。
SPI闪存擦除失败。
你好,
我想确认超时的值通过外部团队处理工具,但显然其服用一段时间,但由于flash越来越正确删除然后它的安全假设相同的(聪明的片段在过程中引入了一个超时,超时流逝由于flash大小)。我确信旧版本的工具有这个超时时间,我很确定新版本也是如此,很抱歉不能100%验证这一点,但与他们取得联系是相当困难的。
谢谢mt_dialog.
嗨,对话框中,
我会等待处理工具的团队给你回复。
如上所述,这可能是工具中固定/恒定超时的问题。
超时可以由用户配置,也可以根据所选的flash大小进行简单设置。
我将保持此线程打开,并期待阅读您的答案/解决方案。
与此同时,我将简单地忽略错误。
谢谢你,并致以最诚挚的问候,
Ciano霜