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

External Programming of a BL651 dev board using nRF52 DK

Hi,

I have recently developed a simple custom board with the use of the BL651 module to have a dev board for myself. Although the schematic diagram is simple and the PCB does not have any issues of incorrect soldering, I was not able to detect the BL651 module over the nrf52 DK using either P20 or P19 headers.

I have already gone through most of the previous posts with issues of programming externally with the nrf52 DK and if the connections are correct between the 2 boards, but I was still not succesful in detecting the nrf52810 of the BL651.

As such I checked the signals from the SWD IO and SWD CLKfrom the nrf52 DK and was not able to detect any changes in the voltage levels using an oscilloscope. For reference, here is the schematic I designed maybe there is something I missed.

Note that this is m first time using the Nordic Enviroment, where I am using the Segger EMbedded Studio for development and the nRF Connect, nRF GO Studio and the nrfjprog commands to try and detect the custom device.

Do you have any suggestion as to why I am not able to detect the BL651 IC and why does the nRF52 DK does not output any signals on the SWD IO and SWD CLK, as I have been stuck on this problem for 2 weeks as of now.

Thank you.

Parents Reply Children
  • Hi, 

    Braino said:
    I tested it using simple LED and Bluetooth projects however none of them worked, but instead where being uploaded to the onboard nRF52832 IC of the dev kit.

    I see. It is perhaps a stupid question, but since I don't see any issue in the setup, can you just verify that GND detect is properly shorted to GND? That is how the onboard debugger decides if it should interface the onboard nRF or use the debut out port.

    Braino said:
    I also tried to get the respective information on the SWD interface using nrfjprog -i command, from which I understood that it should retrieve all the connected devices over the SWD interface.

    That is not the case. nrfjprog -i will print the ID of all connected Segger J-Link debuggers. So you will see the same ID regardless of which nRF52 chip the debugger is interfacing.

    Braino said:
    Are there further tests that I may be able to do to validate the connection?

    You could read out the value of a register that is unique for each chip, for instance, DEVICEID. As long as the value is the same you know you are debugging the same chip. If it differs, then you know you are debugging a different chip. Use for instance "nrfjprog.exe --memrd 0x10000060 --n 8".

    Braino said:
    What I was confused of was the definitions for the RAM and flash size parameters in SES when converting from PCA10040 to nRF52810 (BL651). Would you be able to provide a more in depth configuration procedure, maybe I have a missing step?

    If you are only adapting an existing example to a different chip, then the only linker related change is to adjust FLASH_SIZE and RAM_SIZE to reflect the new sizes (the sum of start address and size must not be larger than the physical flash). (If you are using a bootloader etc. that complicates a bit since you need to make room for that as well). See the image below for wher you configure this in SES.

    This is not related to the original question in this thread in itself, so I suggest you create a new question if you need to look more into this later.

  • Hi,

    Thank you for the quick response. Using the command you proposed I was able to retrieve the different device IDs of the 2 custom board I soldered. The issue was that I was using the wrong set of commands to validate the connections. The respective result is show below, where A01CA2C3 ... is from the dev kit, where as the other 2 are the custom boards.

    So from the point of connecting to the modules I am assuming it was successful since I obtained 3 different IDs. As such the remaining point which I need to revisit is why it is not successfully program, and from the last point you mentioned that I would need to take care of any internal boot-loader, where the BL651 modules do not advert any form of pre-configured loader.

    As you suggested, if I do not manage I will create a new thread for that and mark this as answered.

    Thank you for your time,
    Cheers Braino

Related