ZHCU755D August   2022  – December 2022

 

  1.   说明
  2.   资源
  3.   特性
  4.   应用
  5.   5
  6. 1系统说明
    1. 1.1 关键系统规格
  7. 2系统概览
    1. 2.1 方框图
    2. 2.2 设计注意事项
      1. 2.2.1 构建块
      2. 2.2.2 闪存分区
      3. 2.2.3 LFU 切换概念
      4. 2.2.4 应用程序 LFU 流程
  8. 3硬件、软件、测试要求和测试结果
    1. 3.1 硬件要求
    2. 3.2 软件要求
      1. 3.2.1 软件包内容
      2. 3.2.2 软件结构
    3. 3.3 TIDM-DC-DC-BUCK 简介
    4. 3.4 测试设置
      1. 3.4.1 使用 CCS 将自定义引导加载程序和应用程序加载到闪存
    5. 3.5 测试结果
      1. 3.5.1 在 CPU 上运行控制循环时运行 LFU 演示
      2. 3.5.2 在 CLA 上运行控制循环时运行 LFU 演示
      3. 3.5.3 CPU 上的 LFU 流程
      4. 3.5.4 CLA 上的 LFU 流程
      5. 3.5.5 假设
      6. 3.5.6 为 LFU 准备固件
      7. 3.5.7 LFU 编译器支持
      8. 3.5.8 稳健性
      9. 3.5.9 LFU 用例
  9. 4FOTA 示例
    1. 4.1 摘要
    2. 4.2 引言
    3. 4.3 硬件要求
    4. 4.4 软件要求
    5. 4.5 运行示例
  10. 5设计和文档支持
    1. 5.1 软件文件
    2. 5.2 文档支持
    3. 5.3 支持资源
    4. 5.4 商标
  11. 6术语
  12. 7关于作者
  13. 8修订历史记录

在 CPU 上运行控制循环时运行 LFU 演示

