ZHCUCY3 April 2025 TMS320F2800132 , TMS320F2800133 , TMS320F2800135 , TMS320F2800137 , TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1 , TMS320F280021 , TMS320F280023 , TMS320F280023C , TMS320F280025 , TMS320F280025C , TMS320F280034 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037C , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039C , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041C , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049C , TMS320F28076 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377S , TMS320F28378D , TMS320F28378S , TMS320F28379D , TMS320F28379S , TMS320F28384D , TMS320F28384S , TMS320F28386D , TMS320F28386S , TMS320F28388D , TMS320F28388S , TMS320F28P550SG , TMS320F28P550SJ , TMS320F28P559SG-Q1 , TMS320F28P559SJ-Q1 , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
SCI 闪存内核基于 ROM 引导加载程序,它与 C2000Ware 中提供的主机 PC 应用程序 (C2000Ware_x_xx_xx_xx > utilities > flash_programmers > serial_flash_programmer) 进行通信,并就接收数据包和分配给它的命令的完成情况向主机提供反馈。
本节详细介绍了 CPU1 SCI 引导加载。有关 SCI 内核命令和功能的更详细说明,或有关如何使用 CPU2 或连接管理器 (CM) SCI 引导加载程序的步骤,请参阅 C2000 微控制器的串行闪存编程应用手册 [12]。
CCS 的闪存内核源文件和工程文件在 C2000Ware 中提供,位于相应器件的示例目录中。这些工程有一个编译后处理步骤,将编译和链接的 .out 文件转换为 SCI ROM 引导加载程序所需的正确的十六进制格式引导文件,并按扩展名为 .txt 的工程名称进行保存。
| 器件 | 编译配置 | 位置 |
|---|---|---|
| F2802x | RAM | C2000Ware_x_xx_xx_xx > device_support > f2802x > examples > structs > f28027_flash_kernel |
| F2803x | RAM | C2000Ware_x_xx_xx_xx > device_support > f2803x > examples > c28 > f2803x_flash_kernel |
| F2805x | RAM | C2000Ware_x_xx_xx_xx > device_support > f2805x > examples > c28 > f28055_flash_kernel |
| F2806x | RAM | C2000Ware_x_xx_xx_xx > device_support > f2806x > examples > c28 > f28069_sci_flash_kernel |
| F2807x | RAM | C2000Ware_x_xx_xx_xx > device_support> f2807x > examples > cpu1 > F2807x_sci_flash_kernel |
| F2833x | RAM | C2000Ware_x_xx_xx_xx > device_support > f2833x > examples > f28335_flash_kernel |
| F2837xS | RAM | C2000Ware_x_xx_xx_xx > device_support > f2837xs > examples > cpu1 > F2837xS_sci_flash_kernel > cpu01 |
| F2837xD | RAM | C2000Ware_x_xx_xx_xx > device_support > f2837xd > examples > dual > F2837xD_sci_flash_kernels |
| F28004x | RAM,支持 LDFU 的闪存,不支持 LDFU 的闪存 | C2000Ware_x_xx_xx_xx > driverlib > f28004x > examples > flash, select flashapi_ex2_sci_kernel |
| F2838x | RAM | CPU1-CPU2 C2000Ware_x_x_xx_xx > driverlib > f2838x>examples>c28x_dual>flash_kernel CPU1-CM C2000Ware_x_x_xx_xx > driverlib > f2838x>examples>c28x_cm>flash_kernel |
| F28002x | RAM,支持 LDFU 的闪存 | C2000Ware_x_xx_xx_xx > driverlib > f28002x > examples > flash, select flash_kernel_ex3_sci_flash_kernel |
| F28003x | RAM,支持 LDFU 的闪存 | C2000Ware_x_xx_xx_xx > driverlib > f28003x > examples > flash, select flash_kernel_ex3_sci_flash_kernel |
| F280013x | RAM | C2000Ware_x_xx_xx_xx > driverlib > f280013x > examples > flash, select flash_kernel_ex3_sci_flash_kernel |
| F280015x | RAM | C2000Ware_x_xx_xx_xx > driverlib > f280015x > examples > flash, select flash_kernel_ex3_sci_flash_kernel |
| F28P65x | RAM | C2000Ware_x_xx_xx_xx > driverlib > f28p65x > 示例 > c28x_dual > flash_kernel |
| F28P55x | RAM | C2000Ware_x_xx_xx_xx > driverlib > f28p55x > examples > flash, 选择t f28p55x_flash_ex3_sci_flash_kernel |

