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.

TM4C1290NCPDT: Custom board Uart0 to Rs232 Junk value as output.

Part Number: TM4C1290NCPDT
Other Parts Discussed in Thread: TM4C1294NCPDT

Hi, I am using a Custom board with microcontroller tm4c1294ncpdt. The custom board has uart0 to rs232 converter chip, the output of which is 115200 baudrate data. The output is connected to external rs232 to usb converter connected to PC. But when I Flash simple program like Uart_echo from example programs, i get junk values as the output. Plz help me with this issue.

int
main(void)
{
    //
    // Run from the PLL at 120 MHz.
    // Note: SYSCTL_CFG_VCO_240 is a new setting provided in TivaWare 2.2.x and
    // later to better reflect the actual VCO speed due to SYSCTL#22.
    //
    g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                                             SYSCTL_OSC_MAIN |
                                             SYSCTL_USE_PLL |
                                             SYSCTL_CFG_VCO_480), 120000000);
                                             
    //
    // Enable the GPIO port that is used for the on-board LED.
    //
    //MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);

    //
    // Enable the GPIO pins for the LED (PN0).
    //
    //MAP_GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);

    //
    // Enable the peripherals used by this example.
    //
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

    //
    // Enable processor interrupts.
    //
    MAP_IntMasterEnable();

    //
    // Set GPIO A0 and A1 as UART pins.
    //
    MAP_GPIOPinConfigure(GPIO_PA0_U0RX);
    MAP_GPIOPinConfigure(GPIO_PA1_U0TX);
    MAP_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

    //
    // Configure the UART for 115,200, 8-N-1 operation.
    //
    MAP_UARTConfigSetExpClk(UART0_BASE, g_ui32SysClock, 115200,
                            (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                             UART_CONFIG_PAR_NONE));

    //
    // Enable the UART interrupt.
    //
    MAP_IntEnable(INT_UART0);
    MAP_UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);

    //
    // Prompt for text to be entered.
    //
    UARTSend((uint8_t *)"\033[2JEnter text: ", 16);

    //
    // Loop forever echoing data through the UART.
    //
    while(1)
    {
        UARTSend("V ", 2);
        SysCtlDelay(8000000);
        SysCtlDelay(8000000);
        SysCtlDelay(8000000);
        SysCtlDelay(8000000);
    }
}

  • Hi,

      The most likely reason is that your PC terminal is not configured with the same baudrate or number of stop bits and parity. Please check your PC terminal setting. They must match the MCU. In your MCU configuration, the UART0 is configured for 115200 baud, one stop bit and no parity bit. Check your PC side setting if they are identical for the same configuration.

      A scope capture will be very helpful to know if the MCU is outputting the correct character.

  • khaleel j said:
    Hi, I am using a Custom board with microcontroller tm4c1294ncpdt.

    As well as the advice from Charles, do you a 25MHz crystal on the custom board as specified in the call to MAP_SysCtlClockFreqSet(), or a different frequency?