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.

UART pin mapping for CC2340R5

Other Parts Discussed in Thread: SYSCONFIG, CC2340R5, UNIFLASH

Hi,

My product only uses UART to connect to CC2340.

How to set up can be consistent?

Bootloader mode: UART Dio6 and Dio20

host_test application: UART Dio20 and Dio22 

Currently the CCS setting 'Use Hardware' cannot be changed

Thanks,

Aries

  • Hi Aries,

    Thank you for reaching out.

    Generally speaking you have two options: either you reconfigure the host_test code to use other pins for the UART, or you modify the CCFG configuration.

    Option 1: reconfigure the host_test code to use other pins for the UART. To doi so, open the CCS project and follow the steps:

    • Verify in NPI/Transport/UART/npi_tl_uart.c the UART instance used by the NPI (should be CONFIG_DISPLAY_UART)
    • Open the .syscfg file.
    • Click on UART2
    • Check the configuration for the UART instance used by the NPI (CONFIG_DISPLAY_UART in our case).
    • Open the menu "PinMux" and try to modify the pin used.
    • It is likely the configuration is actually blocked by something else  (here, the Display driver)
    • So open what is blocking (i.e. Display) and change its configuration "Use Hardware" to "None"
    • You can then go back to UART2 and modify the configuration

      A warning may be raised but can be discarded for evaluation.
    • Last but not least, I have noticed the UART interface has been renamed in the process (might be a mistake from my end as I only reproduced once). In that case, you'll have to revert the name to its initial name (i.e. CONFIG_DISPLAY_UART)

    Option 2: modify CCFG configuration so you use the same UART pins as host test.

    • Looking at the following image, the configuration #2 should correspond to the configuration you want
    • The CCFG configuration can be set in the SysConfig file:

    I hope this will help,

    Best regards,

  • Hi Clément,

    Thank you for your reply, this problem has been solved.   ^_^

    I have a confusion about the hardware layout.

    Use FCFG case: If the flash is empty or the CCFG is damaged, the user needs to upgrade the image.

    Use CCFG case: Trigger bootloader  backdoor.

    Do you suggest the layout of my product, set UART on DIO6/20 pin?

    Do you suggest the User application, set UART on DIO6/20 pin?

    Thanks,

    Aries

  • Hi Clément,

    I'm confused by FCFG, CFG and UART mapping.

    I think there is something wrong with the UART setting of bootloader mode.
    Because I did the following experiments and found that

    Case2: What is the UART setting in FCFG?

    Case4: How many values should be set for Serial IO Configuration Index?

    How to trigger into the bootloader backdoor??

    My guess should have entered the bootloader mode, but the UART has changed to other settings.

    Thanks,

    Aries

    ==================================================

    Case1:

    Use XDS110+CC2340R5 board
    1. Execute chip erase on uniFlash tools.  At this time, the trigger backdoor should not be needed.

    2. Reset EVM board and send 2 bytes with value 0x55 using Teraterm but no data received. 

    Case2:

    1. Execute chip erase on uniFlash tools.  At this time, the trigger backdoor should not be needed.

    2.

         XDS110 (TXD)  <----> (DIO20) CC2340R5

         XDS110 (RXD)  <----> (DIO6) CC2340R5

    3. reset CC2340R5 board and send 0x55 0x55 using Teraterm and 0x00 0xCC received. 

    Case3:

    Use XDS110+CC2340R5 board

    1. Reconfigure the host_test code 

    2. Trigger Dio24 active low and reset XDS110 board and send 0x55 0x55 using Teraterm and 0x00 0xCC received.

    Case4: If the hardware wants to change to CC2340 TX:DIO6  RX:DIO22  Backdoor:DIO24

         XDS110 (TXD)  <----> (DIO22) CC2340R5

         XDS110 (RXD)  <----> (DIO6) CC2340R5

    1. Reconfigure the host_test code 

    How many values should be set for Serial IO Configuration Index?????

    2. Btool can set CC2340R5 through UART.

    3. Trigger Dio24 active low and reset CC2340R5 board and send 0x55 0x55 using Teraterm but no data received. 

  • Hi,

    Thank you for your patience.

    I am currently consulting various experts to answer your question.

    At the moment, we have identified some misalignment between the documentation and the functioning of the device.

    Please give us until Monday to answer.

    Best regards,

  • Hi,

    It turned out the CC2340R5 RKP (5x5 package) pre-silicon material is configured slightly differently than it should. This will be fixed on the production-ready silicon.

    - on CC2340R5 RKP pre-silicon material, DIO20/DIO6 are configured as serial bootloader UART pins 

    - on CC2340R5 RKP production-ready material, DIO22/DIO20 will be configured as serial bootloader UART pins 

    At the moment, for evaluation purposes, we recommend to either

    • use the default pins (DIO20/DIO6) – while remembering these will change with the production-ready material
    • pre-flash a valid CCFG to reconfigure the device to use DIO22/DIO20. With the production-ready material, pre-flash the CCFG will not be required anymore.

     I hope this will help,

    Best regards,

  • Hi Clément,

    Thank you very much for your detailed reply....   ^_^

    But there was a previous question that was still unanswered.

    Case4: If the hardware wants to change to CC2340 TX:DIO6  RX:DIO22  Backdoor:DIO24

    (Because my product are currently wired in this way. The next version will be changed to default pin in the future)

         XDS110 (TXD)  <----> (DIO22) CC2340R5

         XDS110 (RXD)  <----> (DIO6) CC2340R5

    1. Reconfigure the host_test code 

    How many values should be set for Serial IO Configuration Index?????

    2. Btool can set CC2340R5 through UART.

    3. Trigger Dio24 active low and reset CC2340R5 board and send 0x55 0x55 using Teraterm but no data received

    4. Reconnect : XDS110 (TXD)  <----> (DIO20) CC2340R5

        Trigger Dio24 active low and reset CC2340R5 board and send 0x55 0x55 using Teraterm and 0x00 0xCC received. ??!!!

    My guess should have entered the bootloader mode, but the UART pin has changed to FCFG settings.

    (My setup Serial IO Configuration Index = 0)

    Thanks,

    Aries

  • Hi,

    If the hardware wants to change to CC2340 TX:DIO6  RX:DIO22  Backdoor:DIO24

    I am afraid this is not a possible configuration for the ROM bootloader.

    May I kindly ask if there may be a typo? One possible configuration is TX:DIO6  RX:DIO20  Backdoor:DIO24

    For information, the configuration TX:DIO6  RX:DIO20 is the default configuration on CC2340R5 5x5 pre-silicon material. This configuration can also be selected by chosing the configuration 0 of the bootloader.

    If it helps, the other bootloader configurations possible are:

    • 0: RX:DIO20    TX:DIO6
    • 1: RX:DIO12   TX:DIO13
    • 2: RX:DIO22   TX:DIO20

    Best regards,

  • Hi Clément,

    Hardware wants to change to CC2340 TX:DIO6  RX:DIO22  Backdoor:DIO24

    Because it is difficult to pull the wires, so currently only these groups of wires can be pulled.

    My guess should have entered the bootloader mode, but the UART pin has changed to FCFG or default CCFG settings.

    Whether it is possible to program CCFG is to set a specific UART pin?

    Thanks,

    Aries

  • Hi Aries,

    Whether it is possible to program CCFG is to set a specific UART pin?

    I am afraid this is not possible.

    The three available settings have been mentioned before:

    • 0: RX:DIO20   TX:DIO6
    • 1: RX:DIO12   TX:DIO13
    • 2: RX:DIO22   TX:DIO20

    One option could be to consider rewriting the bootloader in Flash so you can use any of the UART configuration allowed by the device.

    Best regards,

  • Hi Clément,

    Thank you for the detailed reply.

    So, I don't know if my understanding is correct:

    Enter bootloader conditions: If CCFG exists and valid, it will check the (bootloader enable==true and trigger backdoor level) in CCFG.

    After entering the bootloader, it will follow the three available UART settings have been mentioned before:

    0: RX:DIO20 TX:DIO6
    1: RX:DIO12 TX:DIO13
    2: RX:DIO22 TX:DIO20

    If I rewrite the bootloader in flash, then I can use any UART configuration the device allows.

    Aries

  • Hi Aries,

    I confirm your understanding is correct.

    Regards,