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.

[参考译文] TM4C1294NCPDT:使用 tm4c1294ncpdt 设计的定制板的串行编程

Guru**** 2460850 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/654271/tm4c1294ncpdt-serial-programming-of-custom-board-designed-using-tm4c1294ncpdt

器件型号:TM4C1294NCPDT

尊敬的先生,亲爱的朋友们

我将使用 tm4c1294ncpdt 开发自己的定制板。 我使用 uart0对控制器进行编程。 但我不知道如何使用硬件将微控制器置于编程模式。 应该上拉或下拉哪些引脚来将控制器置于编程模式。 因此、如果可能、请提供用于编程(uart0)目的的原理图或电路图。 还可以共享有关使用串行 uart0和 LM 闪存编程器编程/引导加载 tm4c1294ncpdt 的详细信息。

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Digvijay、
    请参阅 TivaWare boot_serial (引导加载程序)和 boot_demo1.bin (应用程序)示例。 必须首先通过 JTAG 接口将 boot_serial 加载到闪存中。 一旦运行、它将通过 LM 闪存编程器下载 boot_demo1.bin。 您可以指定要激活引导加载的引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Digvijay khambe 说:
    可以共享有关编程/引导加载的详细信息...

    这是"命令"吗?   在申请"论坛"(自愿)援助时、从不明智...

       因为"分享"被认为是重要的-可能让 Vijay "分享"他自己所做的努力-代表他减少了对"无行为/命令"助手 crüe 的要求。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,查尔斯
    感谢您上次的回复。 我可以为引导加载指定任何引脚。 但真正的问题是如何实现它?? 根据数据表、我可以了解我必须修改 FMPREn 和 FMPPEn 寄存器。 但我无法弄清楚、如何使用 GPIO 修改这些寄存器。 那么、您能不能对此有所说明。

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

    您好、Digvijay、

     您是否在寻找基于闪存的引导加载程序或基于 ROM 的引导加载程序?

     如果您正在寻找基于闪存的引导加载程序、为其创建 boot_cserial 示例、则可以使用 bl_config.h 指定要用于强制固件更新的引脚。 请浏览 bl_config.h 文件。 下面是 bl_config.h 的一个片段

    //
    //
    //启用基于引脚的强制更新检查。 启用后、如果
    引脚被读取
    、引导加载程序//将进入更新模式、而不是调用应用程序、//处于特定极性、强制执行更新操作。 在任一种情况下、
    //应用程序仍能将控制权返回给引导加载程序、以便
    //开始更新。 对于需要执行比
    使用单个 GPIO 可能执行的更复杂//检查的应用、可以
    //使用 BL_CHECK_UPDATE_FN_HOOK 提供挂钩函数。
    //
    //取决于:无
    //不包括:无
    //需要:Forced_update_Periph、Forced_update_port、Forced_update_PIN、
    // Forced_update_polarity
    //
    ////***************
    //#define ENABLE_UPDATE_CHECK
    
    //*********
    //
    //要启用 GPIO 模块以检查强制更新。 这将
    //成为 SYSCTL_RCGC2_GPIOx 值之一,其中"x"将替换为端口
    //名称(如 B)。 "x"的值应与
    // forced_update_port 的"x"的值匹配。
    //
    //取决于:enable_update_check
    //不包括:none
    // requss: none
    //
    //*********
    //#define forced_update_Periph sysctl_RCGC2_GPIOB
    
    //*********
    //
    // GPIO 端口检查强制更新。 这将是
    // GPIO_Portx_BASE 值之一,其中"x"替换为端口名称(如
    // B)。 "x"的值应与
    // Forced_update_Periph 的"x"的值匹配。
    //
    //取决于:enable_update_check
    //不包括:none
    // requss: none
    //
    //*********
    //#define forced_update_port GPIO_PORTB_BASE
    
    //*********
    //
    //检查强制更新的引脚。 这是一个介于0和7之间的值。
    //
    //取决于:enable_update_check
    //不包括:none
    // requss: none
    //
    //*********
    //#define forced_update_pin 4
    
    //*************
    //
    //导致强制更新的 GPIO 引脚的极性。 如果
    引脚应该为低电平、这个值//应该为0;如果引脚应该为高电平、这个值应该为1。
    //
    //取决于:enable_update_check
    //不包括:none
    // requss: none
    //
    //*********
    //#define forced_update_polarity 0
    
    //*********
    //
    //这为强制
    //更新中使用的 GPIO 引脚启用弱上拉或下拉。
    只应//定义其中一个 forced_update_wpu 或 forced_update_wpd、如果不需要弱上拉或下拉、则不应这样做。
    //
    //取决于:enable_update_check
    //不包括:none
    // requss: none
    //
    //*********
    //#define forced_update_WPU
    //#define forced_update_wpd
    

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

    谢谢你查尔斯。 解决了我的问题。