连接DA14585的外接flash无法编程

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
7个职位/ 0个新职位
最后发表
anushiya
离线
最后看到:10个月4天前
加入:2017-12-20 02:30
连接DA14585的外接flash无法编程

你好,
与DA14585和闪存AT25XE011定制电路板经由JTAG连接连接到开发板DA14580-DEVKT-P_VC。
使用smarsnippet Studio V1.6.3.918 Kiel IDE,我可以在调试模式下运行固件。

我在给外置闪存编程,结果出错了。我附上了2个截屏。希望你能看到他们的问题。

1)打开SmartSnippets工具箱,选择JTAG序列号和芯片版本DA14585_00

2)按下连接,工具表示成功配置SPI flash端口和引脚

3) SPI_CLK: P0_0;SPI_EN: P0_3;SPI_DI: P0_5;SPI_DO: P0_6
JTAG引脚连接VBAT = 3.2V;接地;SW_CLK;和SWDIO

当我按“删除”键时,出现了一个错误
[ERROR SPI Flash @18-05-08 13:14:00] SPI内存擦除失败。

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

谢谢你的帮助

设备:
设备数量:
DA14585和AT25XE011
PM_Dialog
离线
最后看到:1天19小时前
工作人员
加入:2018-02-08 11:03
嗨anushiya,

嗨anushiya,

该SmartSnippets工具箱使用flash_programmer项目,以燃烧的SPI闪存。该Adesto 25XE011 SPI闪存没有从默认的闪存编程支持。为了使用这种类型的内存,您应该修改闪存编程和添加的是SPI闪存的配置。您可以在SDK的以下路径闪存编程项目:

DA1458x_SDK \ 5.0.4 \ \ flash_programmer的工具

当你构建flash_programmer项目,你有两个选择,要打造为programmer_jtag或programmer_uart。在你的情况,你应该把它做成programmer_jtag。修改和建立闪存编程项目后,您应在SmartSnippetsStudio \工具箱\ common_resources路径,这是位于该工具的安装文件夹从Out_jtag文件夹中复制jtag_programmer.bin并粘贴(名称相同)。在这之后,你可以下载固件到Adesto 25XE011 SPI闪存

谢谢,PM_Dialog

anushiya
离线
最后看到:10个月4天前
加入:2017-12-20 02:30
非常感谢你的

非常感谢您的建议。我做的那个文件夹最初有两个文件中的变化,在SmartSnippetsStudio \工具箱\编译并从Out_jtag夹复制jtag_programmer.bin并粘贴common_resources路径jtag_programmer.bin以及jtag_programmer_585.bin。但是,同样的错误就要到了。我已附上flash_programmer项目文件,并与所有我所做的更改Word文件。

可以请你让我知道什么错误我在做吗?

附件:
PM_Dialog
离线
最后看到:1天19小时前
工作人员
加入:2018-02-08 11:03
嗨anushiya,

嗨anushiya,

我不能复制你的问题,因为我们没有这种类型的SPI flash,所以我们不能测试你的代码。请尝试调试您的代码,以便找到错误的原因。我建议您将flash_programmer项目构建为programmer_uart,在调试模式下运行它,然后尝试通过UART从SmartSpippets连接SPI flash。通过这个过程,您可以找到代码的位置。

谢谢,PM_Dialog

anushiya
离线
最后看到:10个月4天前
加入:2017-12-20 02:30
你好,

你好,
我不是要求你实时调试代码。
由于Dialog的工作人员对flash程序员的代码有经验,Dialog的工作人员将知道在哪里需要添加信息,以便添加不同的闪存。
我只是想让你直观地检查我是否在所有相关的地方附加信息。顺便说一句,我们选择了AT25XE011的页面上AN-B-055 24 22指出,它支持的文件。

另一方面,如果你能送我一个flash程序员模板代码与评论信息应该包括什么,纪念这一共同标记(有些事TODO上面用一个例子TODO线),那么它会被用户确定所有的信息更容易被包括当他们试图引入不同的闪存。

谢谢你!

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

