连接到DA14585的外部闪存编程失败

了解更多常见问题教程

7个职位/0个新职位
最后一篇文章
阿努希亚
离线
最后一次见到:3个月6天前
已加入:2017-12-20 02:30
连接到DA14585的外部闪存编程失败

你好,
一块带有DA14585和闪存AT25XE011的定制板通过JTAG连接连接到开发板DA14580-DEVKT-PïVC。
使用SmartSnippetStudio V1.6.3.918 KielIDE,我可以在调试模式下运行固件。

我试图编程的外部闪存和它抛出我们的错误。我附上2个屏幕截图。希望你能看到他们的问题。

1) 我打开SmartSnippets工具箱,选择了JTAG序列号和芯片版本DA14585\U 00

2) 按下connect,工具显示已成功配置SPI闪存端口和引脚

3) SPI\u CLK:P0\u 0;SPI\u EN:P0\u 3;SPI\u DI:P0\u 5;SPI\u DO:P0\u 6
JTAG引脚连接为VBAT=3.2V;GND;SW\ U CLK;和SWDIO

4) 当我按“擦除”时,它会给出一个错误
[错误SPI闪存@18-05-08 13:14:00]SPI内存擦除失败。

5) 当我试图燃烧时,我得到:
[ERROR SPI Flash@18-05-08 13:15:10]JTAG地址0x81FEC处的附加错误信息(MSB优先):FF F8
[错误SPI闪存@18-05-08 13:15:10]内存刻录失败。

谢谢你的帮助

设备:
设备编号:
DA14585和AT25XE011
PM\U对话框
离线
最后一次见到:2天14小时前
工作人员
已加入:2018-02-08 11:03
嗨,阿努希亚,

嗨,阿努希亚,

SmartSnippets工具箱使用flash\u程序员项目来烧录SPI flash。默认闪存编程器不支持Adesto 25XE011 SPI闪存。为了使用这种类型的内存,您应该修改flash编程器并添加SPI闪存的配置。您可以在SDK的以下路径中找到flash programmer项目:

DA1458x\U SDK\5.0.4\utilities\flash\U编程器

当您构建flash\u程序员项目时,您有两个选择,将其构建为程序员\u jtag或程序员\u uart。在您的情况下,您应该将其构建为程序员jtag。在修改和构建flash程序员项目之后,您应该复制jtag_程序员.bin从Out\jtag文件夹中,将其粘贴到SmartSnippetsStudio\Toolbox\common\u resources路径中(同名),该路径位于工具的安装文件夹中。之后,您可以将固件下载到ADESTO25XE011 SPI闪存中

谢谢,下午好

阿努希亚
离线
最后一次见到:3个月6天前
已加入:2017-12-20 02:30
非常感谢你的帮助

非常感谢你的建议。我做了修改,编译并复制了jtag_程序员.bin从Out\jtag文件夹将其粘贴到SmartSnippetsStudio\Toolbox\common\u resources路径中作为jtag_程序员.bin以及jtag\u programmer\u585.bin,因为该文件夹最初包含这两个文件。但同样的错误正在出现。我已经附上了flashu程序员项目文件和word文件与我所做的所有更改。

你能告诉我我犯了什么错误吗?

PM\U对话框
离线
最后一次见到:2天14小时前
工作人员
已加入:2018-02-08 11:03
嗨,阿努希亚,

嗨,阿努希亚,

我无法复制你的问题,因为我们没有这种类型的SPI闪存,所以我们无法测试你的代码。请试着调试你的代码以找出错误的原因。我建议您将flash\u programmer项目构建为programmer\u uart,在调试模式下运行它,然后尝试通过uart从SmartSpippets连接SPI flash。通过这个过程,您可以找到您的代码所在的位置。

谢谢,下午好

阿努希亚
离线
最后一次见到:3个月6天前
已加入:2017-12-20 02:30
你好,

你好,
我不是要求你实时调试代码。
由于Dialog的工作人员对flash程序员代码很有经验,Dialog的工作人员将知道为了添加不同的flash内存,到底需要在哪里添加信息。
我只是想让你目测一下我是否在所有相关的地方添加了信息。顺便说一句,我们选择AT25XE011作为第22页(共24页)上的文件AN-B-055,该文件表示支持。

另一方面,如果您可以给我一个flash程序员模板代码,其中包含关于要包含哪些信息的注释,并用一个公共标记(比如TODO,在TODO行上方有一个示例),那么当用户尝试引入不同的flash内存时,将更容易识别要包含的所有信息。

