ZHCU022AF July   2010  – September 2022

 

  1.   摘要 - MSP430™ 闪存器件引导加载程序 (BSL)
  2.   商标
  3. 1引言
    1. 1.1 补充在线信息
    2. 1.2 BSL 特性概览
    3. 1.3 调用 BSL
      1. 1.3.1 硬件 BSL 调用
        1. 1.3.1.1 具有共享JTAG 引脚的 MSP430 器件
          1. 1.3.1.1.1 阻止使用共享 JTAG 引脚调用BSL的因素
        2. 1.3.1.2 具有专用 JTAG 引脚的 MSP430 闪存器件
          1. 1.3.1.2.1 阻止使用专用 JTAG 引脚调用BSL的因素
        3. 1.3.1.3 带有 USB 的器件
      2. 1.3.2 软件 BSL 调用
    4. 1.4 UART 协议
    5. 1.5 USB 协议
  4. 2引导加载程序协议 - 1xx、2xx 和 4xx 系列
    1. 2.1 同步序列
    2. 2.2 命令
      1. 2.2.1 不受保护的命令
      2. 2.2.2 受密码保护的命令
    3. 2.3 编程流程
    4. 2.4 数据帧
      1. 2.4.1 数据流结构
      2. 2.4.2 校验和
      3. 2.4.3 示例序列
      4. 2.4.4 命令-详细说明
        1. 2.4.4.1  概述
        2. 2.4.4.2  RX 数据块
        3. 2.4.4.3  RX 密码
        4. 2.4.4.4  批量擦除
        5. 2.4.4.5  擦除段
        6. 2.4.4.6  擦除主存储器或者信息存储器
        7. 2.4.4.7  擦除检查
        8. 2.4.4.8  更改波特率
        9. 2.4.4.9  设置内存偏移
        10. 2.4.4.10 加载 PC
        11. 2.4.4.11 TX 数据块
        12. 2.4.4.12 TX BSL 版本
    5. 2.5 可史可法 BSL
    6. 2.6 退出 BSL
    7. 2.7 密码保护
    8. 2.8 代码保护保险丝
    9. 2.9 BSL 内部设置和资源
      1. 2.9.1 芯片识别和 BSL 版本
      2. 2.9.2 外部调用 BSL 的矢量
      3. 2.9.3 初始化状态
      4. 2.9.4 内存分配和资源
  5. 3引导加载程序协议 - F5xx 和 F6xx 系列
    1. 3.1 BSL 数据包
    2. 3.2 UART 外设接口 (PI)
      1. 3.2.1 包装器
      2. 3.2.2 缩写
      3. 3.2.3 消息
      4. 3.2.4 接口专用命令
        1. 3.2.4.1 更改波特率
    3. 3.3 I2C 外设接口
      1. 3.3.1 I2C 协议定义
      2. 3.3.2 具有字节级确认的基本协议
      3. 3.3.3 BSL 的 I2C 协议 - 从从服务器读取
      4. 3.3.4 确认 (ACK)
      5. 3.3.5 包装器
    4. 3.4 USB 外设接口
      1. 3.4.1 包装器
      2. 3.4.2 硬件要求
    5. 3.5 BSL 内核命令结构
      1. 3.5.1 缩写
      2. 3.5.2 命令说明
    6. 3.6 BSL 安全
      1. 3.6.1 受保护的命令
      2. 3.6.2 RAM 擦除
    7. 3.7 BSL 内核响应
      1. 3.7.1 缩写
      2. 3.7.2 BSL 内核消息
      3. 3.7.3 BSL 版本号
      4. 3.7.4 UART BSL 的示例序列
    8. 3.8 BSL 公共函数和 Z 区域
      1. 3.8.1 从外部应用中启动 BSL
      2. 3.8.2 返回到BSL函数描述
  6. 4引导加载程序硬件
    1. 4.1 硬件描述
      1. 4.1.1 电源
      2. 4.1.2 串行接口
        1. 4.1.2.1 电平移动
        2. 4.1.2.2 对 RST/NMI 和 TEST 或者 TCK 引脚的控制
      3. 4.1.3 目标连接器
      4. 4.1.4 部件列表
  7. 5器件和引导加载程序版本间的差异
    1. 5.1 1xx、2xx 和 4xx BSL 版本
    2. 5.2 ROM BSL 版本 1.10 的特殊考虑
    3. 5.3 1xx、2xx 和 4xx BSL 已知问题
    4. 5.4 有关MSP430F14x 器件系列 BSL的特殊说明
    5. 5.5 基于 F5xx 和 F6xx 闪存的 BSL 版本
  8. 6引导加载程序 PCB 布局建议
  9. 7修订历史记录

