Announcements
IMPORTANT: Cypress Developer Community is transitioning on October 20th. To learn more and be prepared for this change, check out our latest announcement.
cancel
Showing results for 
Search instead for 
Did you mean: 

WICED Studio Bluetooth

YaTr_3516311
New Contributor II

Hi,

我想实现通过MCU更新蓝牙固件的功能。然后我发现让蓝牙固件进入download模式有很多种,我知道的如下

1. CTS low,然后reset

2. Downloading the Application to Serial Flash的文档里是直接发送HCI_RESET命令,然后一系列命令进行软件的更新

3. recovery pin拉低,然后再reset,也是进入download模式

所以我的问题是:

1) 这三种方法有什么区别?推荐用哪一种方法?

2) 研究WICED_MOD_Programmer.exe的工具的时候,发现需要Minidriver download和appication download.

      之前技术有回复说Minidriver download is recommended for flash download.这一步是上面三种进入download的模式都需要的?

3) Minidriver的文件是一直不会变的? 比如说我二次开发软件,application文件肯定是会不断更新变化的,那么download文件会变吗?

BR,

Treacy

0 Likes
1 Solution
Charles_Lai
Moderator
Moderator

Hi,

您的陈述,我认为其中有些理解与实际有出入:

  1. 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
  2. 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
    1. 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
    2. “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
  3. 据我所知,Minidriver在您所述的这三种方法里面都会使用(只有某特殊WICED芯片不使用)。

如果我理解没有差错,进入download模式的流程和概念,其实很简单:

MCU通电,就会检测CTS,若是Low,就会强制进入Download模式(然后可能伴随Autobaud检测)。若CTS不为Low,则先检查Flash,若包含user application,便会加载user application并进入application mode,若没有检测到user application,便又会进入Autobaud检测,并表现为Controller mode。在Controller mode下,你可理解为栈为空,处于待命状态,并随时准备接收WICED HCI命令。于是这时候您同样可以发送Download流程使用的命令,模拟进入Download流程,于是MCU这时便又会表现为进入了Download模式。

换言之,Download模式,只是一套预先协定的WICED HCI命令和时序的集合,在MCU允许让你执行WICED HCI命令时,您都可以通过相同的命令和时序控制,引导MCU进入所谓的“Download模式”。

更多的细节,您可以参考文档AN226546 CYW20819 Feature and Peripheral Guide.pdf。其中的“7.3 Firmware Architecture”到“7.5 Programming”章节,应该能帮助您理解WICED固件和下载的相关内容。

<<<<<<<<<<<<<>>>>>>>>>>>>>

Best Regards

C. L.

<<<<<<<<<<<<<>>>>>>>>>>>>>

View solution in original post

0 Likes
1 Reply
Charles_Lai
Moderator
Moderator

Hi,

您的陈述,我认为其中有些理解与实际有出入:

  1. 方法3,recovery pin拉低,本质上也是CTS low,所以方法3等同于方法1。
  2. 方法2,“Downloading the Application to Serial Flash”对比“Downloading the Application to Serial Flash”,其实整个流程,包括其中使用的命令、时序和事件均没有不同。不同的地方只有:
    1. 只是在最后使用“LAUNCH_RAM”命令时,“下载到RAM”过程指定的是某个内存地址(实际的程序入口),而“下载到Serial Flash”则指定使用一个特殊的地址('0xFFFFFFFF'),通过该特殊地址引导系统重启并Flash读入程序(而“下载到RAM”则不会重启,而是直接执行了)。
    2. “下载到RAM”一般使用编译生成的hcd文件,而“下载到Serial Flash”一般使用编译生成的hex文件。
  3. 据我所知,Minidriver在您所述的这三种方法里面都会使用(只有某特殊WICED芯片不使用)。

如果我理解没有差错,进入download模式的流程和概念,其实很简单:

MCU通电,就会检测CTS,若是Low,就会强制进入Download模式(然后可能伴随Autobaud检测)。若CTS不为Low,则先检查Flash,若包含user application,便会加载user application并进入application mode,若没有检测到user application,便又会进入Autobaud检测,并表现为Controller mode。在Controller mode下,你可理解为栈为空,处于待命状态,并随时准备接收WICED HCI命令。于是这时候您同样可以发送Download流程使用的命令,模拟进入Download流程,于是MCU这时便又会表现为进入了Download模式。

换言之,Download模式,只是一套预先协定的WICED HCI命令和时序的集合,在MCU允许让你执行WICED HCI命令时,您都可以通过相同的命令和时序控制,引导MCU进入所谓的“Download模式”。

更多的细节,您可以参考文档AN226546 CYW20819 Feature and Peripheral Guide.pdf。其中的“7.3 Firmware Architecture”到“7.5 Programming”章节,应该能帮助您理解WICED固件和下载的相关内容。

<<<<<<<<<<<<<>>>>>>>>>>>>>

Best Regards

C. L.

<<<<<<<<<<<<<>>>>>>>>>>>>>

View solution in original post

0 Likes