由于14583芯片上有1024k的flash,我想这个区域可以空运更新。但是在文档中,我找不到相应的数据表来描述如何更新DA14583中的上下文。我想知道你是否有像“AN-B-003: DA14580空中软件补丁(SPotA)”这样的文件,告诉如何在ait上更新数据软件。但不仅在DA14580,也在DA14583
关键词:
设备:
由于14583芯片上有1024k的flash,我想这个区域可以空运更新。但是在文档中,我找不到相应的数据表来描述如何更新DA14583中的上下文。我想知道你是否有像“AN-B-003: DA14580空中软件补丁(SPotA)”这样的文件,告诉如何在ait上更新数据软件。但不仅在DA14580,也在DA14583
嗨shezhe9,
没有专门针对14583和SUOTA的申请文件。但是我认为你能够做那就像da14580,区别只是SPI的引脚配置。您可以尝试使用SDK5的邻近应用程序。
由于MT_dialog
谢谢,我注意到这个芯片包含1K Flash和spi总线在芯片上。这意味着它把内部flash也作为外部spi flash。
您好,Shezhe9,您可能还想阅读AN-B-010,这是SUOTA的应用程序,并对其进行了更详细的解释。正如Marios提到的,它引用了14580,但14583只是内部的14580+闪存),因此相同的SUOTA方案在SDK5中也起作用(如14580中所述),它包含在14583邻近报告器项目的项目示例中。
BR JE_对话
由于我先生。还有一个问题,在14580代理端和主机端,如ios app或android app,你有任何SUOTA源代码的例子吗?
嗨shezhe9,
您可以在proximity_reporter和智能标记参考设计中找到SUOTA配置文件的实现。在主机端已经发送了一封邮件。
由于MT_dialog
你好
suota模块似乎使用了大约5KB,这使得我的实现超过了32K。有一个最小的。实现这一点。端口选择和所有这些都是不需要的,如果这是固定的。另外,在这个例子中,proximity模块的用途是什么?我不认为这是一个定制实现所必需的?
问候
加扬
嗨gayan_gamage,
SUOTA实现没有更小的版本。关于示例的接近模块,我不太明白你的意思,接近示例包括了SUOTA配置文件
要通过无线方式更新现有的接近固件。如果您只想在自定义设计中使用SUOTA配置文件,则不必添加邻近配置文件或电池或邻近示例实现的其他配置文件。
由于MT_dialog
亲爱的MT_dialog,
我还想测试一个OAT功能DA14583和对话USB狗在窗口PC。
但是我不能理解测试环境。
1)将fw_multi_part_pi .bin文件放入DA14583中。
我应该为对话USB狗执行哪个项目?
我应该在windows电脑上执行哪个程序?
我为“SUOTA启动器”运行了一个SmartSnippets程序。但是我不能连接COM端口,因为连接按钮没有激活。
嗨hogyunkim,
2)我假设你想使用软件狗作为一个中心和583作为一个设备,没有必要下载任何fw上的软件狗,智能片段将做这个连接(当你击中智能片段连接)。
3) 您应该运行Smart Snippets和OTA应用程序,这将允许您使用加密狗作为中心,并将SUOTA central fw下载到加密狗中,您必须使用UART接口才能使用“连接”选项。
由于MT_dialog
亲爱的Dialog,
我不能用我的狗狗激活"连接"按钮。
以前我可以连接,但现在我不能连接我的狗。
USB加密狗有固件要执行吗?
我已经用USB donlge端口选择了正确的COM端口。
最好的问候,
嗨,霍金,
如果Smart Snippets OTA服务中的connect(连接)按钮被禁用,是因为您使用JTAG接口来连接工具,而不是UART端口。智能代码段启动时,请选择普通UART模式(而不是UART/SPI模式)。在打开OTA服务并点击“连接按钮”后,智能代码段将指示“正在加载固件,请稍候…”,之后应指示“固件已成功加载”,并将启动扫描过程。扫描程序将自动完成。
由于MT_dialog
谢谢你的评论。
我成功地下载了一个新的图像到DA14583板与索塔。
所以,我把在线旅行社的资料合并到DSPS项目中
之后,我用合并的DSPS项目再次进行了测试。
但我从下面的SmartSnippets得到了消息。
我做错了什么?我参考了FAQ上关于“如何将SUOTA配置文件添加到我的SDK 5.0.3应用程序?”页面的评论。
我还检查了下载图像是否正常。
==============================================================================
[信息@17-03-14 18:46:01]正在建立与目标设备的链接。。。
[INFO@17-03-14 18:46:02]已建立与目标设备的链接。
[INFO @17-03-14 18:46:02]开始发现特征。
[INFO@17-03-1418:46:03]特征发现已完成。
[INFO @17-03-14 18:46:37]固件下载启动…
[信息@17-03-14 18:46:37]SPOTAR_IMG_启动
[INFO @17-03-14 18:46:37]内存信息:
0字节
spotar_inval_product_hdr . [error @17-03-14 18:46:37
[INFO@17-03-14 18:46:37]固件下载失败。
[INFO@17-03-14 18:46:37]目标设备已断开连接。请尝试重新建立链接。
==============================================================================
最好的问候,
嗨hogyunkim,
你得到的错误表明在flash中的产品标题有问题,这是你能有这种错误的唯一原因。在您的多部分映像(地址0x1F000)中是否有一个产品头,如果有,它是否具有正确的产品头签名0x70和0x52 ?
由于MT_dialog
亲爱的Dialog,
我检查了产品标题,得到了下面的数据
[0x1F000] 70 52 00 00 00 80 00 00
[0x1F008] 00 30 01 00 FF FF FF FF FF
[0x1F010] FF FF FF FF FF
...
我认为多部分图像是正确的。
我怀疑在DA14583的SPI通信闪存。
我将spi.c和spi_flash.c文件包含在DSPS项目的sdk_驱动程序文件夹中。
我在user_peripher_setup .h文件中配置了SPI_PORTs和SPI_PINs。
在DSPS项目中是否有固定点?
最好的问候,
嗨hogyunkim,
你是否应用了on_spotar_status_change()函数来启用flash,因为你的设备是583,以便应用程序启用flash ?
你可以在prox_reporter例子中找到实现,下面是函数实现的代码:
更改spotar状态时无效(const uint8 spotar事件)
{
#if define (__DA14583__) && (!SPOTAR_SPI_DISABLE)
Int8_t man_dev_id = 0;
man_dev_id = spi_flash_enable(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN);
if (man_dev_id == SPI_FLASH_AUTO_DETECT_NOT_DETECTED) / /发送到指定位置
{
//设备未被识别。使用默认参数。
//也可以在这里断言错误。
spi_flash_init (SPI_FLASH_DEFAULT_SIZE SPI_FLASH_DEFAULT_PAGE);
}
if(spotar\U事件==spotar\U结束)
{
//关闭SPI Flash
spi_flash_power_down ();
}
#恩迪夫
}
# endif / / (BLE_SPOTA_RECEIVER)
/ / / @}应用
由于MT_dialog
亲爱的Dialog,
我已经将这段代码放入了user_sps_device.c文件中。
我找到了根本原因,也就是我的DSPS项目无法运行OTA操作的原因。
原因是我将GPIO0_3设置为如下。
=> GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_3, INPUT_PULLDOWN, PID_SPI_DI, false);
你能告诉我为什么这个pin与OTA操作有关吗。
我想知道其他影响OTA运行的引脚。
我使用DA14580DEVKT-P_VB与DA14583芯片。
我使用了一个带SPI通信的闪光区。
我也没有与PIN0_3连接。
最好的问候,
嗨hogyunkim,
由于您使用的是583(并且您在DSPS应用程序中定义了所使用的开发工具包是583),因此不使用来自SUOTA sw的GPIO0_3引脚,如果选择583作为运行设备,则SUOTA使用的引脚是583闪存的引脚(2_0 CLK/2_3 CS/2_4 MISO/2_9 MOSI)。如果是580,则P0_3用作外部闪存的CS。
由于MT_dialog
亲爱的Dialog,
我也知道你的评论。
所以,在GPIO0_3引脚上进行了奇怪的SUOTA操作。
如果您测试下面的环境,那么您可以复制这个场景。
1) D14580DEVKT-P_VB DA14583ATDB-P
2) ble_app_ota.uvprojx
+ GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_3, INPUT_PULLDOWN, PID_SPI_DI, false);在set_pad_functions()函数。
嗨hogyunkim,
是的,我能够复制您所经历的,当您将引脚配置为PID_SPI_DI时,当SUOTA运行时(每当启动与闪存的交互时,它配置SPI模块的引脚),您似乎有两个引脚同时连接到一个SPI模块。当发生类似情况时(两个管脚都有PID_SPI_DI,因此一个输入中有两个源),管脚的功能将分配给GPIO索引较小的GPIO,因此分配给03端口管脚(这就是SUOTA不工作的原因)。在您的情况下,您可以做的是,既然我知道您希望在583上有一个额外的SPI设备,就引脚配置而言,应用与SUOTA相同的东西(或多或少),不要在periph_init()中配置您的引脚具有特定功能的函数,但将其作为PID\U GPIO使用,一旦要使用它们,请在完成对PID\U GPIO功能的引脚反配置后立即应用相应的配置。
由于MT_dialog
亲爱的Dialog,
谢谢你的回复。
我理解你的看法。
你的评论是,如果我想使用OTA函数与SPI通信,那么我不使用PID_SPI_DI定义,或者我必须在完成OTA函数后使用PID_SPI_DI定义。
我还有一个问题。
那么PID_SPI_CLK、PID_SPI_EN、PID_SPI_DO定义对OTA函数没有影响?
最好的问候,
嗨hogyunkim,
不,它不会影响其他SPI引脚,因为这些引脚和被配置为输出功能,而不是作为对SPI模块的输入。
由于MT_dialog