TMS320F280037: TMS320F280037烧录时,擦除flash失败

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

我在开发烧录器,用于在线量产烧录TMS320F280037芯片,遇到一些问题。

批量生产时,发现部分芯片烧录失败。报错是擦除失败,调用flash api时,发现PC指针在0x3feea4地址,flash内容没有被擦掉。

我使用uniflash工具可以正常擦除,我也尝试修改f280037.gel文件,将OnReset,OnRestart,OnTargetConnect函数中所有内容都注释掉,依然可以成功。

请问,uniflash在初始化芯片时,做了哪些特殊操作?可否提供相关流程文件?

  • 您好,
    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,

    flash api 是使用芯片内的升级代码进行flash编程,

    而uniflash是通过JTAG接口烧录。

    发现部分芯片烧录失败。报错是擦除失败

    如果是部分芯片有问题,那么代码应该没有问题,请检查板子的电源供电是否稳定。

  • 我的产品是要实现uniflash的功能,我的产品是烧录器,运行时会将驱动下载到芯片上,调用flash api做擦除烧录的功能。现在调试客户板子时,遇到上述擦除失败的问题。

  • 您好,

           uniflash不会让MCU调用flash API擦写FLASH.

           我认为您实现的是类似flash programmer的功能。    ..\ti\C2000\C2000Ware\utilities\flash_programmers

  • 我要做xds100+unflash的在线量产版烧录器。我的功能是通过JTAG口,向tms320f280037灌装客户的应用程序。我不需要bootloader或别的。我的实现方式是让芯片halt住,将一段用于擦除烧录的程序写到芯片的RAM,然后让芯片运行这段程序实现擦除烧录。

    我遇到的问题是:部分客户板子发现能halt住,但是擦除报失败(uniflash能正常),此时,芯片是halt状态(SSR: 0x45f2b89, MSR: 0x06),读到PC指针在0x3feef8(根据芯片datasheet,是引导ROM区域),我想知道这个地址是什么作用?表示什么状态?

  • 您好,

          请问在擦除操作失败后,FMSTAT 寄存器的值是多少?
          芯片是否遇到了 NMI?RESC 寄存器的值是多少?
         地址 0x3FEEF8 位于boot ROM 的 ITRAP 处理程序内。

         boot ROM的map文件位于 ../C2000Ware/libraries/boot_rom/f28003x/rev0/rom_sources/ccs_files/cpu/Release

  • 失败时候,我读了下RESC:0xc0000004, FMSTAT:0x0,SCSR: 0x4

    是看门狗复位导致的吗?如何关闭看门狗?

    为什么PC会跑到ITRAP中去了?

  • 你好,我的烧录器用jtag口给芯片发送SYSRS后,发现RESC: 0x8,NMISHDFLG: 0x8。我查芯片手册发现是FLUNCERR置位了,手册上说SYSRSn会恢复此错误,为什么我这边还是会置FLUNCERR?