谢谢你

关于我所做的改变,我心中的一些问题是

包含在spi\u flash.c中
{AT25XE011\u JEDEC\u ID、AT25XE011\u JEDEC\u ID\u MATCHING\u BITMASK、AT25XE011\u TOTAL\u FLASH\u SIZE、AT25XE011\u PAGE\u SIZE、AT25XE011\u MEM\u PROT\u BITMASK、AT25XE011\u MEM\u PROT\u NONE},
作为清单中的第七项
const SPI \u FLASH \u DEVICE \u PARAMETERS \u BY \u JEDEC \u ID \u t SPI \u FLASH \u KNOWN \u DEVICES \u PARAMETERS \u LIST[]

这就需要改变
1) 在spi\u flash.h中从6数到7
//各种SPI闪存设备的定义
#define SPI\u FLASH\u DEVICES\u SUPPORTED\u COUNT(7)//AK:6之前的7
2) 然后include(索引从0开始,所以我不得不使用6。但是在SPI Flash设备定义中已经使用了6和6之后的数字。所以我很困惑。
//阿克。AT25XE011、AT25DF011
#在25xe011 6//?处定义SPI闪存设备索引??
#定义AT25XE011\u JEDEC\u ID 0x1F4200
#定义AT25XE011\u JEDEC\u ID\u匹配\u位掩码0xFFFF00
#定义AT25XE011\总\闪存\大小0x20000
#定义AT25XE011页面大小0x100
#定义AT25XE011\u MEM\u PROT\u位掩码4
#定义AT25XE011\u MEM\u PROT\u NONE 0
#定义AT25XE011内存保护整个内存保护4

我还在user\u periph\u setup.h中包含了以下几行
#define AT25XE011\u MANF\u DEV\u ID(0x1F42)//AK:AT25XE011 Manufacturer and ID
#define AT25XE011\u SIZE 131072//AK:SPI闪存大小(字节)
#define AT25XE011\u PAGE 256//AK:SPI闪存页大小(字节)

我是否正确地将所有配置信息包含在flashprogrammer项目的正确位置,或者我是否遗漏了任何内容或包含了错误的信息?

PM\U对话框
离线
最后一次见到:2天14小时前
工作人员
已加入:2018-02-08 11:03
嗨,阿努希亚,

嗨,阿努希亚,

SDK和文档不支持闪存AT25XE011,在表6中提到了所有支持的内存,来自adesto系列的AT25DN011、AT25DF011、AT25DS011,而不是AT25XE011(文档在表7中只提到了该类型的闪存:支持的SPI内存的性能我将尝试找出我们提到的原因文档中的flash,因为我在flash程序员中没有看到该flash类型的引用)。关于您在代码中添加的内容,您是正确的(您不必更改periph\u setup.h文件中更改的内容,但即使更改了,也无所谓,因为没有使用这些定义,而是使用spi\u flash.h中的值),关于您使用的索引,这取决于您将在SPI\u flash\u KNOWN\u DEVICES\u PARAMETERS\u LIST[]中为flash分配的位置,在您的示例中,这是您插入的6。因此,如果您正在使用的flash与程序员中已经使用的adesto命令相同(检查spi\u flash.h)、WRITE\u ENABLE、READ\u DATA等,并且连接正确,您应该可以。如果没有,你将尝试访问闪存和调试固件,以了解为什么你不能与闪存接口。据我所知,从数据表的闪存,你提到的我看到,使用的命令是相同的,闪存应该工作,即使没有增加一个新的闪存模块,因为侦察的闪存发生通过JEDEC的ID是相同的,已经存在的Adesto的闪存程序员。

谢谢你的对话

阿努希亚
离线
最后一次见到:3个月6天前
已加入:2017-12-20 02:30
正如pmu对话确认的那样

正如PM\u对话框所确认的,在编译flash\u编程器和jtag时,smart snippets toolbox接受flash\u编程器中的AT25XE011配置更改_程序员.bin从Out\jtag文件夹复制并粘贴到SmartSnippetsStudio\Toolbox\common\u resources路径中,名称为jtag\u programmer\u 585.bin。

VCC和nCS电压正常。但所面临的问题是,由于加速度计LIS2DH12TR(未通电)与AT25XE011共用SPI线SI、SO和SCK,SI和SCK的电压降至1.5V以下,导致闪存对命令没有反应。一旦加速计LIS2DH12TR从定制板上卸下,闪存就可以编程了。

非常感谢您的帮助。