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.

DSP上电复位时的奇怪现象

Other Parts Discussed in Thread: TMS320F28035

您好!

我用的TMS320F28035,在DSP刚上电时,PWM模块无输出,但是在PWM中断程序中执行的GPIO、SCI程序都能正常输出,请问这是怎么回事?

  • 这个需要用仿真器监视一下芯片内部的程序运行检查一下原因。

  • 如果如你所说,应该是进入了PWM中断?PWM配置基本正确的前提下,则请确认PWM对应的GPIO口是否设置成了PWM功能,或者有无死区以及保护等功能将输出关闭了。

  • 感谢各位的回复。DSP控制板上有手动复位按键,按下手动复位按键后,PWM输出就正常了,说明PWM功能设置应该没问题,是吧?

  • PWM配置应该没有问题。

    程序是Load到RAM带着仿真器运行,还是烧写到Flash脱机运行?

    如何判断PWM没有输出,GPIO/SCI能正常输出的?

  • 程序是烧到Flash之后脱机运行,在PWM中断中执行GPIO,并往SCI发送缓冲器中写数,启动SCI发送,GPIO/SCI执行都正确,所以断定GPIO/SCI可以正常输出

  • 你能判断是只进一次还是多次?尝试使用GPIO翻转看看对应频率是否与你的PWM相同?

    另外,建议使用仿真模式跟踪一下看看程序运行状态。

  • 连上仿真器能够复位,程序能够正常运行。在PWM中断程序中用GPIO口驱动LED灯闪烁也正常

  • 看到你说“DSP控制板上有手动复位按键,按下手动复位按键后,PWM输出就正常了”

    有没有可能是程序初始化的问题,能否把程序中的变量都付一下初始值,然后看看对不对。

    比如类似下面程序中,第一次运行k不会等于6,但是复位重新运行K=6,同样连上仿真器重新LOAD程序或者GEL文件也可能有这样的作用,可能这是导致PWM不正常的原因。

    main()

    {

    int i,k;  

    if(i==5}{k=6;}

    i=5;

    }

    当然具体的我仍旧建议你用仿真器监视一下芯片内部.

  • 我按楼上您说的做了,给变量i 和k赋初值,第一次运行k不等于6,再次复位运行k=6

  • 您好,我现在使用28069的sci也出现了仿真正常脱离仿真器后不正常的现象,请问您是怎么解决的?
  • 楼主的问题 我感觉应该是上电未完成自复位 内部有些模块可能不需要复位能工作 有些不行 所有不工作
    你的上电后复位一下看看能不能跑起来 然后烧写到flash后上电如果不执行 增加上电搬移到RAM中试试