与单片机进行硬件连接,为升级蓝牙固件提供了可能

6个职位/ 0个新职位
最后发表
斯巴达
离线
最后看到:1年2个月前
加入:2016-03-14第14章22节
与单片机进行硬件连接,为升级蓝牙固件提供了可能

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

关键词:
设备:
MT_dialog
离线
最后看到:4个月1天前
工作人员
加入:2015-06-08 34
嗨,斯巴达,

嗨,斯巴达,

你提到的场景有点棘手,因为583的主要功能是从内部闪存引导。583配备了一个OTP引导加载程序,该程序从主程序获得控制权,并检查UART引脚和SPI,以及是否存在一个额外的引导加载程序(称为高级引导加载程序)。现在只要我能理解你可以消除从外部单片机内部flash(这需要一点努力自580年你必须确保不使用)和直接燃烧图像内部flash或您可以使用580为了更新flash(更复杂)。目前不支持这种实现。

由于MT_dialog

斯巴达
离线
最后看到:1年2个月前
加入:2016-03-14第14章22节
有一个想法和需要

有一个想法,需要MT_dialog专家的意见。接下来的想法是:如果我使用硬件SPI从MCU,将连接到引脚P0_0-P0_3(引导引脚在启动顺序)的蓝牙下载一个智能程序,将配置的SPI(离开P2_0, P2_3, P2_4, P2_9未连接)的BT内部flash和gpio软件SPI。需要使用软件SPI作为MCU和BT之间的连接,以及flash和BT之间的内部SPI连接,将真实的固件下载到flash内部。有没有可能升级蓝牙固件?还有一个备注:我可以重新配置引脚P0_0-P0_3作为软件SPI的gpio(智能程序),(在这种情况下,我不需要软件连接)。

MT_dialog
离线
最后看到:4个月1天前
工作人员
加入:2015-06-08 34
嗨,斯巴达,

嗨,斯巴达,

你将不得不烧一个高级引导加载程序到你的SPI,因为583不使用你提到的引脚,我不明白你的设置或你试图说什么,你能更详细的描述吗?为了通过BLE更新你的固件,你可以使用SUOTA配置文件,是的,你可以在运行时重新配置580引脚。

由于MT_dialog

diederikloos
离线
最后看到:2年10个月前
加入:2015-07-16 26
你好MT-dialog,

你好MT-dialog,

斯巴达和我在同一个项目上工作,所以我会尝试解释我们遇到的问题和我们想要尝试的解决方案。

我们有一个基于LPC4357的产品,采用DA14583芯片。我们正在使用Wi-Fi更新/升级我们设备上的固件。我们也想更新蓝牙固件,如果需要通过Wi-Fi。(我们的用例不允许我们通过SUOTA更新所有设备)。蓝牙软件采用DA14583内置flash。DA14583通过SPI与我们的MCU连接。现在据我所知,这是DA14583的启动顺序:
1.是否有引导加载程序在OTP(是的,它是闪过对话框),跳转到OTP引导加载程序
2.在第二个OTP中有引导加载程序,运行这个引导加载程序
3.扫描所有uart连接,如果连接建立,下载程序到syram
4.读取内部flash,如果程序存在,开始运行它
5.再次尝试uart

基于这个启动顺序,我们有以下选项来更新固件只有在必要的时候(希望永远不会)
1.烧录智能bootloader在OTP,它将下载新的固件使用uart/spi,并将其写入flash(程序将每次启动,如果我们在OTP中出错,我们有问题)
2.从uart引导智能程序,它将使用uart/spi下载新的固件并将其写入flash(更安全,mcu可以总是更新,DA将总是允许新的智能程序)
3.编写智能程序到flash,这将下载新的固件使用uart/spi,并写入flash

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

1.通过uart引导DA,为DA提供智能程序
2.智能程序配置内部flash和uart传输,MCU发送新的固件
3.DA重新启动,现在在内部flash中找到程序,并将运行新的固件
4.如果固件或者智能程序坏了,我们可以使用uart上传新的智能程序/固件,通过Wi-Fi更新可以在MCU上替换智能程序/固件。

你认为这是解决问题的好办法吗?或者这种技术有什么缺点,或者可能根本不可能?

亲切的问候,

Diederik厕所

MT_dialog
离线
最后看到:4个月1天前
工作人员
加入:2015-06-08 34
嗨diederikloos,

嗨diederikloos,

我没有得到你的第三种选择,不管怎样,我同意,也许最好的方法是下载的弗兰克-威廉姆斯uart (OTP的解决方案不给你足够的空间用于测试),关于uart别针,从583年,他将引导装载程序运行后配置针,你可以下载指定的弗兰克-威廉姆斯的别针。之后,下载的程序将擦除闪存和准备下载一个新583年弗兰克-威廉姆斯通过外部单片机和等到项目提供(设置优先UART别针,等待定制特定的头为了开始数据从UART和写作的SPI闪光灯)。下载完成后,583应该重置和已经烧毁的引导加载程序在OTP将跳过高级引导加载程序和UART,并将去内部flash。是的,我认为这是可行的。这是我能看到的唯一的方法来写583的内部闪光。我还认为,你也可以使用flash_programmer (uart_selection),以便做到这一点,并发送相应的命令,智能片段发送,以操纵583芯片的闪存。

由于MT_dialog

主题锁定