使用自定义引导加载程序和应用程序映像对器件的两个闪存组进行编程后,LFU 演示现在可以在独立模式下运行。

  1. 切换到闪存引导模式(此时应已处于此模式)。
  2. 将 BoosterPack 连接至 LaunchPad,如图 3-4 所示。LaunchPad 位于 BoosterPack 上方。LaunchPad 接头 J5-J7 连接到 BoosterPack 接头 H1-H2。LaunchPad 接头 J6-J8 连接到 BoosterPack 接头 H3-H4。这表示工程的 main.syscfg 中的“Launchpad Site2”(“Powerstage Parameters”–“Hardware”–“Launchpad Site”)。
    GUID-20201112-CA0I-ZCXB-PFKT-4GXCQL4GK9RH-low.jpg图 3-4 将 BoosterPack 连接至 F28004x LaunchPad
  3. 以正确的极性([JP1 +]Vin 和 [JP1 GND]GND)将香蕉头转裸线电缆从直流工作台电源连接至位于 JP1 处的 BoosterPack。
  4. 将直流工作台电源设置为输出 9V。启用电源。
  5. 将 SW1 转动至 ON 位置。
  6. 连接示波器(或类似设备)以感测输出电压以及 2 个附加信号 – ISR CPU 负载以及 LFU 切换时间。可根据以下说明进行连接。同时使用万用表监测稳压输出电压。
    • 输出电压 – 在 LaunchPad 的接头 J7 上,信号 67。这表示稳压输出电压。
    • ISR CPU 负载 - 在 LaunchPad 的接头 J2 上,信号 15。这表示控制循环 ISR 的 CPU 负载。
    • LFU 切换时间 - 在 LaunchPad 的接头 J2 上,信号 14。这表示从旧应用程序映像到新应用程序映像执行 LFU 所花的时间。
  7. 将 Micro USB 电缆连接到计算机和 Launchpad,以使电路板通电。请注意,务必在直流工作台电源已经为 BoosterPack 供电且 SW1 接通执行此步骤。
  8. 这将导致控制循环 ISR 开始执行。默认情况下,TIDM-DC-DC-BUCK 的 Build2 将运行。这是使用 VMC(电压模式控制)的闭环电压调节。但是,软件初始化步骤尚未完成,因此后台任务尚未执行。这是 SCI 自动波特率锁定步骤。若要启用 SCI 自动波特率锁定,请从 Windows 命令提示符执行命令,如下所示:
    • 在 F28004x 上:serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28004x_lfuBANK1FLASH.txt -b 9600 -p COM11
    • 在 F28003x 上:serial_flash_programmer_appln.exe -d f28003x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28003x_lfuBANK1FLASH.txt -b 9600 -p COM11
    • 发出此命令后,暂时不要选择任何选项
    • 这对于自动波特率锁定来说就足够了,后台任务将开始执行。发生这种情况时,感测操作将开始,稳压输出电压在万用表上将显示为 1V(反映 2V 的稳压输出电压)。
    • 如果 BoosterPack 上有一个红色 LED,它将亮起。
    • LaunchPad 上的红色 LED4 (GPIO23) 由 buck_main.c 中 B1() 内的 BUCK_HAL_toggleRunLed() 控制。由于这是一个后台任务函数,它将开始切换。应用程序从组 0 运行时的切换频率值设置为比从组 1 运行时要小。
  9. 上述编程步骤首先在闪存组 1 上对 TIDM-DC-DC-BUCK 应用程序进行编程,然后在闪存组 0 上进行编程。但两者的固件版本都是 0xFFFE。当它们相等时,自定义引导加载程序中的组选择逻辑将认为编号较小的组(即闪存组 0)是最新的应用程序版本,并将执行此版本。
    • 当代码从组 1 运行时,LaunchPad 上的绿色 LED5 (GPIO34) 亮起;当代码从组 0 运行时,此 LED 将熄灭。由于代码现在正在从组 0 运行,此 LED 将熄灭。
  10. 在步骤 8 中,发出一条命令以启用 SCI 自动波特率锁定,并且命令提示符正在等待用户输入
    • 输入“8 – Live DFU”– 这会将 TIDM-DC-DC-BUCK 应用程序的 Bank1_Flash 构建配置编程到闪存组 1
    • 完成后输入“0 – Done”
    • 当新映像下载到闪存时,LaunchPad 上的 LED4 将不会切换,因为在映像下载过程中后台任务会停止。
    • 将 Bank1_Flash 映像编程到闪存组 1 后,此映像将自动开始执行。用户现在将注意到以下情况:
      • LaunchPad 上的绿色 LED5 亮起。这是因为代码现在正在从组 1 运行。
      • BoosterPack 上的红色 LED 仍亮起。但 LaunchPad 上的红色 LED4 未切换。这是因为后台任务尚未启用。与上述类似,可以发出命令以启用 SCI 自动波特率锁定。可以使用以下命令
        • 在 F28004x 上:serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28004x_lfuBANK0FLASH.txt -b 9600 -p COM11
        • 在 F28003x 上:serial_flash_programmer_appln.exe -d f28003x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28003x_lfuBANK0FLASH.txt -b 9600 -p COM11
        • 发出此命令后,暂时不要选择任何选项
      • 在整个过程中,输出电压继续保持在 1V。这是因为在 LFU 之后没有发出器件复位,并且在中断之间的空闲时间内发生了从旧应用程序固件到新应用程序固件的切换。
  11. 对于下一次 LFU 切换,用户可以将示波器设置为根据“LFU 切换时间”信号触发。这将允许用户直观地检查切换发生的时间、需要多长时间,等等。
    • 在步骤 8 中,发出一条命令以启用 SCI 自动波特率锁定,并且命令提示符正在等待用户输入
    • 输入“8 – Live DFU” – 这会将 TIDM-DC-DC-BUCK 应用程序的 Bank0_Flash 构建配置编程到闪存组 0
    • 完成后输入“0 – Done”
    • 当新映像下载到闪存时,LaunchPad 上的 LED4 将不会切换,因为在映像下载过程中后台任务会停止。
    • 将 Bank0_Flash 映像编程到闪存组 0 后,此映像将自动开始执行。用户现在将注意到以下情况:
      • LaunchPad 上的绿色 LED5 熄灭。这是因为代码现在正在从组 0 运行
      • BoosterPack 上的红色 LED 仍亮起。但 LaunchPad 上的红色 LED4 未切换。这是因为后台任务尚未启用。与上述类似,可以发出命令以启用 SCI 自动波特率锁定。可以使用以下命令
        • 在 F28004x 上:serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28004x_lfubank1FLASH.txt -b 9600 -p COM11
        • 在 F28003x 上:serial_flash_programmer_appln.exe -d f28003x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28003x_lfubank1FLASH.txt -b 9600 -p COM11
        • 发出此命令后,暂时不要选择任何选项
      • 在整个过程中,输出电压继续保持在 1V。这是因为在 LFU 之后没有发出器件复位,并且在中断之间的空闲时间内发生了从旧应用程序固件到新应用程序固件的切换
      • 请参考图 3-5 以了解详细信息,并直观确认上述声明。所示的信号为 LFU 切换、CPU ISR 负载和稳压输出电压。
      GUID-20201112-CA0I-8W94-7SGW-1LWM4DGNRRR1-low.png图 3-5 LFU 切换时间(控制循环在 CPU 上运行)
  12. 根据需要重复上述步骤。当组 0 处于运行状态时,发出 LFU 命令以进行编程并切换到组 1。当组 1 处于运行状态时,发出 LFU 命令以进行编程并切换到组 0。