This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:使用 LM Flash Programmer 通过 UART 加载固件

Guru**** 2022830 points
Other Parts Discussed in Thread: EK-TM4C1294XL, TM4C1294KCPDT, TM4C1294NCPDT
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1420247/tm4c1294kcpdt-loading-firmware-through-uart-using-lm-flash-programmer

器件型号:TM4C1294KCPDT
主题中讨论的其他器件: TM4C1294NCPDT、EK-TM4C1294XL

工具与软件:

尊敬的团队:

我们将 基于 TM4C1294KCPDT 的定制板用于一个使用 TCP/IP 通信和 RS -232通信的应用。 对于此应用、LAN 和 RS -232通信都运行良好、通信是一致的。 RS 232驱动器连接到 MCU 中的 UART0引脚。 我们希望通过避免使用 JTAG、使用 RS-232端口(通过 UART0)来加载固件。 我使用了引导加载程序示例、  几年前、我已在其他定制电路板中使用 TM4C1294NCPDT、使用 LM 闪存编程器通过 Serial 加载软件。 这里运行得很好、我正在尝试在此项目中复制相同的内容、我在 LM 闪存编程器中收到一条错误消息、指出波特率无法与目标同步。

我正在附加以下引导加载程序代码、该代码将在按下某个开关一段时间后执行、用于进入引导模式。 在 之前工程的 TM4C1294NCPDT 中使用相同的代码、因此我可以通过 LM 闪存编程器加载固件、但无法在 TM4C1294KCPDT 中完成此操作。 关于 MCU UART 引脚、原理图相同。 唯一的区别是、我目前使用连接到 UART0的 RS 转232端口来加载固件、但在之前的部分、我使用 FT232 USB 转 UART 芯片连接到 UART0 MCU 引脚。 我在代码和 LM Flash 程序员中也验证了波特率。  

这是我遗漏的东西吗?

void UpdateFW (void )  --- >当按下启动开关5秒时将执行此操作

SysCtlDelay (200000);

//禁用所有中断
rom_IntMasterDisable();
ROM_SysTickIntDisable();
ROM_SysTickDisable ();

HWREG (NVIC_DIS0)= 0xffffffff;
HWREG (NVIC_DIS1)= 0xffffffff;
HWREG (NVIC_DIS2)= 0xffffffff;
HWREG (NVIC_DIS3)= 0xffffffff;
HWREG (NVIC_DIS4)= 0xffffffff;

//为 PA0配置 UART0、为串行引导加载程序配置 PA1
ROM_SysCtlPeripheralEnable (SYSCTL_PERIPH_GPIOA);
ROM_SysCtlPeripheralEnable (SYSCTL_PERIPH_UART0);

GPIOPinConfigure (GPIO_PA0_U0RX);
GPIOPinConfigure (GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART (GPIO_PORTA_BASE、GPIO_PIN_0 | GPIO_PIN_1);

ROM_UARTConfigSetExpClk (UART0_BASE、g_ui32SysClock、115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |)
uart_config_PAR_NONE));

ROM_IntEnable (INT_UART0);
//ROM_UARTIntEnable (UART0_BASE、UART_INT_RX | UART_INT_RT);

ROM_SysCtlDelay (g_ui32SysClock / 3);

ROM_IntMasterEnable();

rom_UpdateUART();
}

 

此致、

Arjun Devadass

技术总监

ELDAPS Technology Solutions Pvt Ltd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arjun:

    唯一的区别是、我目前使用连接的 UART-232端口来加载固件、但在之前的版本中、我使用了 FT232 RS 转 UART 芯片转 UART0 MCU 引脚。 我在代码和 LM Flash 程序员中也验证了波特率。  [报价]

     我不确定您的 PC 端是否存在 RS232驱动器问题。  

     在 LM Flash Programmer 中、您应禁用自动波特率支持。  

     您是否能够按原样运行 TivaWare SDK 中的示例 C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c1294xl\boot_demo_uart_rom? 您是否有同样的问题?  此示例将通过调用 ROM_UpdateUART 跳转到 ROM 引导加载程序。  

     我建议您在 LaunchPad 上运行示例以及您自己的代码。 这样、我们就可以更好地缩小问题范围。  

     另请尝试命令行 sflash.exe。 您是否具有与 LM 闪存编程器相同的问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Charles、

    我正在使用 USB-232到 RS 转换器连接我的 PC、它运行良好、因为我可以从我用作调试日志的应用程序读取 RS -232数据。 希望这不会是问题。 我先在 Launchpad 中检查一下演示代码。 如果工作正常、则 PC 端应正常。 我们很快就会回复您。

    此致、

    Arjun Devadass

    技术总监

    ELDAPS Technology Solutions Pvt Ltd