Part Number:TMS320F28379DOther Parts Discussed in Thread:TMDXIDDK379D, SFRA
Hi,
Ti friends!
The board type used by the customer is IDDK – TMDXIDDK379D and is testing Level6-SFRA functionality. Configure the SCI as described in the SFRA guide:
But found that it doesn't seem to work, how should the SCI initialisation be further modified?
void sci_init(void)
{
GPIO_setMasterCore(DEVICE_GPIO_PIN_SCIRXDA, GPIO_CORE_CPU1);
GPIO_setPinConfig(DEVICE_GPIO_CFG_SCIRXDA);
GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_DIR_MODE_IN);
GPIO_setPadConfig(DEVICE_GPIO_PIN_SCIRXDA, GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCIRXDA, GPIO_QUAL_ASYNC);
//
// Configuration for the SCI Tx pin.
//
GPIO_setMasterCore(DEVICE_GPIO_PIN_SCITXDA, GPIO_CORE_CPU1);
GPIO_setPinConfig(DEVICE_GPIO_CFG_SCITXDA);
GPIO_setDirectionMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_DIR_MODE_OUT);
GPIO_setPadConfig(DEVICE_GPIO_PIN_SCITXDA, GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode(DEVICE_GPIO_PIN_SCITXDA, GPIO_QUAL_ASYNC);
SCI_performSoftwareReset(SCIA_BASE);
//
// Configure SCIA for echoback.
//
SCI_setConfig(SCIA_BASE, DEVICE_LSPCLK_FREQ, 4000000, (SCI_CONFIG_WLEN_8 |
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_resetChannels(SCIA_BASE);
SCI_resetRxFIFO(SCIA_BASE);
SCI_resetTxFIFO(SCIA_BASE);
SCI_clearInterruptStatus(SCIA_BASE, SCI_INT_TXFF | SCI_INT_RXFF);
SCI_enableFIFO(SCIA_BASE);
SCI_enableModule(SCIA_BASE);
SCI_performSoftwareReset(SCIA_BASE);
}
Many thanks!
Yale Li:
I have already transferred this issue to the relevant engineer, pls focus on the link below:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1311137/tms320f28379d-how-to-modify-the-routines-in-the-design-drive-development-kit-iddk—tmdxiddk379d-to-use-sfra-features
,
打工人:
你好目前还有个问题是,在Level4的FOC双闭环中,电机能很好地控制,转为Level6的时候,run motor 标志自动变为Stop,并且不让我改为Run motor。我不知道这是为什么,能帮我分析一下原因么,分析中有什么相关的需要我可以提供,卡在这里好久了有点着急
,
Yale Li:
不使用GUI的时候SFRA是否可以单独工作?是否能得到幅度和相位矢量数据值?
,
打工人:
目前GUI没有连接时候也无法工作,电机无法控制,不让我进行Run motor,自动变成RUN stop.另外我还发现此时的tFormat_crcError显示为1。关于打的代码如下:
if(!tformat_checkCRC(crcResult, tformatData.crc)) { tFormat_crcError = 1; runMotor = MOTOR_STOP; }
不知道是否是因为这个原因不让我对转电机的标志位进行设置呢?
调试参数如下:
麻烦您帮分析一下可能出现问题的原因,非常感谢!
,
Yale Li:
好的,我跟进过去了