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

Bootloader startup issue about power

Hi

  1. I have custom board with nrf52832. I have lion batery and 3.3V ldo for powering device. I attached shematic.
  2. For preventing lion battery decreasing below 3V, i used a 3.1V voltage detector ic. This detector (STM1061N31WX6F) makes LDO enable pin logic low so everything stops. Here i have 1Mohm pullup resisor.
  3. Detector ic disable ldo 3.1V and re eanble 3.3V. If i load bottloader code detector ic still working same but nrf52832 hangs. Everything is fine without adding bootloader code.
  4. I dont have problem loading apk over mobile with dfu, its ok.
  5. I have 50 circuits for preproduction. I have 50 product.
  6. When i  load softdevice and load "bootloader_secure_ble". I can see DFU_Targ with mobile but when i click no service appear.
  7. When i rise batery voltage starts working, I can see services. But this happen with different batery voltages with different products.  One 4V, another 3.8V, another 4.3V.  But start to see 3.3V ldo output with battery voltage 3.3V.
  8. I short pullup resistor of LDO enable, load apk over mobile device and leave shorting pullup (1Mohms), device hangs. Nothing advertise.
  9. My apk is modified "ble_app_uart ". I add pwm, adc, low power mode and some other things. They all fine.

Its something very strange but i cant find what differs with starting device with "ble_app_uart " or with "bootloader_secure_ble".

Is there any difference for Power on Reset of DC DC conveter or do you have any idea.

Thanks

FerhatShematic

Parents Reply Children
  • I already checked.

    I can toggle pins with "bootloader_secure_ble" main.c     You can see code block below.

    Pin 14 ligth my blink Led. And its ligthing.

    Pin 16 DFU starting button. I tried jump apk at start by pushing button but coulndt.

    int main(void)
    {
        uint32_t ret_val;

        //nrf_gpio_pin_dir_set(16,NRF_GPIO_PIN_DIR_INPUT);           //
        //if (nrf_gpio_pin_read(16) == 1) nrf_bootloader_app_start(MAIN_APPLICATION_START_ADDR);
        
        nrf_gpio_pin_dir_set(3,NRF_GPIO_PIN_DIR_OUTPUT);           // Pwm Outputs
        nrf_gpio_pin_write(3,0);                                   //
        nrf_gpio_pin_dir_set(4,NRF_GPIO_PIN_DIR_OUTPUT);           // Pwm Outputs
        nrf_gpio_pin_write(4,0);   
        
        nrf_gpio_pin_dir_set(14,NRF_GPIO_PIN_DIR_OUTPUT);           //Blink Led
        nrf_gpio_pin_write(14,1); //
        
        (void) NRF_LOG_INIT(NULL);

        NRF_LOG_INFO("Inside main\r\n");


        //leds_init();
        buttons_init();

        ret_val = nrf_bootloader_init();
        APP_ERROR_CHECK(ret_val);

        // Either there was no DFU functionality enabled in this project or the DFU module detected
        // no ongoing DFU operation and found a valid main application.
        // Boot the main application.
        nrf_bootloader_app_start(MAIN_APPLICATION_START_ADDR);

        // Should never be reached.
        NRF_LOG_INFO("After main\r\n");
    }

  • I am not sure what the problem is here. There is nothing in the nRF52832 that prevent it to work at 1.8V, 2.5V, 3.3V or other voltage within the operating conditions for that matter. If you have UART or similar connected, then it may be that you are feeding supply voltage through a input GPIO (e.g. RTS or RXD pins), if the input pin exceed VDD. Not sure if that is the case here, but something you may try to check. Does you application work on a devkit?

    BEst regards,
    Kenneth

Related