Part Number: LAUNCHXL-F28069M
I ran into an SCI communication issue on the LaunXL-F28069 board. The jumpers JP6/JP7 are configured as default, i.e.,
MUX_SEL = 1, CH_SEL = 0, GPIO15&58 — UART
which means SCIB (GPIO15 - SCIRXDB, GPIO59 - SCITXDB) is used.
GPIO15 is configured as below:
GpioCtrlRegs.GPAMUX1.bit.GPIO15 = GPIO15_MUX_SCIRXDB; // 0=GPIO, 1=ECAP2, 2=SCIRXDB, 3=SPISTEB GpioCtrlRegs.GPAPUD.bit.GPIO15 = 0; // Enable pull-up for GPIO15 (SCIRXDB)
GpioCtrlRegs.GPAQSEL1.bit.GPIO15 = GPIO_QUAL_Async; // Asynch input GPIO15 (SCIRXDB)
GPIO58 is configured as below:
GpioCtrlRegs.GPBMUX2.bit.GPIO58 = GPIO58_MUX_SCITXDB; // 0=GPIO, 1=MCLKRA, 2=SCITXDB, 3=EPWM7A
GpioCtrlRegs.GPBPUD.bit.GPIO58 = 0; // Enable pull-up for GPIO58 (SCITXDB)
SCIB module is configured as below:
void InitScib(void)
{
ScibRegs.SCICCR.all = 0x0007; // 1n8 format, idle-line mode
ScibRegs.SCICTL1.all = 0x0003; //Enable RX/TX
ScibRegs.SCICTL2.all = 0x0002; //Enable RX, BRK interrupt
ScibRegs.SCIHBAUD = 0x0001;
ScibRegs.SCILBAUD = 0x0003; //259 = 9600baud @ LSPCLK = 80/4 MHz
ScibRegs.SCIFFRX.all = 0x8040;
ScibRegs.SCIFFTX.all = 0x2064;
ScibRegs.SCIFFCT.all = 0x0000;
ScibRegs.SCICTL1.bit.SWRESET = 1; // Relinquish SCI from Reset
}
SCIB ISR vector is set:
PieVectTable.SCIRXINTB = &ScibRx_ISR;
LSPCLK to SCI-B is enabled
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1;
I used TI's 2xPM_Motors.exe tool to test my motor control embedded code. The Virtual COM Port (VCP) is configured at the same baud rate (9600), but when the Connect botton on the tool is clicked, the embedded code hits an illegal interrupt service routine immediately. At that time, SCIRXST value is 0x0002, i.e., no errors except RXWAKE bit is 1.
Since no error bits were set, I had no idea what went wrong. Your support is greatly appreciated.