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.

[参考译文] TMS320F2.8069万F:添加到InstaSPIN时出现SCI调试问题

Guru**** 2534260 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/641335/tms320f28069f-sci-debug-problem-when-adding-into-instaspin

部件号:TMS320F2.8069万F
主题:controlSUITE中讨论的其他部件

你好,冠军,

客户在 InstaSPIN项目中使用时遇到奇怪的SCI问题。 客户发现SCI可以在调试模式下接收数据,但无法在独立模式下接收,而电机控制功能工作正常。

FAE试图重新生成该问题,因此我根据客户项目进行了环回测试,您可以看到下面的测试代码,我将controlSUITE示例复制到InstaSPIN项目,最后我找到了原因:

如您所见,有三种方法可以编写 SCITXBUF,如果我使用了方法1和2,它可以在调试模式下工作并闪烁LED1,但在独立时失败。 只有方法3可以在调试和独立模式下工作。

该项目使用了OPT-level 2和6.4 Tm6编译器。

请帮助我们评论为什么会发生这种情况,让我们来处理。

主{

// InstaSPIN初始代码

....

EALLOW;
  
SysCtrlRegs.LOSPPCP.ALL = 0x0002; // LOSPPCP预分段寄存器设置,通常将其设置为默认值

SysCtrlRegs.PCLKCR0.bit.SCIANCLK =1;// SCI-A

SysCtrlRegs.PCLKCR0.bit.SCIBENCLK =1;// SCI-B

EDIS;

SciaRegs.SCICCR.ALL =0x0007;// 1停止位,无回送
                           //无奇偶校验,8个字符位,
                           //异步模式,空闲线路协议
SciaRegs.SCICTL1.all =0x0003;//启用TX,RX,内部SCICLK,
                           //禁用RX ERR,睡眠,TXWAKE
SciaRegs.SCICT2.all =0x0003;
SciaRegs.SCICTL2.bit.TXINTENA =1;
SciaRegs.SCICTL2.bit.RXBKINTENA =1;
SciaRegs.SCIHBAUD =0x0000;
SciaRegs.SCILBAUD =0x000F;
SciaRegs.SCICCR.bit.LOOPBKENA =1;//启用回路
SciaRegs.SCICTL1.all =0x0023;//从重置放弃SCI

对于(;;)

usDelay (US_to_CNT (10万));

// halHandle->sciHandle->SCITXBUF =(unsigned char)(0xAA); //方法1

// HAL_Obj *OBJ =(HAL_Obj *) halHandle;  //方法2
// SCI_putDataLocking(obj->sciHandle, 0xAA);

SciaRegs.SCITXBUF=0xAA;//方法3

while (SciaRegs.SCIRXST.bit.RXRDY !=1){}

HAL_TOGLELed (halHandle,(GPIO编号_e) HAL_GPIO _LED1);
CommRxBUF[1]=(halHandle->sciHandle->SCIRXBUF)& 0x00ff;

....

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否初始化了SCIA句柄并为method1和2将正确的地址分配给sciHandle?
    代码是否在调试和独立模式的闪存中运行? ISR的CPU使用率是多少? 项目中是否使用了其他中断?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Yanming
    使用正确的地址初始化SCIA句柄。 代码在闪存调试模式和独立模式下运行。
    未测试CPU使用情况,仅为电机控制ISR打开timer0中断。

    Eric