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

UART DFU for nRF52833

HW setup is my boart connected to a windows10 PC with an uart link.

I tried secure_bootloader_pca10100_uart_ses_nRF5SDKThreadv4.1.0.zip example, with some modification for my board, es UART pins in custom_board.h

#define RX_PIN_NUMBER 7
#define TX_PIN_NUMBER 6
//#define TX_PIN_NUMBER 35
#define CTS_PIN_NUMBER 8
#define RTS_PIN_NUMBER 40
#define HWFC true

To validate uart pins changes I tested the uart example in examples\peripheral\uart\pca10100\blank\ses and it works fine both without HW flow control and with HW flow control.

When I send 

nrfutil dfu serial -pkg blinky_pca10100_mbr.zip -p COM5 -b 115200

it seems all freezed: RTS signal from PC goes low, but nRF52833 RTS pin remains high. If I force low that signal PC starts transmitting.

A second question

The DFU example uses (in sdk_config.h) Button for entering DFU mode and set NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN to 25: in my board I cannot access to that pin and I want to use PIN0.2.

I set in custom_board.h

#define BUTTON_4       2

and in sdk_config.h

#define NRF_BL_DFU_ENTER_METHOD_PINRESET 1

I add Enter DFU mode on pin reset

Is it correct ?

How can I debug the DFU example ?

Best Regards

Parents
  • Now  interface chip works !

    With PCA10100 board connected to PC with a usb cable on j2 connector, I programmed fw with MSD functionality, then I tried to use virtual com with nrfutil but it didn't work.

    All changes if I program the board with 

    nrfjprog -f NRF52 --sectorerase --program NORDIK_SDK_v4\examples\dfu\secure_bootloader\pca10100_uart\ses\Output\Release\Exe\secure_bootloader_uart_mbr_pca10100.hex --reset
    Now nrfutil is able to program the chip
    nrfutil dfu serial -pkg blinky_pca10100_mbr.zip -p COM6 -b 115200
      [####################################]  100%
    Device programmed.

    I want to perform another test with the PCA10100 board:

    move nRF52833 UART on other pins, using pins P1.01/02/03/04, and connect the UART to the PC with an external USB-UART serial bridge.

  • With nrfjprog I've programmed a DFU that uses an UART on P1 pins, and then dowloaded a program

    nrfutil dfu serial -pkg blinky_pca10100_mbr.zip -p COM5 -b 115200
    [####################################] 100%
    Device programmed.

    Three questions:

    1) PC UART waits 30 seconds before to lower RTS signal and start download, is it correct ?

    2) I tried to download heart_rate_demo.hex, 

    nrfutil dfu serial -pkg heart_rate_demo.zip -p COM5 -b 115200
    [####################################] 100%
    Device programmed.

    but the program seems not work because LED1 and LED3 are lit on the DK (the DK has bootloader mode active). 

    When I copy heart_rate_demo on the disk of interface MCU, the  heart_rate_demo works fine and the DK connects to the smartphone.

    What's wrong ?

    3) it is not clear for me the use of mbr: is it necessary include it with DFU bootloader ?

    Best Regards

  • Is the board reset when you press the reset button?

  • There is blinky firmware running: if I press reset button nothing happens, blinky continues to work.

    By the way, if I copy heart_rate_demo on the disk of interface MCU, the  heart_rate_demo seems not to works because the DK doesn't connect to the smartphone. The demo worked some days ago (see previous message), I'm following the readme instructions.

  • Please try to erase the chip, then re-program the FW with either the Programmer app in nRF Connect for Desktop, or nrfjprog.

  • For heart_rate_demo, the smartphone Bluetooth had a problem I suppose, because

    I tried

    nrfjprog -f NRF52 --chiperase --program ..\..\tools\heart_rate_demo\heart_rate_demo\heart_rate_demo.hex
    Parsing hex file.
    Erasing user available code and UICR flash areas.
    Applying system reset.
    Checking that the area to write is not protected.
    Programming device.

    and it is ok.

    About the other question, reset seems to have no effect while application firmware is running: with reset button is not possible to enter in bootloader mode.

    Best Regards

  • rcerati said:
    About the other question, reset seems to have no effect while application firmware is running: with reset button is not possible to enter in bootloader mode.

     Sounds like the pinreset is not working then. Please double check that the reset button on your board is connected to P0.18 and also read out UICR.PSELRESET[n] to verify that the register is set. E.g., nrfjprog --memrd 0x10001200.

Reply Children
Related