你好,
我们正在使用SPI Flash MX25R1635F,即16Mbit。
从SmartSnippet擦除Flash时,我会收到错误消息“SPI内存擦除失败”。
然后我开始调查原因。我从SDK构建JTAG_Programmer_585.bin,其中我设置了匹配MX25R1635F的SPI闪存默认值:
#define mx25r1635f_size 2097152 // 0x1000000mbit / 8 = 0x200000 = 2097152 MB
#define mx25r1635f_page 256.
#define spi_flash_default_size mx25r1635f_size // spi闪存大小以字节为单位
#define spi_flash_default_page mx25r1635f_page // spi闪存页面大小以字节为单位
我猜是需要上述,因为SDK Flash程序员没有自动检测我们的闪光灯,而不是将闪光灯添加到自动检测阵列,而不是将其添加为默认设置。
现在我再次尝试了来自SmartSnippet的Flash擦除命令(完整擦除),我仍然得到相同的错误。
接下来我在“action_spi_erase”的交换机中添加了一个断点,以便我可以从action_spi_erase读取结果变量。返回的结果是0,所以一切都很好,闪光灯确实被删除了。SPI_FLASH_CHIP_ERASE()也不会超时,即使我们使用16Mbit闪存,这需要更长的时间来擦除。然而,现在我观察到SmartSnippet输出错误消息“SPI内存擦除失败”。在spi_flash_chip_erase()返回之前,所以我猜,它是smartsnippet的超时,它生成错误消息,而不是jtag_programmer_585.bin
您能否证实我的结论,它是SmartSnippet的内部超时,它导致错误,如果是“是”是否有办法改变SmartSnippet中的超时设置?
最好的祝福,
Ciano Frost.
我也有同样的问题。
嗨Ciano,
您能否检查是否已正确配置SPI闪存引脚?您可以从SmartSnippets Toolbox(版本4.8.3版本)点击“电路板设置”配置SPI闪存引脚。(工具 - >板设置)。
谢谢,PM_DIALOG.
嗨对话框,
是的,我可以确认,即SPI闪存引脚是否正确设置。
最好的祝福,
Ciano Frost.
SPI闪存芯片擦除时间为15s。
工具箱等待时间为10s。
SPI闪存擦除时间长于工具箱Waite时间。
工具箱超时。
这是SPI闪光灯的规格。
这是擦除的日志。
SmartSnippetStoolbox.exe -Type SPI -Chip DA14585-00 -Com_Port 16 -cmd erase -max 2097152
启动SmartSnippets工具箱V 4.8.3.1804
四月11日,2018年4:40:44下载java.util.prefs.WindowsPreferences
警告:无法在root 0x80000002处打开/创建prefs根节点软件\ javasoft \ prefs。Windows RegcreateKeyex(...)返回错误代码5。
使用默认的波特率:57600 BD。
连接到COM16端口已成功打开。
从COM16端口已成功断开连接。
成功设置SPI闪存GPIOS:CLK = P0_0,CS = P0_3,MISO = P0_5,MOSI = P0_6。
连接到COM16端口已成功打开。
等待收到数据包长度最重要的字节(10000毫秒)时超时
从COM16端口已成功断开连接。
SPI闪存擦除失败。
你好,
我正在尝试通过处理工具的外部团队确认超时的价值,但显然是它需要一些时间,但由于闪光灯被正确擦除,那么它的安全假设相同(智能片段介绍了超时过程和超时通过闪存尺寸而经过)。我知道该工具的旧版本有这个超时,我很确定这是对较新版本的情况,对不起,没有能够验证这个100%的百分比,但与它们取得联系是相当困难的。
谢谢mt_dialog.
嗨对话框,
我会等待您处理工具的团队的回复。
如上所述,它可能是工具中的固定/恒定超时的问题。
超时可以是基于所选闪存大小的用户可配置或简单集合。
我将保持此线程打开,并期待阅读您的答案/解决方案。
与此同时,我将简单地忽略错误。
感谢你并致以真诚的问候,
Ciano Frost.