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.

CC2640R2F-Q1: CC26xx UART comm

Part Number: CC2640R2F-Q1
Other Parts Discussed in Thread: CC2640R2F

Hi,

We just want to confirm if there is no errata as such related to the UART communication.
As per the errata sheet we presume CC2640R2F-Q1 don't have any issues related to UART.

Our application has main MCU connected to CC26xx through UART and we are concerned what if
the UART communications hangs in between after releasing product to the market. Can we assume if there is any issue with the UART,
the communication could be regained by resetting the UART peripheral?

Best Regards
paddu

  • If there is known issues with the UART, these will documented in the errata. Since there are no issues in the errata, it means that there are not any known issues.
    There is no way that we can tell you how potential issues, that we are not aware of yet, will be fixed.
  • Hi,

    I have worked with CC2640R2F and SDK v1.40 to develop a product that uses UART. Here is what I found out below.

    - After using UART then you call Uart_close(). The UART port is still open and will consume current. You will not be able to achieve standby and shutdown current. To effectively close the UART port you need to re-initialize the UART and then call Uart_close().

    -kel
  • It is not necessary to do any reconfiguration to achieve the standby current consumption, but you must be sure that the BoardGpioInitTable table in CC2640R2_LAUNCHXL.c is set up according to how you want your DIOS to be configures when not controlled by the driver.

    I took the uartecho example from simplelink_cc2640r2_sdk_1_50_00_58 and did some modification to the code, to verify standby current when doing a UART_close.

    My code is below:

    void *mainThread(void *arg0)
    {
        char        input;
        const char  echoPrompt[] = "Echoing characters:\r\n";
        UART_Handle uart;
        UART_Params uartParams;
    
        /* Call driver init functions */
        GPIO_init();
        UART_init();
        
        /* Turn on user LED */
        GPIO_write(Board_GPIO_LED0, Board_GPIO_LED_ON);
    
        /* Create a UART with data processing off. */
        UART_Params_init(&uartParams);
        uartParams.writeDataMode = UART_DATA_BINARY;
        uartParams.readDataMode = UART_DATA_BINARY;
        uartParams.readReturnMode = UART_RETURN_FULL;
        uartParams.readEcho = UART_ECHO_OFF;
        uartParams.baudRate = 115200;
    
        uart = UART_open(Board_UART0, &uartParams);
    
        if (uart == NULL)
        {
            /* UART_open() failed */
            while (1);
        }
    
        UART_write(uart, echoPrompt, sizeof(echoPrompt));
    
        /* Loop forever echoing */
        while (1)
        {
            for(uint8_t i = 0; i < 100; i++)
            {
                UART_write(uart, &input, 1);
            }
            UART_close(uart);
            sleep(10);
            uart = UART_open(Board_UART0, &uartParams); 
        }
    }

    in addition I turned off the external flash as this will draw extra current:

    int main(void)
    {
        pthread_t           thread;
        pthread_attr_t      attrs;
        struct sched_param  priParam;
        int                 retc;
        int                 detachState;
    
        /* Call driver init functions */
        Board_initGeneral();
        
        Board_shutDownExtFlash();

    As you can see from the plot I measure just above 1 uA in standby:

    Siri

  • Great, then there probably is no more UART issue at SDK v1.50.

    Here I posted the issue below dated August 2017 and still no resolution. I struggled with our product high current consumption for several months and later on found out to be the UART. Our UART was configured to be repeated read callback. If this issue was resolved was there any mention at Errata?

    e2e.ti.com/.../2285390

    -kel
  • I tested with 1_40 as well, and did not too high current consumption there either.

    The two SDKs uses different Core SDK versions  and the bug fixes done from one version to the other is documented in the

    <INSTALL_DIR>:/ti/simplelink_cc2640r2_sdk_1_50_00_58/docs/simplelink_mcu_sdk/release_notes_coresdk_cc13xx_cc26xx_3_30_03_00.html#whats-new

    Only HW bugs are documented in the errata note.

    Are you testing on our HW or your own HW? I recommend that you do some testing with the same code as I used, to verify that you can get the correct current consumption then. If you still have problems, the issues must be related to your application.

    siri

  • Hi Siri,

    No, try it using Simple Peripheral. Add the UART to Simple Peripheral. Do some UART transactions then call Uart_close(). After that disable advertisement. That will go to standby mode. Another is call the code that will force the app to Standby Mode. I have verified this using CC2640R2F Launchpad and custom CC2640R2F board.

    I have already deployed the product with the fix I did. As I have replied earlier the post dated August 2017 is unresolved up to now. Anyway, since I am already moved on with that product. Let us mark this post as resolved.

    e2e.ti.com/.../2285390

    -kel