SPI闪光读写写入失败

23个帖子/ 0新
最后一篇
车道
离线
最后一次露面:2周5天前
加入:2015-07-14 14:21
SPI闪光读写写入失败

你好dialog
我使用外部闪光灯W25x20进行数据存储,但是当SPI初始化完成时,我无法通过“jedec_id = spi_read_flash_jedec_id()读取jedec_id;”在函数spi_flash_auto_detect();
Set_Pad_Functions()中的接口设置如下:

gpio_configurepin(gpio_port_0,gpio_pin_0,输出,pid_spi_clk,false);
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_6, OUTPUT, PID_SPI_DO, false );
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_3, OUTPUT, PID_SPI_EN, true );
gpio_configurepin(gpio_port_0,gpio_pin_5,输入,pid_spi_di,true);

并且在主循环之前初始化:
spi_flash_init(0x40000,0x100);
spi_flash_enable(gpio_port_0,gpio_pin_3);
/*
************************************************************************************
*主循环
************************************************************************************
* /
while(1)
{
}
我无法读取函数spi_flash_auto_detect()中的jedec_id。是什么不正确。

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨巷,

嗨巷,

请查看SDK5中的Peripheral_examples目录中的SPI_FLASH示例,以检查Jedec_ID如何从SPI_FLASH_AUTO_DETECT()函数读取。示例代码能够读取W25x20 SPI内存闪存,而无需任何修改。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我拍摄了“BLE_APP_PERITERWAL”示例并完成了代码的一些更改。截至目前我正在使用Keil Uvision V5.17.0.0(Trail版本)和使用SDK(DA14583)

案例1:在RAM中工作,但在闪存中工作
它在RAM中正常工作(即开发模式)。如果我通过使用“SmartSnippets”工具在Flash中下载相同的代码,则无法正常工作。即使我无法在移动侧Android应用程序上看到BLE设备名称(在闪存中加载图像时)。

程序尺寸:CODE = 19784 RO-DATA = 3276 RW-DATA = 80 ZI-DATA = 8924

案例2:不在RAM和Flash中工作
If the code size is as mentioned below, Application image is not working in both RAM and FLASH.

Program Size: Code=21612 RO-data=3276 RW-data=80 ZI-data=9004

请帮我解决这个问题。
有任何内存约束。DA14583中的RAM使用率占用的主要和次级引导加载程序代码的内存将占用。

lt_dialog(未经验证)
你好,

你好,
通过SmartSnippet将固件下载到Flash时,请确保选择“可启动”。或者您还可以通过定义宏CFG_PrintF来启用日志打印,以查看固件是否成功执行。

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我在开发板上使用了LED指示而不是使用CFG_PRINTF。我已经评论了我的代码,将LED相关代码放在BLE外围代码中。我在闪存中放置了应用程序图像(具有LED代码+ BLE外围代码)。它在闪存中工作。如果我包括我的代码(具有我的应用程序代码+ LED代码+ BLE外围代码),那么都在一起在RAM中工作。但如果代码(具有我的应用程序代码+ LED代码+ BLE外围代码),则加载在闪存中,则它不起作用。甚至带领眨眼也不会来。我怀疑代码大小可能会创建一个问题。我按照正确的过程,能够访问闪光灯来编写应用程序图像。我面临着较高尺寸的代码的问题。 Please help to resolve the issue.

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

在583中没有任何特殊的代码限制,它对于从Sysram运行的代码有点奇怪(我想通过keil下载它)而不是通过代码大小通过闪存工作。我想代码没有出于某种原因从闪存启动,或者如果您使用睡眠,它可能不会醒来。可以检查您是否可以使用Proximity示例通过Flash启动,其代码比自定义应用程序更大(代码= 23636 RO-DATA = 3220 RW-DATA = 128 ZI-DATA = 8008)。另外要检查应用程序启动是否正确并启动您可以在系统从PeripH_Init函数中启动时打开该LED,只需检查应用程序靴子。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我尝试使用“prox_reporter”示例。Prox_reporter在RAM和闪存中工作,但代码大小是
Program Size: Code=22868 RO-data=3220 RW-data=128 ZI-data=8008 (In uVision V5.17.0.0).
I will check as per your suggestion. Here doubt is, my application image is working RAM, why it is not working in the Flash.
是任何上下文将在那里。

lt_dialog(未经验证)
你好,

你好,
Is bootable selected when flashing the firmware into flash via SmartSnippets? Also, remember to do an erase before write.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好

你好
我正在擦除,然后刻录应用程序图像。我只选择可启动..

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

关于接近示例,我一直在寻找修改后的接近程序,为什么我的邻近代码更大,但即使是图像大于您尝试下载的自定义程序,所以我不认为有问题尺寸。它必须存在于应用程序中的错误,在您的自定义代码中,您是否与SPI完全接口?另请确保您的代码靴SPI,确保在启动时在580中下载该程序,尝试使用外围初始化中的LED检查它。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好

你好
我有两个自定义应用程序(即Custo雷竞技安卓下载m1和Custom2)。在Custom1中,我正在使用SPI从闪存中获取特定于应用程序的数据。在Custom2中,我根本没有使用SPI。对于Custom1和Custom2应用程序,我面临相同的问雷竞技安卓下载题(即在RAM(开发模式)工作而不在Flash(即运行模式)中工作)。请提供信息,我需要做的配置是什么,以运行模式运行应用程序图像(即从闪存引导)。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

没有特定的配置来运行SPI的自定义应用程序,您需要做的就是只需刻录应用程序,使用智能片段并将图像标记为SM请求时可引导。由于您能够通过SPI运行其他应用程序(参考设计等)但不是您的自定雷竞技安卓下载义应用程序,我怀疑问题在于您的自定义应用程序代码(当您说自定义1和Custom 2时,我想您的意思是应用程序配置文件包含在您的自定义代码中)。由于您与SPI内存进行了接口,并且它在SRAM上工作,但在通过SPI启动时,我怀疑您的代码的SPI访问有问题,您可以尝试从自定义应用程序中删除SPI访问并尝试从spi启动。也许与您提到的应用程序特定数据有一些冲突,如何通过智能片段和总数标题程序员将这些数据加载到SPI的数据?检查存储这些数据的偏移量。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我正在使用Smart Scippet工具在闪存中编写特定于应用程序的数据。我正在从0x16000位置写出特定于应用程序的数据。

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
无论我是否可以将应用程序图像和应用程序特定数据保留在DA14583的内部闪光灯中的任何内存区域中。

每次我都读取了来自闪存的1024个字节的应用程序特定数据。是数据大小的任何限制,可以一次从闪存中读取。
Initial 5 to 6 cycles of reading (i.e. 1024 bytes reading from Flash), it is finishing quickly. But after that for every reading cycle it is taking approximately 10seconds. I am not getting Idea, why it is taking this much time to read 1024 bytes from Flash. This much time is taking only if the application image is programmed in Flash. In development mode , reading cycles are finishing very quickly. I am suspecting Boot loader code interference occurring in between. Please give idea to resolve this delay in reading cycle.

lt_dialog(未经验证)
你好,

你好,
We still need to narrow down the problem you met first.
从那些长期读数读数仍然正确的值读数仍然是预期的吗?
您的项目中的睡眠设置是什么?Arch_sleep_off,Arch_ext_sleep_on或Arch_deep_sleep_on?请使用Arch_sleep_off(如果没有),只需简化问题。
您还能监控SPI CS引脚吗?在长时间读取的情况下,SPI CS引脚应长时间观察到较低。
And could you do successive reads with smaller chunks, say 512/256 bytes or etc., and see what the result is?

SPI读取没有特别限制。
应用程序运行时,引导加载程序不存在。

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
It is taking long-time as well as the read values not the expected one.
我们项目中的睡眠设置仅是ARCH_SLEEP_OFF。
如何观察SPI CS状态。我需要连接CRO探头的引脚。
我试着在每个迭代中读取256字节,但年代till I am getting all zeros.

请帮助我检查SPI CS引脚的状态,同时从内部闪光灯读取数据。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

它听起来像你的SPI处于电源下行模式,您是否在开始阅读前重新启用您的SPI,您是否调用SPI_FLASH_RELEASE_FROM_POWER_DOWN();为了将SPI从电源释放出来?583 OTP中的二级引导加载程序将在启动后关闭闪光灯。CS引脚是583芯片上的2_3引脚。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
This information help me a lot to identify the issue.
我尝试了“spi_flash_release_from_power_down()”功能但不起作用。后来我尝试了“spi_flash_enable()”功能,使用此功能,我能够正确读取特定于应用程序的数据。

Thank you very much for the information.

我需要一些关于我可以保持在内部闪存(可以工作)中的单个应用程序映像的最大大小的信息。这意味着我想知道应用程序大小限制。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

The maximum application that you burn in flash and run from the 580 depends on the 580 and not the flash. The limitation is the 42KB of Sysram available, in that you will have to calculate the exchanged memory the heaps etc, for more info about this please check the UM-B-011 Memory map and scatter file. Also be aware that keil has a 32K limitation with the evaluation licence.

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我已经拍了BLE外围代码并编辑。截至目前,我能够在BLE外设中使用写回调并通知回调。但我无法使用带有BLE外围代码的读回调。请提供指导,我可以获得读回调。哪个文件和功能,我需要用来将从BLE客户端(即移动设备)的READCALL访问到BLE服务器(即对话框半导体)开发板。雷竞技电竞平台

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨mahesh,

嗨mahesh,

读回调?您的意思是标准回调,指示客户端已从对等体读取数据,这种处理程序不存在,指示客户端从对等体读取的指示没有达到应用程序级别。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3 years 3 months ago
加入:2016-01-04 14:03
你好,

你好,
我用I2C从设备接口DA14583。有时我能够从I2C从设备读取数据。但是,有时候处理令人震惊
"WAIT_UNTIL_NO_MASTER_ACTIVITY()" (i.e. in the I2C drive) for indefinite time. Any specific reason that the processor getting struck at the mentioned instruction.

请指导我解决这个问题。

lt_dialog(未经验证)
嗨mahesh,

嗨mahesh,
您能为您遇到此I2C问题创建另一个线程吗?论坛用户更容易搜索类似主题。谢谢你的理解。

主题锁定