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.

TMS320F280049: TMS320F280049从flash启动失败问题

Part Number: TMS320F280049

程序:官方闪灯代码《led_ex1_blinky》

电路:硬件原理图VREGENZ接地,采用内部1.2v

1.修改:(1)dcdc使能

                    //ASysCtl_disableDCDC();  用这个函数仿真器报错进入低压模式
                     ASysCtl_enableDCDC();//使用这个函数仿真器通过

        (2)配置GPIO24和gpio32,使其能够从flash启动。上电后经过万用表测试GPIO24电压为3V3;  GPIO32电压为2V9

//Configure GPIO in Push Pull,Output Mode

GPIO_setPadConfig(24U, GPIO_PIN_TYPE_STD);
GPIO_setPadConfig(32U, GPIO_PIN_TYPE_STD);
GPIO_setPadConfig(24U,GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(32U,GPIO_DIR_MODE_OUT);

2.问题描述:(1)仿真器经过仿真可以闪灯

               (2)仿真器下载程序完成后,也可以闪灯

               (3)仿真器下载程序后,板子断电,拔掉仿真器,不能闪灯,说明flash启动失败。

作为对比,我用另外一块外部1.2v电源给芯片供电(5v转1.2v),没有经过以上1.1和1.2的修改,也可以正常仿真和下载flash,闪灯也正常。

但是目前我们的板子是经过修改了内部1.2v,这种情况下,工程需要有哪些需要修改的地方?

  • 看起来问题是出在1.2V的VDD电源上。有没有测量一下VDD的电压是多少?

    使能内部的VREG生成1.2V的VDD电源,完全是硬件上的事,不需要软件的配置。

    //ASysCtl_disableDCDC();  用这个函数仿真器报错进入低压模式
                         ASysCtl_enableDCDC();//使用这个函数仿真器通过

    这两行代码也只是起检查的作用。

    请看一下datasheet的电源相关部分,包括6.3.3 电源和接地,以及7.9.1.2.6 内部 1.2V 开关稳压器(直流/直流),确保相关的硬件设计没有问题。

  • 感谢您的分析。

    我们已经调通了,重新焊接了晶振就可以了。所以应该是晶振虚焊导致的。

  • 抱歉,之前焊接晶振能启动属于碰巧。后来再次断电启动又不行了。

    我们现在把GPIO24和GPIO32上拉就完全可以了。

    所以最终答案是GPIO24和GPIO32需要硬件上拉。

    官方参考设计也是如此。

    如果GPIO24和GPIO32硬件不上拉,软件是否可以通过配置GPIO24和GPIO32上拉可以启动?

  • 从flash启动就是要上拉的呀,你都没启动咋配置GPIO呢对伐。

    这个意思上电启动的时候就是要是高电平,才能是flash启动。程序运行起来以后这两个引脚可以配置为自己想要的功能。

    不过我不太明白的是这个sci/can引导启动具体是什么方式。假设配置为sci启动,难道是上电后串口下发了数据到这两个引脚之后才启动?

  • 是的,不能通过软件上拉。上拉在boot的过程中是禁用的:

    https://www.ti.com/lit/ds/sprs945g/sprs945g.pdf

    就是要通过外部硬件上下拉的方式来选择boot模式。

  • 不过我不太明白的是这个sci/can引导启动具体是什么方式。假设配置为sci启动,难道是上电后串口下发了数据到这两个引脚之后才启动?

    这个是用于在线升级的。比如选择sci,升级的代码就会通过sci口传输进来。

  • 因为硬件开始设计没上拉,但是希望试图通过软件有方法弥补。既然不能,只能硬件重新改板。非常感谢您的专业回复。