由于14583芯片上有1024k闪存,我认为也许这个区域可以通过航空更新。但是在文档中,我找不到对应的数据表来描述如何更新DA14583中的上下文。我想知道你有没有像“AN-B-003: DA14580软件空中补丁(SPotA)”这样的文件,告诉你如何在ait上更新软件。不仅在DA14580中,也在DA14583中
设备:
由于14583芯片上有1024k闪存,我认为也许这个区域可以通过航空更新。但是在文档中,我找不到对应的数据表来描述如何更新DA14583中的上下文。我想知道你有没有像“AN-B-003: DA14580软件空中补丁(SPotA)”这样的文件,告诉你如何在ait上更新软件。不仅在DA14580中,也在DA14583中
嗨shezhe9,
14583和SUOTA没有专门的申请文件。但我认为你可以像da14580一样做到这一点,区别只是SPI的引脚配置。您可以尝试使用SDK5的接近应用程序进行试验。
由于MT_dialog
谢谢,我已经注意到这个芯片包含1K闪存与spi总线芯片。这意味着它只是把内部flash作为外部spi flash。
HI Shezhe9,你可能也想阅读AN-B-010,这是SUOTA的应用程序,并详细解释它。正如Marios提到的,它引用了14580,但14583只是14580+FLASH内部),因此同样的SUOTA方案工作(如14580中所述),在SDK5中,它包含在14583接近报告项目的项目示例中。
BR JE_DIalog
谢谢JE先生。另一个问题,你有没有14580代理端和主机端(如ios应用程序或andriod应用程序)的SUOTA源代码示例?
嗨shezhe9,
您可以在proximity_reporter和智能标记参考设计中找到SUOTA配置文件的实现。到目前为止,主机端已经发送了一封邮件。
由于MT_dialog
你好,
suota模块似乎使用了大约5KB,这使得我的实现超过了32K。是否存在最小值。这个的实现。端口选择和所有不需要的,如果这是固定的。此外,在示例中接近模块的用途是什么。我不认为这是自定义实现所需要的?
问候
Gayan
嗨gayan_gamage,
SUOTA实现没有更小的版本。关于这个例子的接近模块,我不太明白你的意思,接近的例子包括SUOTA配置文件
为了通过空中更新,现有的接近固件。如果你只是想在你的自定义设计中添加SUOTA配置文件,你不必添加邻近配置文件或电池或邻近示例实现的其他配置文件。
由于MT_dialog
亲爱的MT_dialog,
我还想测试一个OAT功能与DA14583和对话框USB加密狗在窗口PC。
但我无法理解测试环境。
1)在DA14583上配置fw_multi_part_spi.bin文件。
2)我应该为对话USB加密狗执行哪个项目?
3)我应该在windows PC上执行哪个程序?
我为SUOTA启动器运行了一个SmartSnippets程序。但是我不能连接COM端口,因为连接按钮没有激活。
嗨hogyunkim,
2)我认为你想使用加密狗作为一个中心和583作为一个设备,没有必要在加密狗上下载任何fw,智能片段将在连接时这样做(当你在智能片段中点击连接)。
3)您应该运行智能片段和OTA应用程序,这将允许您使用加密狗作为中心,并将SUOTA中心fw下载到加密狗中,您必须使用UART接口,以便“连接”选项可用。
由于MT_dialog
亲爱的对话框,
我的加密狗无法激活"连接"按钮。
在以前,我可以连接,但现在我不能连接到我的加密狗。
有任何固件执行USB加密狗吗?
我已经选择了正确的COM口与USB接口。
最好的问候,
嗨hogynkim,
如果Smart Snippets OTA服务中的连接按钮被禁用,是因为您正在使用JTAG接口来连接工具,而不是UART端口。当智能片段启动时,请选择普通UART模式(而不是UART/SPI模式)。打开OTA服务,点击“Connect”按钮,Smart Snippets会提示“Loading firmware, please wait....”,之后应该会提示“firmware loaded successfully”,开始扫描程序。扫描过程将自动结束。
由于MT_dialog
谢谢你的评论。
我成功地用SUOTA下载了一个新的图像到DA14583板。
因此,我将OTA配置文件合并到DSPS项目
之后,我再次使用合并后的DSPS项目进行测试。
但是我从下面的SmartSnippets中得到了消息。
我做错了什么?我参考了FAQ中“如何将SUOTA配置文件添加到我的SDK 5.0.3应用程序?”页面的评论。
我也检查了下载图像是否正常。
==============================================================================
[INFO @17-03-14 18:46:01]正在与目标设备建立连接…
[INFO @17-03-14 18:46:02]与目标设备的链路已经建立。
[INFO @17-03-14 18:46:02]特征发现开始。
[INFO @17-03-14 18:46:03]特征发现完成。
[INFO @17-03-14 18:46:37]固件下载开始…
[info @17-03-14 18:46:37] spotar_img_started
[INFO @17-03-14 18:46:37]内存信息:
0字节
[error @17-03-14 18:46:37] spotar_inval_product_hdr .
[INFO @17-03-14 18:46:37]固件下载失败。
[INFO @17-03-14 18:46:37]目标设备已断开连接。请尝试重新建立链接。
==============================================================================
最好的问候,
嗨hogyunkim,
你得到的错误表明在flash中的产品头有问题,这是唯一的原因,你可以有这种错误。在你的多部分图像中是否有一个产品标题(地址0x1F000),如果有一个,它是否有适当的产品标题签名0x70和0x52 ?
由于MT_dialog
亲爱的对话框,
我检查了产品标题,得到了下面的数据
[0x1F000] 70 52 00 00 00 80 00 00
[0x1F008] 00 30 01 00 FF FF FF FF
[0x1F010] FF FF FF FF FF FF FF
...
我认为多部分的图像是正确的。
我怀疑DA14583的SPI通信到闪存。
我在DSPS项目的sdk_driver文件夹中包含了spi_c和spi_flash.c文件。
我在user_peripheral _setup.h文件中配置了SPI_PORTs和SPI_PINs。
DSPS项目有什么固定点吗?
最好的问候,
嗨hogyunkim,
您是否应用了on_spotar_status_change()函数以便启用flash,因为您的设备是583,以便应用程序启用flash ?
你可以在prox_reporter示例中找到实现,下面是函数的实现代码:
Void on_spotar_status_change(const uint8_t spotar_event)
{
#if defined(__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_event == SPOTAR_END)
{
//关闭SPI Flash
spi_flash_power_down ();
}
# endif
}
#endif // (BLE_SPOTA_RECEIVER)
/// @} app
由于MT_dialog
亲爱的对话框,
我已经把这段代码放到user_sps_device.c文件中。
我找到了我的DSPS项目不能运行OTA操作的根本原因。
原因是我将GPIO0_3设置为以下。
=> gpio_configupin (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
亲爱的对话框,
我也知道你的评论。
所以,奇怪的是SUOTA操作是在GPIO0_3引脚上进行的。
如果您测试下面的环境,那么您可以重现这种现象。
1) d14580devkt-p_vb, da14583atdb-p
2) ble_app_ota.uvprojx
+ gpio_configupin (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不起作用的原因)。你能做什么在你的情况中,因为我得到了你想要额外的SPI设备在583年申请SUOTA做的同样的事情(或多或少)的配置针而言,不配置你的别针periph_init()函数与特定functionallity但他们PID_GPIO当你要使用它们,应用相应的配置就完成解除你的别针PID_GPIO functionallity。
由于MT_dialog
亲爱的对话框,
谢谢你的回复。
我理解你的意思。
你的意见是,如果我想使用带有SPI通信的OTA函数,那么我不使用PID_SPI_DI定义,或者在完成OTA函数后必须使用PID_SPI_DI定义。
我还有一个问题。
那么PID_SPI_CLK, PID_SPI_EN, PID_SPI_DO定义不影响OTA函数?
最好的问候,
嗨hogyunkim,
不,它不会影响其他SPI引脚,因为这些引脚和被配置为输出功能,而不是作为SPI模块的输入。
由于MT_dialog