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.

LP-EM-CC1354P10: ZDSECMGR_TC_DEVICE_MAX upper limit

Part Number: LP-EM-CC1354P10
Other Parts Discussed in Thread: CC2674P10, CC2652P, Z-STACK, CC1354P10

Tool/software:

I have found on CC2674P10 that there seems to be a limit on maximum number of devices I can set:

#define ZDSECMGR_TC_DEVICE_MAX 100

Any value greater than this will cause the network formation to fail silently and as a result NIB is never set.

Traditionally Zigbee2MQTT firmware have set this to 200 on CC2652P and 300 on CC1652P7, without any issues. However I just can't get these values to work on CC2674P10.


It has occured to me that maybe running out of space in NVOCMP. I have attempted to increase the size of NVPAGES, bit this is valid or actually working?

/* The starting address of the application.  Normally the interrupt vectors  */
/* must be located at the beginning of the application.                      */
#define FLASH_PAGE_SIZE		0x2000
#define FLASH_BASE              0x0
#define FLASH_SIZE              (0x100000 - (NVOCMP_NVPAGES * FLASH_PAGE_SIZE))
#define FLASH_NV_BASE           (0x100000 - (NVOCMP_NVPAGES * FLASH_PAGE_SIZE))
#define FLASH_NV_SIZE           (NVOCMP_NVPAGES * FLASH_PAGE_SIZE)

Is it possible to override this like that? or are the NVPAGES still limited to 0x800 (2KB) regardless?

  • Hi Tim,

    It is possible to increase the Z-Stack NV memory on CC13x4 / CC26x4 devices. Please see this information in the Z-Stack User's Guide on Modifying Non-Volatile Memory Allocations.  Since this guide was written for the CC13x2 / CC26x2 devices, there are differences that must be considered.  Here is an example to double the NV memory (10 flash pages):

    • cc13x4_cc26x4_tirtos_ticlang.cmd:
      • #define NVOCMP_NVPAGES 10
      • Do not change FLASH_PAGE_SIZE, it should remain 0x800 (specific page size of CC13x4 / CC26x4 devices)
    • *.syscfg -> NVS -> CONFIG_NVSINTERNAL:
      • Region Base 0xFB000
      • Region Size 0x5000
    • Optional: remove NVOCMP_NVPAGES=2 from the Project Properties -> CCS Build -> Arm Linker -> Advanced Options -> Command File Preprocessing (this is for CC13x2 / CC26x2 command linker files and may create a build warning but should not interfere with the hard definition inside of cc13x4_cc26x4_tirtos_ticlang.cmd).

    The number of NV pages can be modified to meet your needs.  You can view the output allocations in the generated default/*.map file:

    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      FLASH                 00000000   000fb000  00036bb3  000c444d  R  X
      FLASH_NV              000fb000   00005000  00005000  00000000  RW X
      GPRAM                 11000000   00002000  00000000  00002000  RW X
      SRAM                  20000000   00040000  0000bc7d  00034383  RW X
      CCFG                  50000000   00000800  0000007c  00000784  RW  
      LOG_DATA              90000000   00040000  00000000  00040000  R   

    Regards,
    Ryan

  • Optional: remove NVOCMP_NVPAGES=2 from the Project Properties -> CCS Build -> Arm Linker -> Advanced Options -> Command File Preprocessing (this is for CC13x2 / CC26x2 command linker files and may create a build warning but should not interfere with the hard definition inside of cc13x4_cc26x4_tirtos_ticlang.cmd).

    Thanks for the tip. The very first thing I tried was increasing the number of pages, but got thrown off by the message saying there was a limit of 6 pages.

    Anyway this has helped and I can now get to ZDSECMGR_TC_DEVICE_MAX=200, but have been unable to go any larger than this even with 15 NVPAGES, causes random issues with memory errors or timeout errors.

  • What are the changes relevant to HEAP sizes on CC2674?

    I notice there is HEAPSIZE set inside cc13x4_cc26x4_tirtos_ticlang.cmd
    along with the usual HEAPMGR_SIZE.
    And both regons appear to be distinct memory regions?

  • I don't have too much information on HEAPSIZE allocation for CC13X4 / CC26X4 devices, but given the amount of RAM memory on the CC1354P10 you should be able to generously increase both HEAPSIZE and HEAPMGR_SIZE without any consequences.  I recommend reviewing the built output *.map file for SRAM allocations.

    Keep in mind that there are physical limitations to the amount of devices which can communicate effectively on a network (i.e. too much traffic on a single channel) and to have an appropriate amount of space between devices as well as several routers to help decrease the amount of stress on any particular node within the Zigbee mesh network.

    Regards,
    Ryan

  • yes I am well aware of that, I am not increasing direct child limits so much!