你好,
开发板DA14580-DEVKT-P_VC通过JTAG连接到一个带有DA14585和闪存AT25XE011的定制板。
使用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
嗨anushiya,
SmartSnippets工具箱使用flash_programmer项目来刻录SPI flash。Adesto 25XE011 SPI Flash不受默认Flash程序员的支持。为了使用这种类型的内存,您应该修改flash程序员并添加该SPI flash的配置。你可以在以下SDK路径中找到flash程序员项目:
DA1458x_SDK \ 5.0.4 \ \ flash_programmer的工具
当您构建flash_programmer项目时,您有两个选项,将其构建为programmer_jtag或programmer_uart。在本例中,应该将其构建为programmer_jtag。在修改和构建flash程序员项目之后,您应该从Out_jtag文件夹中复制jtag_programmer.bin,并将它(以相同的名称)粘贴到smartsnippetstudio \Toolbox\common_resources路径中,该路径位于该工具的安装文件夹中。之后,您可以下载固件到Adesto 25XE011 SPI Flash
谢谢,PM_Dialog
非常感谢你的建议。我做了修改,从Out_jtag文件夹中编译并复制了jtag_programmer.bin,并将其粘贴到SmartSnippetsStudio\Toolbox\common_resources路径中,作为jtag_programmer.bin和jtag_programmer_585.bin,因为该文件夹最初有两个文件。但同样的错误也出现了。我附加了flash_programmer项目文件和一个word文件,其中包含我所做的所有更改。
你能让我知道我犯了什么错误吗?
嗨anushiya,
我不能复制你的问题,因为我们没有这种类型的SPI flash,所以我们不能测试你的代码。请尝试调试您的代码,以便找到错误的原因。我建议您将flash_programmer项目构建为programmer_uart,在调试模式下运行它,然后尝试通过UART从SmartSpippets连接SPI flash。通过这个过程,您可以找到代码的位置。
谢谢,PM_Dialog
你好,
我不是要求你实时调试代码。
由于Dialog的工作人员对flash程序员的代码有经验,Dialog的工作人员将知道在哪里需要添加信息,以便添加不同的闪存。
我只是想让你目测一下我是否在所有相关的地方都添加了信息。顺便说一下,我们选择了AT25XE011,因为24页第22页的AN-B-055文件表示支持它。
另一方面,如果你能送我一个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
#定义x20000 AT25XE011_TOTAL_FLASH_SIZE 0
#定义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程序员项目或我丢失了任何东西或包括错误的信息?
嗨anushiya,
flash AT25XE011不支持SDK和文档,在表6中提到所有支持的存储器,从adesto家族的AT25DN011, AT25DF011, AT25DS011而不是AT25XE011(文档只在表7中提到那种类型的flash:我将尝试找出为什么我们在文档中提到flash,因为我在flash程序员中没有看到flash类型的引用)。关于增加你的代码,你是正确的(你不需要改变任何你periph_setup.h文件改变了,但即使你没关系因为这些定义不习惯,使用spi_flash.h的值),对您使用的指数,取决于您将在SPI_FLASH_KNOWN_DEVICES_PARAMETERS_LIST[]中分配flash的位置,在您的情况下,您插入的是6。所以,如果你正在使用的flash有与adesto已经在程序员中使用的相同的命令(检查spi_flash.h) WRITE_ENABLE, READ_DATA等,连接是正确的,你应该是好的。如果不是,你将尝试访问flash和调试fw,以了解为什么你不能与flash接口。据我可以告诉从flash的数据表,你提到我看到是相同的,使用的命令和flash应该即使没有flash插件添加一个新的工作,因为flash的侦察发生通过与已经存在的相同的电平ID Adesto flash程序员。
由于PM_dialog
PM_dialog证实,AT25XE011配置改变flash_programmer接受智能片段工具箱flash_programmer编译时的jtag_programmer.bin Out_jtag文件夹复制粘贴的名字jtag_programmer_585.bin SmartSnippetsStudio \工具箱\ common_resources路径。
VCC和nCS都有合适的电压。但面临的问题是,由于加速度计LIS2DH12TR(未上电)与AT25XE011共享SPI线SI, SO和SCK, SI和SCK的电压被拉低到1.5V以下,导致闪存对命令没有反应。一旦加速度计LIS2DH12TR从定制板上被移除,闪光灯就可以被编程了。
非常感谢你的帮助。