DA14580 SUOTA在IOS平台的使用方法

本文只介绍在IOS下用SUOTA APP给DA14580升级新程序,关于DA14580的img文件怎么制作,怎么烧录到DA14580,请查阅其他文章。

SUOTA需要DA14580外挂1Mbits以上的FLASH或者EEPROM,当然DA14583不需要,因为它已经内置了1M FLASH。

本文的演示需要用到事先制作好的img文件,关于img文件怎么制作,请查看我写的另一个文档:http://wenku.baidu.com/view/ae9400c4192e45361166f59f.html

这里再啰嗦一点,除了用IOS升级,也可以用Android,当然,官方的文档说Android会不稳定。关于SUOTA APP,可以在苹果商店或者谷歌的商店上直接下载到。

这里我们以IOS版SUOTA为例:

当然,先别急着打开APP,在此之前,我们要把要升级的img文件拷贝到手机。工具可以选择iTunes或者iTools,其道理是一样的,这里以iTools为例,将手机连上iTools,然后选择:

打开SUOTA的文件共享,并选择以下文件夹,将要升级的文件拷贝到该文件夹下,这里我拷贝了3个文件,可以根据自己的需求来拷,反正升级只需要一个:

拷贝完毕后关闭iTools,断开手机。

然后打开手机APP,点击搜索,之前请让DA14580工作在广播状态。

不一会儿,就会出现SUOTA02这个设备,这是我们事先烧录好的程序(相关方法请查阅我的其他文档,下文不再重复说明),点击SUOTA02与设备建立连接。

点击Update,选择fw03.img(SUOTA02是fw02.img,所以我们选择新的)。

正常的话会出现以下界面:

由于我们用的是FLASH,所以选择SPI,然后根据自己的硬件选择SPI口的配置,关于Image bank,可以选择Oldest-自动选择老的区块覆盖,Bank1-覆盖区块1,Bank2-覆盖区块2,Block size-一般选择默认好了,完毕后点击Send to device。然后出现以下界面:

等待它升级完成,会跳出以下界面:

选择reboot,再刷新界面,可以看到更新后的设备—SUOTA03:

说明更新成功。

 更多信息请微信关注:

BD0007-如何在DA14580中为设备设置独立的蓝牙地址

在DA14580的开发中,我们可以通过代码设置一个固定的蓝牙地址来测试,如下图,我们将地址设置为1234567890ab:

烧录后,我们可以通过抓包工具看到实际的地址:

那么问题来了,如果我要生产100套呢?难道每一个都去重新编译一个hex文件么?

当然,答案是否定的,我们有很多种解决方法,可以将我们的蓝牙地址存在FLASH的某个位置(EEPROM也一样,下文不再重复),然后我们增加代码去读FLASH中的蓝牙地址,每生产一个,就改动FLASH中的地址字节。当然这样做的弊端就是增加了我们的代码工作量,所以,我们不推荐这种方法。

这里给大家介绍一种简单的方法,就是可以将地址放在OTP的header中,只烧录header不烧录程序,这样不影响我们将应用程序放到FLASH中,也不影响OTA等功能。

首先我们来看看这样做的官方依据:

打开以上文件,我们可以清楚地看到关于蓝牙地址的说明—如果OTP header中有蓝牙地址,则定义无效。所以,我们的想法有理论依据。

接着,连接好我们的硬件,打开SmartSnippets,按照下图选择OTP Header烧录界面:

然后点击Connect:

根据提示操作,显示成功连接后,我们找到以下位置,红色框中的选项选择No,这表明我们的应用程序不在OTP中,程序还是会从外部FLASH中启动:

接着找到晶振设置选项,根据您的硬件选择,我们这里有外部32k晶振,所以选择外部:

然后设置DMA大小为32k(00001fff):

找到以下位置,设置我们要的蓝牙地址:

设置地址,我们可以将鼠标移到右侧,点击以下图标:

会跳出一个对话框,直接输入我们要的地址,地址前6字节是有效的:

填好以后点击Burn:

提示烧录成功后,我们reset芯片,再用抓包工具看,地址已经改为我们设置的新地址:

这里说明一下地址的位置,我们设置的值是:0xCD123456007890AB,去掉最后2字节为0xCD1234560078,最后我们通过广播得到的地址是0x7800563412CD,所以,如果我们要设置0x1234567890AB为蓝牙地址,则填写的值应该为:0xAB9078563412****,这个可以自己去体会。

当然,以上过程只是工程师测试时可以使用,真正量产时可以使用量产工具,做到蓝牙地址自动递增,以提高生产效率。关于量产工具的使用,这边不再做过多的说明。

这里需要特别说明的一点是,OTP为一次性烧写,这次烧写完毕后下次就不能改啦,所以设置的时候千万要小心。