在spi_flash.c我包括
{at25xe011_jedec_id, at25xe011_jedec_id_matching_bitmask, at25xe011_total_flash_size, at25xe011_page_size, at25xe011_mem_prot_bitmask, at25xe011_mem_prot_none},
作为清单上的第7项
const SPI_FLASH_DEVICE_PARAMETERS_BY_JEDEC_ID_t SPI_FLASH_KNOWN_DEVICES_PARAMETERS_LIST []

是谁创造了改变的需求
1)在spi_flash.h从6数到7
//各种SPI Flash设备的定义
#define SPI_FLASH_DEVICES_SUPPORTED_COUNT(7) //在6之前7
2)然后include(在这个列表中,Index从0开始,所以我必须使用6。但是6和6之后的数字已经在SPI Flash设备定义中使用了。所以我很困惑。
/ /正义与发展党。AT25XE011, AT25DF011
的#define SPI_FLASH_DEVICE_INDEX_AT25XE011 6 // ??
#定义x1f4200 AT25XE011_JEDEC_ID 0
#定义xffff00 AT25XE011_JEDEC_ID_MATCHING_BITMASK 0
#定义AT25XE011_TOTAL_FLASH_SIZE地址0x20000
#定义AT25XE011_PAGE_SIZE 0 x100
#定义AT25XE011_MEM_PROT_BITMASK 4
#定义AT25XE011_MEM_PROT_NONE 0
#定义AT25XE011_MEM_PROT_ENTIRE_MEMORY_PROTECTED 4

我还在user_peripher_setup .h中包含了以下代码行
#define AT25XE011_MANF_DEV_ID (0x1F42) // AK: AT25XE011制造商和ID
#define AT25XE011_SIZE 131072 // AK: SPI Flash内存大小字节
#define AT25XE011_PAGE 256 // AK: SPI Flash内存页大小(字节)

我是否正确地包括所有配置信息在正确的地方在flash程序员项目或我丢失了任何东西或包括错误的信息?

PM_Dialog
离线
最后看到:1天19小时前
工作人员
加入:2018-02-08 11:03
嗨anushiya,

嗨anushiya,

闪光灯AT25XE011不是从SDK的支持,并在文档,表格提到6的所有受支持的记忆,从adesto家庭AT25DN011,AT25DF011,AT25DS011而不是AT25XE011(该文件仅提到了上表型闪存7: Performance of the SPI memories supported I will try to find out why we mention that flash in the doc, since I don’t see the reference of that flash type in the flash programmer). Regarding the additions that you made in the code, you are correct (you didn't have to change the whatever you changed in the periph_setup.h file, but even if you did it doesn't matter since those defines are not used, the values from the spi_flash.h are used), regarding the index that you used, that depends on the place that you will assign the flash in the SPI_FLASH_KNOWN_DEVICES_PARAMETERS_LIST[], in your case this 6 as you have inserted. So if the flash that you are using has the same commands as the adesto already used in the programmer (check the spi_flash.h) WRITE_ENABLE, READ_DATA etc, and the connection are proper, you should be ok. If not you will to try to access the flash and debug the fw in order to see why you cannot interface with the flash. As far as I can tell from the datasheet of the flash that you mentioned I see that the commands used are identical, and the flash should work even without the mods adding a new flash, since the recon of the flash occurs via the JEDEC ID which are identical to the already existing Adesto of the flash programmer.

由于PM_dialog

anushiya
离线
最后看到:10个月4天前
加入:2017-12-20 02:30
正如PM_dialog所确认的那样

作为PM_dialog证实,在flash_programmer的AT25XE011配置变化是由智能片断接受工具箱时flash_programmer被编译并从Out_jtag文件夹中的jtag_programmer.bin被复制,并在SmartSnippetsStudio \工具箱\ common_resources路径名称jtag_programmer_585.bin粘贴它。

在VCC和NCS是具有适当的电压。但所面临的问题是,由于加速度计LIS2DH12TR(其中未加电)共享SPI线SI,SO和SCK与AT25XE011,SI和SCK的电压低于1.5V,导致闪存未反应的下拉命令。一旦加速度计LIS2DH12TR从定制电路板取出,闪光灯能够进行编程。

非常感谢你的帮助。