CC3501E: Observation on UART Behavior

Part Number: CC3501E

Tool/software:

Hi Team

My customer is using CC3501ENJARSHR to build their own board.

And the board is now functioning normally. However, he observed an issue when both UART1 and UART0 are enabled simultaneously—the system crashes.

Details:

  • UART1: PIN41 & PIN42
  • UART0: PIN32 & PIN33

 

Config:

/* Create a UART where the default read and write mode is BLOCKING */

       UART2_Params_init(&uartParams);

     

       uartParams.baudRate = 420000;

 

       uart = UART2_open(CONFIG_UART2_0, &uartParams);

     

 

       if (uart == NULL)

       {

           /* UART2_open() failed */

           while (1) {}

       }

 

      

 

       /* Create a UART where the default read and write mode is BLOCKING */

             UART2_Params_init(&uartParams0);

            

             uartParams0.baudRate = 420000;

 

             uart0 = UART2_open(CONFIG_UART2_1, &uartParams0);

           

 

             if (uart0 == NULL)

             {

                 /* UART2_open() failed */

                 while (1) {}

             }

Please let us know if you need additional logs or testing details to help analyze this behavior.

Thank you for your support.

  • Hello, 

    Can we board revision and SDK version being used?

    Regards,

  • Hi Mike,

    I edited the network terminal example in such a way that both CONFIG_UART2_0 and CONFIG_UART2_1 would be initialized. CONFIG_UART2_0 using XDS110 hardware is typically initialized using InitTerm, which also has an osi_LockObjCreate(&LockObj); and maybe your customer can try using that line in case both UARTs are trying to access the same resource. I found a CONFIG_UART2_1 initialization function in uart_hci.c which I call so now I have both UARTs enabled. I could not change the baud rate for my experiment because my UART terminal does not support 420000 and I wanted to see if my device could print stuff out to the terminal.

    After running my program, my device does not crash. I am not explicitly using CONFIG_UART2_1 but it is enabled and open, and I was able to connect to an access point via the network terminal which uses CONFIG_UART2_0.

  • However, I do not see how that would be the fix for your issue even though that is something for you to try. I will see if there are additional details I can find.

  • So far, even with the changed baud rate (I have another serial terminal that is compatible with 420000), I am still not experiencing issues. Can you share your crash logs, as well as other code involved in your program?