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.

TMS320F280025: 串口烧写无法成功

Part Number: TMS320F280025
Other Parts Discussed in Thread: UNIFLASH, C2000WARE

目前想用串口来烧写TMS320F280025这个芯片,但发现与28027或28034等芯片的串口烧写有很大的不同。

GPIO24为低,GPIO32为高。

假如我想要用GPIO16和GPIO17来SCI串口烧写,其他引脚的电平应该是什么状态?端口应该保持什么状态才能让程序烧写成功。还有,如何配置BOOTDEF Value=0x21?

GPIO28和GPIO29也试过,也不成功。请帮助。

  • 你帖出来的这些,都是有关boot的可选配置,通过DCSM来配置。使用默认配置就可以。

    你硬件使用的是什么?具体的操作步骤方便说一下吗?

  • 我使用的是usb转串口的插头,用C2PROG软件来烧写,烧28034和28027都没有问题,证明硬件没有问题。但SCI烧写280025就不行。默认的用GPIO28和GPIO29也不行,如何实现SCI烧写。例如端口要什么电平?

  • 硬件上是没有什么区别的。

    有没有看过这个手册:sprabv4e_Serial Flash Programming of C2000 Microcontrollers (Rev. E)

    28027、28034属于Flash Kernel A,F280025属于Flash Kernel B。

    除了C2PROG,针对SCI boot是有专门的上位机的。请按照手册中的步骤以及提供的例程尝试一下。

  • 您好,我下载了UNIFLASH,发现280025在UNIFLASH上不支持串口烧写。麻烦推荐一个烧写的上位机(发链接下载)。

    我板子的硬件上,GPIO24为低,GPIO32为高,选择为SCI的boot mode。烧写口选用默认的GPIO28和GPIO29。

    我在C2PROG上烧写,一直停留在这个界面。

    其实,可以简单一点,您这边推荐一个烧写上位机给我,哪些端口需要保持什么样的电平,按照您这边的指示来,看能不能完成SCI串口烧写。

  • 我整理之后回复你

  • 硬件:LAUNCHXL-F280025C

    工具(上位机):serial_flash_programmer(C:\ti\c2000\C2000Ware_4_03_00_00\utilities\flash_programmers\serial_flash_programmer

    需要用到的工程:

    C:\ti\c2000\C2000Ware_4_03_00_00\driverlib\f28002x\examples\flash-->flash_ex3_sci_flash_kernel(flash kernel B,必须)

    C:\ti\c2000\C2000Ware_4_03_00_00\driverlib\f28002x\examples\led-->led_ex1_blinky(示例,可替换)

    步骤:

    1. 上电前将LaunchPad上的拨码开关S3打到'01'(上下)位置,即设置BOOT mode为 SCI boot mode/Wait boot mode(如果是在上电后操作的,改变拨码开关的位置后需要按S1 reset);
    2. 将kernel工程导入到CCS中,直接编译,之后将flash_kernel_ex3_sci_flash_kernel.txt复制到C:\ti\c2000\C2000Ware_4_03_00_00\utilities\flash_programmers\serial_flash_programmer
    3. 将示例工程导入到CCS中,左侧Project Explorer中右键单击工程名-->Properties,或直接Alt+Enter,将
      "${CG_TOOL_HEX}" "${BuildArtifactFileName}" -boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"
      添加到Post-build steps中: ;接着Enable 'C2000 Hex Utility': ,然后:  ,Apply and Close,编译工程,将led_ex1_blinky.txt复制到C:\ti\c2000\C2000Ware_4_03_00_00\utilities\flash_programmers\serial_flash_programmer
    4. C:\ti\c2000\C2000Ware_4_03_00_00\utilities\flash_programmers\serial_flash_programmer下打开命令行工具,输入
      serial_flash_programmer.exe -d f28002x -k flash_kernel_ex3_sci_flash_kernel.txt -a led_ex1_blinky.txt -p COM<num>
      ,用实际的COM口数字来代替,回车: ,接着上位机便首先开始烧写flash kernel到RAM中,过程大概持续1分钟,实际取决于速率:
    5. 这里我简单介绍一下串口烧写的大概流程。BOOT ROM先根据BOOT引脚选择BOOT模式,比如SCI模式,器件会在上电后的BOOT流程中选择从SCI加载代码,但是这个加载只能将代码加载到RAM中,所以TI设计了flash kernel;先将flash kernel加载到RAM中之后,flash kernel会继续与上位机配合,通过SCI口将用户代码加载到Flash中。这样就完成了串口烧写功能。
    6.  输入1,回车。(DFU Device Firmware Upgrade)。用户代码开始传输并烧写,时间取决于代码量及速率,本例大概在10秒左右:
    7.  输入6,回车,然后输入程序的入口地址(烧录成功之后会显示),回车,程序运行,LaunchPad上的LED4闪烁(红色):
  • 关于这个讨论还有相关的问题吗?