更改波特率

更改波特率命令提供了在更高波特率(高于默认的 9600 波特率)上进行数据传输的能力。通过更快的数据转换,可实现更短的编程周期,这对于大闪存设备特别重要。此命令不受密码保护。

三个控制字节(D1 至 D3)确定所选择的波特率。D1 和 D2 设定处理器频率 (f ≥ fmin),D3 间接地设定闪存时间发生器频率(fFTGmin≤ fFTG≤fFTGmax)。详细说明:

D1: F1xx:基本时钟模块控制寄存器 DCOCTL(DCO.2 至 DCO.0)
F2xx:基本时钟模块控制寄存器 DCOCTL(DCO.2 至 DCO.0)
F4xx:FLL+ 系统时钟控制寄存器 SCFI0(D,FN_8 至 FN_2)
D2: F1xx:基本时钟模块控制寄存器 BCSCTL1 (XT2Off,Rsel.2 至 Rsel.0)
F2xx:基本时钟模块控制寄存器 BCSCTL1 (XT2Off,Rsel.2 至 Rsel.0)
F4xx:FLL+ 系统时钟控制寄存器 SCFI1 (NDCO)
D3 0:9600 波特
1:19200 波特
2:38400 波特

接收到数据帧之后,发回一个确认字符 DATA_ACK,并且 BSL 为所选择的波特率做好准备。TI 建议 BSL 通信程序在波特率更改和下一次数据传输之间等待大约 10ms,以使 BSL 时钟系统有时间稳定下来。

注:

可以实现的最高波特率取决于各种系统和环境参数,例如电源电压、温度范围和最小和最大处理器频率。参阅特定器件的数据表。

注:

该命令在 BSL 版本 V1.60 或更高版本上实现,或在可加载的引导加载程序 BL_150S_14x.txt 中可用。

表 2-2 针对MSP430F149 [MSP430F449] 的建议(1) TA = 25°C,VCC = 3.0V,fmax = 6.7MHz
波特率
(波特)
处理器频率,fmin
(MHz)(4)
D1 DCOCTL
[SCFI0](2)
D2 BCSCTL1
[SCFI1](2)
D3(2) 编程和验证 60KB
(秒)(3)
9600(初始波特率) 1.05 0x80 [00] 0x85 [98] 00 [00] 78+3.7 [0.0]
19200 2.1 0xE0 [00] 0x86 [B0] 01 [01] 39+3.7 [2.4]
38400 4.2 0xE0 [00] 0x87 [C8] 02 [02] 20+3.7 [2.4]
括号[]中的值适用于 MSP430F449。
D1 至 D3 为采用十六进制表示法的字节。
另外加载、验证和启动可加载的 BSL需要3.7 【2.4】秒。
最小处理器频率低于标准 ROM BSL中的频率(请参阅初始化状态)。
表 2-3 针对MSP430F2131 的建议 TA = 25°C,VCC = 3.0V,fmax = 6.7MHz
波特率
(波特)
处理器频率,fmin
(MHz)(2)
D1 DCOCTL
[SCFI0](1)
D2 BCSCTL1
[SCFI1](1)
D3(1) 编程和验证 60KB
(秒)
9600(初始波特率) 1.05 0x80 0x85 00 78
19200 2.1 0x00 8x0B 01 39
38400 4.2 0x80 0x8C 02 20
D1 至 D3 为采用十六进制表示法的字节。
最小处理器频率低于标准 ROM BSL中的频率(请参阅初始化状态)。