在 CCS 中构建内核和固件工程后,正确设置器件硬件,以便与运行 C2000Ware 中提供的 serial_flash_programmer 可执行文件的主机 PC 进行通信。首先要确保正确配置引导模式选择引脚,以便将器件引导至 SCI 引导模式。如果用户需要在片上闪存中从外部主机中加载代码,则默认 BMSP 或 BOOTPIN-CONFIG 和 BOOTDEF 寄存器可以配置 SCI 引导。
有关用来启用 SCI 引导的默认 BMSP,请参阅 TMS320F280015x 实时微控制器数据表。如果用户将 GPIO24 设置为 0 并将 GPIO32 设置为 1,则引导 ROM 跳转到 SCI 引导加载程序且 SCIRXDA 设置为 GPIO28,SCITXDA 设置为 GPIO29,并且无需对器件寄存器进行编程。
但是,如果用户希望灵活地使用具有不同 GPIO 分配的 SCI 引导,则需要为特定的引导选项配置 OTP 或仿真 BOOTCONFIG 和 BOOTDEF 寄存器。请参阅数据表中的 GPIO 分配一节,确定哪种 SCI 引导选项符合 GPIO 要求。
使用 serial_flash_programmer 可执行文件时,连接到 Rx 和 Tx 引脚的相应 SCI 引导加载程序 GPIO 引脚需要连接到主机 PC COM 端口。通常需要收发器来将虚拟 COM 端口从 PC 转换为可以连接到器件的 GPIO 引脚。在某些系统(例如 controlCARD 或 LaunchPad)上,使用 FTDI 芯片将用于 SCI 通信的 GPIO 引脚连接到 USB 虚拟 COM 端口。
对于 F2800157 LaunchPad,PC 必须连接到 LaunchPad 上的 USB 并使用器件上的 UART 布线将 GPIO 引脚连接到 XDS110 COM 端口。UART 布线的原理图位于 C2000Ware_x_xx_xx_xx > boards > (LaunchPads or controlCARDs) > DEVICE_NAME > Rev# > documentation。对于 F2800157,使用默认 SCI_SEL 设置,SCIRXDA 从内部布线到 GPIO28,SCITXDA 从内部布线到 GPIO29,因此需要配置引导选项 0x01。

但是,用户也可以选择使用跳线将 XDS110 COM 端口从外部布线到 GPIO BoosterPack™ (BP) 接头。如果选择了备用 SCI GPIO 分配,并且需要连接到 XDS COM 端口,这样布线会很有用。以下步骤演示了如何从外部将 XDS110 COM 端口布线到 F2800157 LaunchPad 上的 GPIO28 或 GPIO29。


现在需要设置将器件,以模拟使用引导选项 0x01、SCIRXA = GPIO28 且 SCITXA = GPIO29 的零引脚 SCI 引导。





现在,ROM 中的 SCI 引导加载程序(具有引导选项 0x01 指定的 GPIO 分配)开始执行并等待与主机进行自动波特率锁定(以接收 A 字符来确定进行通信时的波特率)。此时,器件已准备好接收来自主机的代码。
命令行 PC 实用程序是一种编程设计,可以轻松集成到脚本环境中,用于生产线编程等应用程序。它是使用 Microsoft Visual Studio® 用 C++ 编写的。工程及其源代码可在 C2000Ware (C2000Ware_x_xx_xx_xx > utilities > flash_programmers > serial_flash_programmer) 中找到。
若要使用此工具对 C2000 器件进行编程,请确保目标板已复位且当前处于上面配置的 SCI 引导模式并连接至 PC COM 端口。下面介绍了该工具在单核 SCI 引导中的命令行用法,其中 -d、-k、-a、-p 是必需参数。如果忽略波特率,则波特率默认设置为 9600。有关实用程序参数的更多详细信息,请参阅 [12]。
serial_flash_programmer.exe –d DEVICE -k KERNEL_FILE -a APPLICATION_FILE -p COM# -b BAUDRATE -v

serial_flash_programmer.exe –d DEVICE_NAME –k <path_to_kernel_hex> -a <path_to_application_hex> -p COM# -v如 节 4.1 中所述,闪存内核和闪存应用程序都必须采用 SCI8 引导格式。
这将自动连接到器件,执行自动波特率锁定,并将 CPU1 内核下载到 RAM 中并执行。现在,CPU1 内核正在运行并等待来自主机的数据包。

