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

Porting App from PCA10056 to PCA10059

Hi to all,

i had developed an app for PCA10056 and now i want port it on PCA10059, there is any guide or white paper that indicate how can i done that??

i read in the froum that changing PCA10056 to PCA10059 in preprocessor defines may help but it dose not work for me.

thanks

Parents Reply Children
  • Hi, thanks for your response and excuse me for the delay

    i read the guide that you indicated, but it dose not help and the problem is still exist. as the guide indicated i changed PCA10056 to PCA10059 in preprocessor defines but it dose not work and i do not have any idea to how can i solve that.

    thanks

  • Have you based your app on one of the 52840 pca10056 nRF5 SDK examples? If you are using the LED on the 52840 dongle, this could be related to a UICR issue which does not set the GPIO output voltage to 3.0 Volts. See e.g. the gpio_output_voltage_setup() example defined in the ble_app_blinky example pca10056 example from SDK v15.2.0:

    #if defined(BOARD_PCA10059)
    /**
     * Function for configuring UICR_REGOUT0 register
     * to set GPIO output voltage to 3.0V.
     */
    static void gpio_output_voltage_setup(void)
    {
        // Configure UICR_REGOUT0 register only if it is set to default value.
        if ((NRF_UICR->REGOUT0 & UICR_REGOUT0_VOUT_Msk) ==
            (UICR_REGOUT0_VOUT_DEFAULT << UICR_REGOUT0_VOUT_Pos))
        {
            NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
    
            NRF_UICR->REGOUT0 = (NRF_UICR->REGOUT0 & ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
                                (UICR_REGOUT0_VOUT_3V0 << UICR_REGOUT0_VOUT_Pos);
    
            NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;
            while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
    
            // System reset is needed to update UICR registers.
            NVIC_SystemReset();
        }
    }
    #endif

    It may also be related to this code in the bsp_board_leds_init():

        #if defined(BOARD_PCA10059)
        // If nRF52 USB Dongle is powered from USB (high voltage mode),
        // GPIO output voltage is set to 1.8 V by default, which is not
        // enough to turn on green and blue LEDs. Therefore, GPIO voltage
        // needs to be increased to 3.0 V by configuring the UICR register.
        if (NRF_POWER->MAINREGSTATUS &
           (POWER_MAINREGSTATUS_MAINREGSTATUS_High << POWER_MAINREGSTATUS_MAINREGSTATUS_Pos))
        {
            gpio_output_voltage_setup();
        }
        #endif

    I am assuming you have checked that your app for the 52840 pca10056 DK worked on the 52840 DK before you ported to the 52840 dongle, correct?

Related