Hi,
I am faced with UART0 configuration issue on TMS320C6748. While UART1 works fine, UART 0 dosent.
Obviously, there is something that I might have missed in configuring UART0 in code below.
please help identify!.
Int Platform_configureUart(void)
{
CSL_SyscfgRegsOvly sysCfgRegs = (CSL_SyscfgRegsOvly)CSL_SYSCFG_0_REGS;
Error_Block eb;
DEV_Params devParams;
Uart_Params uartParams;
/*************************************
* UART0 - BT
*************************************/
uartParams = Uart_PARAMS; /* initialize to defaults. */
uartParams.opMode = Uart_OpMode_POLLED; //Uart_OpMode_INTERRUPT;
uartParams.baudRate = Uart_BaudRate_115_2K;
uartParams.hwiNumber = 8; // Event 38 (UART0_INT) => ECM.eventGroupHwiNum[1] = 8;
uartParams.rxThreshold = Uart_RxTrigLvl_1;
uartParams.softTxFifoThreshold = 1;
uartParams.fc.fcType = Uart_FcType_HW;
uartParams.fc.fcParam = Uart_FcParam_AUTO_RTS_CTS;
Psc_ModuleClkCtrl(Psc_DevId_0, CSL_PSC_UART0, TRUE);
Error_init(&eb);
DEV_Params_init(&devParams);
devParams.deviceParams = &uartParams;
devParams.initFxn = &Uart_init;
devParams.devid = 0;
DEV_create("/uart0", &Uart_IOMFXNS, &devParams, &eb);
if(Error_check(&eb))
{
Error_raise(NULL, Error_E_generic, "Error creating /uart0", 0);
}
/* Enable the pinmux registers for UART0
*
D18 UART_BT_TXD UART0_TXD
C19 UART_BT_RXD UART0_RXD
D16 UART_BT_RTS UART0_RTS OUT
E17 UART_BT_CTS UART0_CTS IN
*/
// RXD
sysCfgRegs->PINMUX3 &= ~CSL_SYSCFG_PINMUX3_PINMUX3_19_16_MASK;
sysCfgRegs->PINMUX3 |= (CSL_SYSCFG_PINMUX3_PINMUX3_19_16_UART0_RXD <<
CSL_SYSCFG_PINMUX3_PINMUX3_19_16_SHIFT);
// TXD
sysCfgRegs->PINMUX3 &= ~CSL_SYSCFG_PINMUX3_PINMUX3_23_20_MASK;
sysCfgRegs->PINMUX3 |= (CSL_SYSCFG_PINMUX3_PINMUX3_23_20_UART0_TXD <<
CSL_SYSCFG_PINMUX3_PINMUX3_23_20_SHIFT);
// CTS
sysCfgRegs->PINMUX3 &= ~CSL_SYSCFG_PINMUX3_PINMUX3_27_24_MASK;
sysCfgRegs->PINMUX3 |= (CSL_SYSCFG_PINMUX3_PINMUX3_27_24_UART0_CTS <<
CSL_SYSCFG_PINMUX3_PINMUX3_27_24_SHIFT);
// RTS
sysCfgRegs->PINMUX3 &= ~CSL_SYSCFG_PINMUX3_PINMUX3_31_28_MASK;
sysCfgRegs->PINMUX3 |= (CSL_SYSCFG_PINMUX3_PINMUX3_31_28_UART0_RTS <<
CSL_SYSCFG_PINMUX3_PINMUX3_31_28_SHIFT);
/*************************************
* UART1 - RS 232
*************************************/
uartParams = Uart_PARAMS; /* initialize to defaults. */
uartParams.opMode = Uart_OpMode_POLLED; //Uart_OpMode_INTERRUPT;
uartParams.baudRate = Uart_BaudRate_115_2K;
uartParams.hwiNumber = 8; // Event 46 (UART_INT1) => ECM.eventGroupHwiNum[1] = 8;
uartParams.rxThreshold = Uart_RxTrigLvl_1;
uartParams.softTxFifoThreshold = 1;
//NOTYET uartParams.fc.fcType = Uart_FcType_HW;
//NOTYET uartParams.fc.fcParam = Uart_FcParam_AUTO_RTS_CTS;
Psc_ModuleClkCtrl(Psc_DevId_1, CSL_PSC_UART1, TRUE);
Error_init(&eb);
DEV_Params_init(&devParams);
devParams.deviceParams = &uartParams;
devParams.initFxn = &Uart_init;
devParams.devid = 1;
DEV_create("/uart1", &Uart_IOMFXNS, &devParams, &eb);
if(Error_check(&eb))
{
Error_raise(NULL, Error_E_generic, "Error creating /uart1", 0);
}
/* Enable the pinmux registers for UART1
*
F19 UART_DBG_TXD UART1_TXD OUT
E18 UART_DBG_RXD UART1_RXD IN
A2 UART_DBG_RTS UART1_RTS OUT
A3 UART_DBG_CTS UART1_CTS IN
*/
// RXD
sysCfgRegs->PINMUX4 &= ~CSL_SYSCFG_PINMUX4_PINMUX4_27_24_MASK;
sysCfgRegs->PINMUX4 |= (CSL_SYSCFG_PINMUX4_PINMUX4_27_24_UART1_RXD <<
CSL_SYSCFG_PINMUX4_PINMUX4_27_24_SHIFT);
// TXD
sysCfgRegs->PINMUX4 &= ~CSL_SYSCFG_PINMUX4_PINMUX4_31_28_MASK;
sysCfgRegs->PINMUX4 |= (CSL_SYSCFG_PINMUX4_PINMUX4_31_28_UART1_TXD <<
CSL_SYSCFG_PINMUX4_PINMUX4_31_28_SHIFT);
// CTS
sysCfgRegs->PINMUX0 &= ~CSL_SYSCFG_PINMUX0_PINMUX0_23_20_MASK;
sysCfgRegs->PINMUX0 |= (CSL_SYSCFG_PINMUX0_PINMUX0_23_20_UART1_CTS <<
CSL_SYSCFG_PINMUX0_PINMUX0_23_20_SHIFT);
// RTS
sysCfgRegs->PINMUX0 &= ~CSL_SYSCFG_PINMUX0_PINMUX0_19_16_MASK;
sysCfgRegs->PINMUX0 |= (CSL_SYSCFG_PINMUX0_PINMUX0_19_16_UART1_RTS <<
CSL_SYSCFG_PINMUX0_PINMUX0_19_16_SHIFT);
return Startup_DONE;
}