主题中讨论的其他器件: 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