与MCU的硬件连接有可能升级蓝牙固件

6个帖子/ 0新
最后一篇
斯巴达
离线
最后一次露面:1年1个月前
加入:2016-03-14 14:22
与MCU的硬件连接有可能升级蓝牙固件

I have a question to expert in this area. My question is the next: how i need to connect bluetooth chip to mcu to have possibility to download a program to internal flash memory and sometimes have posibility to upgrade program in internal flash.

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

嗨斯巴达,

由于583的主函数是从内部闪存启动,因此您提到的方案有点棘手。583配备了OTP引导加载程序,可以从主控制并检查UART引脚和SPI,并存在额外的引导加载程序,称为高级引导加载程序。现在据我所知,您可以从外部MCU擦除内部闪存(这需要一点努力,因为您必须确保580不使用它)并直接刻录内部闪光灯中的图像您可以使用580以更新闪存(这是更棘手的)。目前不支持这种实现。

谢谢mt_dialog.

斯巴达
离线
最后一次露面:1年1个月前
加入:2016-03-14 14:22
有一个想法和需要

有一个想法,需要对MT_DIALOG专家的看法。下一个想法是:如果我使用从MCU的硬件SPI将连接到推销P0_0-P0_3(启动序列中的引导引脚),以下载将配置SPI的智能程序(留下P2_0,P2_3,P2_4,P2_9未连接)BT到内部闪存和GPIOS作为软件SPI。需要使用软件SPI将真正固件下载到内部闪光灯作为MCU和BT与BT之间的内部SPI连接之间的连接。有可能升级蓝牙固件的方法是否有可能???还有一个备注:我可以将PIN P0_0-P0_3重新配置为软件SPI的GPIOS(智能程序),(在这种情况下,我不需要软件连接)。

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

嗨斯巴达,

您将不得不将高级引导加载程序刻录到SPI以来,自583不使用您提到的引脚,我不明白您的设置或您想要说的是可以更具描述性吗?为了通过BLE更新固件,您可以使用Suota配置文件,并且是的,您可以在运行时重新配置580的引脚。

谢谢mt_dialog.

diederikloos.
离线
最后一次露面:2年9个月前
加入:2015-07-16 10:26
Hello MT对话框,

Hello MT对话框,

Sparta和我在同一项目上工作,所以我会尝试解释我们所拥有的问题和我们想尝试的解决方案。

我们拥有基于LPC4357的产品,DA14583芯片。我们正在使用Wi-Fi更新/升级设备上的固件。如果需要,我们还想更新蓝牙固件,如需Wi-Fi。(我们的用例不允许我们通过Suota更新所有设备)。蓝牙软件位于DA14583内部闪光灯中。DA14583使用SPI连接到我们的MCU。现在据我所知,这是DA14583的启动序列:
1. OTP中是否有引导加载程序(是的,它是由对话框闪烁),跳转到OTP Bootloader
2. is there bootloader in 2nd OTP, run this bootloader
3.扫描所有UART连接,如果建立连接,将程序下载到Sysram
4.读取内部闪存,如果显示程序开始运行它
5.再次尝试UART

基于此引导序列,我们只需在必要时更新固件(希望永远)更新固件
1.在OTP中刻录智能引导加载程序,这将使用UART / SPI下载新的固件,并将其写入Flash(程序将每次启动,如果我们在OTP中犯错误)
2.从UART启动智能程序,它将使用UART / SPI下载新的固件并将其写入闪存(更安全,MCU可以始终更新,DA将始终允许新的智能程序)
3.将智能程序写入闪存,这将使用UART / SPI下载新固件,并将其写入Flash

我们需要为HCI连接SPI连接,我们没有留下UART设备。我们在MCU上使用SPI的引脚显然也可以用作UART,所以我们想做的就是如下:

1.使用UART启动DA并向DA提供智能程序
2.智能程序配置内部闪存和UART进行传输,MCU发送新固件
3. DA重新启动,现在在内部闪存中找到程序,并将运行新的固件
4.如果固件或智能程序已破坏,我们可以使用UART上传新的智能程序/固件,并且使用Wi-Fi更新可以在MCU上替换智能程序/固件。

您认为这将是解决问题的好解决方案吗?或者是否有此技术的缺点,或者可能根本不可能?

亲切的问候,

Diederik Loos

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

嗨diederikloos,

我没有得到你的第三种选择,不管怎样,我同意perhaps the best way is downloading the fw from uart (the OTP solution doesn't give you enough room for testing), regarding the UART pins, after the bootloader runs from the 583 he will configure the pins and you can download the fw from the specified pins. After that, the downloaded program will erase the flash and prepare the 583 for downloading a new fw through the external MCU and wait until the program is provided (set the prefered UART pins and wait for custom specific header in order to start taking data from the UART and writing them into the SPI flash). After the download finishes the 583 should reset and the allready burned bootloader in the OTP will skip the advanced bootloader and the UART and will go for the internal flash. Yes i think that is feasible to do it. This is the only way i can see that one can write the internal flash of the 583. Also i suppose that you can also use the flash_programmer (uart_selection) in order to do this and send the corresponding commands that the smart snippets sends in order to manipulate the the flash memory of the 583 chip.

谢谢mt_dialog.

主题锁定