ZHCABA8 September   2020 TM4C1230D5PM , TM4C1230E6PM , TM4C1230H6PM , TM4C1231C3PM , TM4C1231D5PM , TM4C1231D5PZ , TM4C1231E6PM , TM4C1231E6PZ , TM4C1231H6PGE , TM4C1231H6PM , TM4C1231H6PZ , TM4C1232C3PM , TM4C1232D5PM , TM4C1232E6PM , TM4C1232H6PM , TM4C1233C3PM , TM4C1233D5PM , TM4C1233D5PZ , TM4C1233E6PM , TM4C1233E6PZ , TM4C1233H6PGE , TM4C1233H6PM , TM4C1233H6PZ , TM4C1236D5PM , TM4C1236E6PM , TM4C1236H6PM , TM4C1237D5PM , TM4C1237D5PZ , TM4C1237E6PM , TM4C1237E6PZ , TM4C1237H6PGE , TM4C1237H6PM , TM4C1237H6PZ , TM4C123AE6PM , TM4C123AH6PM , TM4C123BE6PM , TM4C123BE6PZ , TM4C123BH6PGE , TM4C123BH6PM , TM4C123BH6PZ , TM4C123FE6PM , TM4C123FH6PM , TM4C123GE6PM , TM4C123GE6PZ , TM4C123GH6PGE , TM4C123GH6PM , TM4C123GH6PZ

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2为 TI TIVA C 安装 Edde Flex CAN Booster Pack
  5. 3下载并导入 CAN 主机示例
  6. 4用于中断且经过修改的 CAN.C
  7. 5示例工程
    1. 5.1 带有中断的内部环回 (simple_can_loopback)
    2. 5.2 简单 CAN 传输 (simple_can_tx)
    3. 5.3 简单 CAN 接收 (simple_can_rx)
    4. 5.4 CAN UART 桥接器 (can_uart_bridge)
  8. 6CAN 引导加载程序
    1. 6.1 引导加载程序配置
    2. 6.2 引导演示程序 (boot_demo_can)
    3. 6.3 用于实现 LM Flash Programmer 支持的 UART 转 CAN 桥接器
      1. 6.3.1 CCS 演示程序 (uart_to_can)
      2. 6.3.2 SendCANID PC 程序
    4. 6.4 使用 CAN 引导加载程序

使用 CAN 引导加载程序

将目标文件“uart_to_can\debug\uart_to_can.out”编程到 CAN 网络上的 EK-TM4C123GXL 板上。确定将哪个 COM 端口分配给该板。将目标文件“boot_can\debug\boot_can.out”编程到 CAN 网络上的一个或多个其他 EK-TM4C123GXL Launchpad。Code Composer Studio 一次只能识别一个 Launchpad,因此可能需要单独连接到每个 Launchpad。所有 Launchpad 均完成编程后,即可在不使用 Code Composer Studio 的情况下运行演示。

带有“uart_to_can.out”的 Launchpad 应连接到 PC,以便访问其串行端口。其他 Launchpad 可以连接到 PC 或壁式 USB 充电器,仅用于供电。

打开 LM Flash Programmer 并将其配置为可在 115200 波特下使用 UART 接口。它应该使用通过“uart_to_can.out”程序连接到 Launchpad 的 COM 端口。

GUID-20200902-CA0I-S86W-BLMT-PRVFSN0XVZT5-low.png图 6-1 配置 LM Flash Programmer

在 LM Flash Programmer 上,选择“Program”选项卡,然后浏览到“boot_demo_can\RED\boot_demo_can.bin”文件。将“Program Address Offset:”设置为 0x1000。按“Program”按钮。

GUID-20200902-CA0I-2NW5-N8RG-D31CLKR4MMTR-low.png图 6-2 使用 LM Flash Programmer 进行编程

编程完成后,用户将看到带有引导加载程序的板上的三色 LED 指示灯呈红色闪烁。该器件现在正在运行通过 CAN 引导加载程序编程的应用程序代码。此应用程序代码使三色 LED 呈红色闪烁,但它也在寻找特定的 CAN 帧,从而使 CPU 跳回 CAN 引导加载程序。仲裁 ID 为 0x1F028000 且第一个数据字节等于 0x2 的 CAN 帧将使该单元返回到 CAN 引导加载程序。

在 PC 上打开命令窗口并切换到包含示例工程的目录。该目录中有一个 PC 可执行程序“SendCANID.exe”和三个 .bat 文件。在命令窗口中输入“StopRed COMnn”,将 COM 端口号替换为“nn”。用户应看到与下文所示相似的结果,并且红色 LED 应停止闪烁。

C:\MyWorkspace>StopRed COM16
C:\MyWorkspace>SendCANID COM16 0x1F028000 0x02
Program to select CAN ID for download, Version 1.00
Opened serial port COM16 successfully
Sent ID: 0x1F028000 Data: 0x02
Received: 0xCC
C:\MyWorkspace>

现在 LaunchPad 已恢复为执行 CAN 引导加载程序,用户可以使用 LM FlashProgrammer 更改应用程序代码。尝试编程“boot_demo_can\BLUE\boot_demo_can.bin”。

使用此示例应用程序代码和引导加载程序代码,可以将 CAN 总线上的单个单元置于 CAN 引导加载程序模式并进行更新。CAN 总线上的每个器件都可以一次更新一个。can_to_uart 代码不支持同时更新多个器件。为此,需要修改 can_to_uart 代码和 CAN 引导加载程序,以支持对每个 CAN 命令的多个状态响应。

作为一项额外的功能,如果“uart_to_can”程序从“SendCANID”程序接收到 ID 0xFFFFFFFF 和数据 0x00,则“uart_to_can”程序将跳转到其 ROM 串行引导加载程序,从而允许“uart_to_can”程序被更新或覆盖。