This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to find out nRF52 chip revision

Hello,

I am using multiple custom boards with ISP1507-AX modules from InsightSIP, based on the nRF52 chip. I want to verify the revision numbers of the nrf52 chips inside them. Is there a way to do this? I have tried nRFGo Studio, but the revision is not shown.

Thank you!

  • There is a set of FICR registers which indicate the manufacturing info for the device, which you can print out in your application. I use code like this:

    info = NRF_FICR->INFO.VARIANT;
    p = (uint8_t *)&info;
    printf ("Nordic Semiconductor nRF%x Variant: %c%c%c%c ",
    NRF_FICR->INFO.PART, p[3], p[2], p[1], p[0]);
    printf ("RAM: %dKB Flash: %dKB\r\n", NRF_FICR->INFO.RAM,
    NRF_FICR->INFO.FLASH);
    printf ("Device ID: %x%x\r\n", NRF_FICR->DEVICEID[0],
    NRF_FICR->DEVICEID[1]);

    The NRF_FICR.INFO registers are defined in the SDK headers like this:

    /**
    * @brief FICR_INFO [INFO] (Device info)
    */
    typedef struct {
    __IM uint32_t PART; /*!< (@ 0x00000000) Part code */
    __IM uint32_t VARIANT; /*!< (@ 0x00000004) Build code (hardware version and production configuration) */
    __IM uint32_t PACKAGE; /*!< (@ 0x00000008) Package option */
    __IM uint32_t RAM; /*!< (@ 0x0000000C) RAM variant */
    __IM uint32_t FLASH; /*!< (@ 0x00000010) Flash variant */
    __IOM uint32_t UNUSED8[3]; /*!< (@ 0x00000014) Unspecified */
    } FICR_INFO_Type; /*

    They should also be documented in the various nRF52 product specification documents.

    Does that help?

Related