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

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

我有一个问题要问这个领域的专家。我的问题是下一个:我需要如何连接蓝牙芯片到mcu有可能下载一个程序到内部闪存,有时有可能升级程序在内部闪存。

关键词:
设备:
mt_dialog.
离线
最后一次露面:3个月19小时前
职员
加入: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.
离线
最后一次露面:3个月19小时前
职员
加入: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.第二个OTP中是否有引导加载程序,请运行此引导加载程序
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上替换智能程序/固件。

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

亲切的问候,

迪德里克洛斯

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

嗨diederikloos,

我不明白你的第三个选择,无论如何,我同意,也许最好的方法是从uart下载固件(OTP解决方案没有给你足够的测试空间),关于uart引脚,引导程序从583运行后,他将配置引脚,你可以从指定的引脚下载固件。之后,下载的程序将擦除闪存并准备583,以便通过外部MCU下载新的fw,并等待程序提供(设置首选UART引脚并等待自定义特定头,以便开始从UART获取数据并将其写入SPI闪存)。下载完成后,583应该重置,并且OTP中的allready burned引导加载程序将跳过高级引导加载程序和UART,并将进入内部闪存。是的,我认为这样做是可行的。这是唯一的方法,我可以看到一个人可以写583的内部闪存。此外,我想你也可以使用闪存程序员(uart\ U选择)来做这件事,并发送相应的命令,智能代码段发送,以操纵583芯片的闪存。

谢谢mt_dialog.

主题锁定