SPI闪光读写写入失败

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

嗨对话框
我使用外部闪光灯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,输出,pid_spi_do,false);
gpio_configurepin(gpio_port_0,gpio_pin_3,输出,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);
/ *
************************************************************************************
*主循环
************************************************************************************
* /
而(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年3个月前
加入: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中工作
如果代码大小如下所述,则应用程序图像不在RAM和Flash中工作。

程序尺寸:CODE = 21612 RO-DATA = 3276 RW-DATA = 80 ZI-DATA = 9004

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

lt_dialog(未经验证)
你好,

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

Mahesh.
离线
最后一次露面:3年3个月前
加入: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年3个月前
加入:2016-01-04 14:03
你好,

你好,
我尝试使用“prox_reporter”示例。Prox_reporter在RAM和闪存中工作,但代码大小是
程序尺寸:Code = 22868 RO-DATA = 3220 RW-DATA = 128 ZI-DATA = 8008(在UVISION V5.17.0.0中)。
我会根据您的建议检查。这里怀疑是,我的应用程序图像是工作RAM,为什么它不在闪存中工作。
是任何上下文将在那里。

lt_dialog(未经验证)
你好,

你好,
通过SmartSnippet将固件闪烁到Flash时是可引导的选择?另外,请记得在写之前做一个擦除。

Mahesh.
离线
最后一次露面:3年3个月前
加入:2016-01-04 14:03
你好

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

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

嗨mahesh,

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

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年3个月前
加入: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年3个月前
加入:2016-01-04 14:03
你好,

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

Mahesh.
离线
最后一次露面:3年3个月前
加入:2016-01-04 14:03
你好,

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

每次我都读取了来自闪存的1024个字节的应用程序特定数据。是数据大小的任何限制,可以一次从闪存中读取。
初始5到6个循环的读数(即,从闪存中读取的1024字节),它很快就完成。但是,在那个读取周期之后,它需要大约10秒。我不是想到的,为什么这是一个很多时间从闪存中读取1024个字节。只有在闪存中编程应用程序图像时,才会才能占用。在开发模式下,阅读周期很快就完成。我怀疑介于两者之间发生引导加载程序代码干扰。请告知想法在阅读周期中解决此延迟。

lt_dialog(未经验证)
你好,

你好,
我们仍然需要缩小你第一次见到的问题。
从那些长期读数读数仍然正确的值读数仍然是预期的吗?
您的项目中的睡眠设置是什么?Arch_sleep_off,Arch_ext_sleep_on或Arch_deep_sleep_on?请使用Arch_sleep_off(如果没有),只需简化问题。
您还能监控SPI CS引脚吗?在长时间读取的情况下,SPI CS引脚应长时间观察到较低。
你可以用较小的块做连续的读数,说512/256字节等,看看结果是什么?

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

Mahesh.
离线
最后一次露面:3年3个月前
加入:2016-01-04 14:03
你好,

你好,
它正在长时间以及读取值而不是预期的。
我们项目中的睡眠设置仅是ARCH_SLEEP_OFF。
如何观察SPI CS状态。我需要连接CRO探头的引脚。
我试图在每次迭代中读取256个字节,但仍然我得到了所有的零。

请帮助我检查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年3个月前
加入:2016-01-04 14:03
你好,

你好,
此信息帮助我识别问题。
我尝试了“spi_flash_release_from_power_down()”功能但不起作用。后来我尝试了“spi_flash_enable()”功能,使用此功能,我能够正确读取特定于应用程序的数据。

非常感谢你提供的信息。

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

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

嗨mahesh,

在闪存中刻录并从580运行的最大应用程序取决于580而不是闪光灯。限制是42KB的Sysram可用,因为您必须计算堆等交换内存,有关此信息,请检查UM-B-011内存映射和分散文件。另请注意,与评估许可证有32K的限制。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年3个月前
加入: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年3个月前
加入:2016-01-04 14:03
你好,

你好,
我用I2C从设备接口DA14583。有时我能够从I2C从设备读取数据。但是,有时候处理令人震惊
“wait_until_no_master_actity()”(即在i2c驱动器中)无限期。处理器以提到的指示击中的任何具体原因。

请指导我解决这个问题。

lt_dialog(未经验证)
嗨mahesh,

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

主题锁定