你好,
具有DA14585和AT25XE011的闪存的自定义板通过JTAG连接连接到开发板DA14580-Devkt-P_VC。
使用SmartSnippet Studio V1.6.3.918 Kiel IDE我可以在调试模式下运行固件。
我正在尝试编写外部闪存,它正在抛出我们的错误。我已经附上了2个屏幕镜头。希望你能看到它们的问题。
1)我打开SmartSnippets工具箱,选择了JTAG序列号和芯片版DA14585_00
2)按CONNEC,该工具已成功配置SPI闪存端口和引脚
3)SPI_CLK:P0_0;SPI_EN:P0_3;spi_di:p0_5;SPI_DO:P0_6.
JTAG销连接是VBAT = 3.2V;GND;SW_CLK;和swdio
4)当我按“擦除”时,它会产生错误
[错误SPI Flash @ 18-05-08 13:14:00] SPI内存擦除失败。
5)当我试图刻录时,我得到:
[错误SPI Flash @ 18-05-08 13:15:10] JTAG地址0x81FEC(MSB第一)Addditional错误信息:FF FF FF F8
[错误SPI Flash @ 18-05-08 13:15:10]内存刻录失败。
谢谢您的帮助
设备:
设备编号:
DA14585和AT25XE011
嗨Anushiya,
SmartSnippets Toolbox使用Flash_Programmer项目才能刻录SPI闪存。默认闪存程序员不支持Adesto 25xe011 SPI闪光灯。为了使用这种类型的内存,您应该修改Flash程序员并添加该SPI闪存的配置。您可以在SDK的以下路径中找到Flash程序员项目:
da1458x_sdk \ 5.0.4 \ Utilities \ flash_programmer
构建Flash_Programmer项目时,您有两个选项,将其作为Programmer_jtag或Programmer_uart构建。在您的情况下,您应该将其作为programmer_jtag构建。修改和构建Flash程序员项目后,您应该从Out_JTAG文件夹中复制JTAG_Programmer.bin并粘贴smartsnippetsstudio \ 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项目文件和一个单词文件,其中包含我所做的所有更改。
你能告诉我我所做的错误吗?
嗨Anushiya,
我无法复制您的问题,因为我们没有这种类型的SPI Flash,所以我们无法测试代码。请尝试调试代码才能找到该错误的原因。我建议您将Flash_Programmer项目构建为Programmer_uart,以调试模式运行它,然后尝试通过UART连接SmartSppets的SPI闪存。使用该过程,您可以找到代码命中的位置。
谢谢,PM_DIALOG.
你好,
我不要求您实时调试代码。
由于对话人员经验丰富的闪存程序员代码对话框人员将知道需要添加完全信息以便添加不同的闪存。
我只是希望你在视觉上检查我是否在所有相关地方添加了信息。顺便说一句,我们选择了AT25XE011的页面上AN-B-055 24 22指出,它支持的文件。
另一方面,如果您可以向我发送闪存程序员模板代码,那么评论要包含的信息并用常用标记标记它(与Todo Line上方的示例类似的东西),那么它将更容易用户试图引入不同的闪存时要识别要包括的所有信息。
谢谢
在我脑海中有些问题在于我所做的改变
在spi_flash.c中包含
{at25xe011_jedec_id,at25xe011_jedec_id_matching_bitmask,at25xe011_total_flash_size,at25xe011_page_size,at 25xe011_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闪存设备的定义
#define spi_flash_devices_supported_count(7)// ak:7之前
2)然后包括(索引从此列表中的0开始,所以我必须使用6.但是在SPI闪存设备定义中已经使用了6个和数字。所以我在这里混淆了。
// ak。AT25XE011,AT25DF011
#define spi_flash_device_index_at25xe011 6 // ??
#define at25xe011_jedec_id 0x1f4200.
#define at 25xe011_jedec_id_matching_bitmask 0xffff00.
#define at25xe011_total_flash_size 0x20000
#define at25xe011_page_size 0x100.
#define at25xe011_mem_prot_bitmask 4.
#define在25xe011_mem_prot_none 0.
#define at25xe011_mem_prot_entire_memory_protected 4.
我还包括user_periph_setup.h中的以下行
#define at25xe011_manf_dev_id(0x1f42)// ak:aT25xe011制造商和ID
#define at25xe011_size 131072 // ak:spi闪存大小以字节为单位
#define at25xe011_page 256 // ak:spi闪存页面大小以字节为单位
我是否正确地将所有配置信息包含在Flash程序员项目中的正确位置,或者我错过了任何东西或包含错误的信息?
嗨Anushiya,
SDK中不支持AT25XE011,也不支持该文件,在表6中提到,从Adesto族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.
当PM_DIALOG被确认时,闪存_programmer在编译Flash_Programmer时接受Flash_Programmer的AT25xe011配置更改,并且将out_jtag文件夹中的JTAG_Programmer.bin用SmartSnippetsStudio \ Toolbox \ Common_resources路径中的名称jtag_programmer_585.bin复制并粘贴它。
VCC和NCS具有适当的电压。但由于加速度计LIS2DH12TR(未通电),所面临的问题是使用AT25XE011共享SPI线SI,SI和SI的电压下降到1.5V以下,导致闪存不会反应命令。一旦从定制板中移除加速度计LIS2DH12TR,闪光灯就可以编程。
非常感谢您的帮助PM_DIALOG。