Programing an external board (nRF52833) using nRF52832 DEV KIT

Hi everyone! I'm programing an external board with the BLE chip of nRF52833 by connecting it to the debug input of nRF52832 DEV KIT as shown in the following image.

My question is related about configuration of the Preprocessor Definitions (right click to the project and choose Option to link to this session). The current configuration is with nRF52832 chip and BOARD_CUSTOM which is based on BOARD_PCA10040 as shown in the following image.

  1. Since the target board is nRF52833, do I need to update this session with nRF52833 as well as the board custom which is corresponding to this chip (BOARD_PCA10100)?
  2. With the current setup, I was able to program the external board. However, I'm not sure if the code is fully functional with the target board (nRF52833) or just for nRF52832?. From my understanding, if the code can run with nRF52832, it also can run with nRF52833. However, some functions like boosting TX_power wouldn't work because the nRF52832 only allows to boost to 4 dBm while the nRF52833 can be boosted up to 8 dBm.
  3. Could you please explain the role of nRF52 DEV KIT in this case? Is it just a vehicle to transfer the code to custom board?

Thanks,

Tai

  • Hi Tai,

    Since the target board is nRF52833, do I need to update this session with nRF52833 as well as the board custom which is corresponding to this chip (BOARD_PCA10100)?

    Yes. You need to update the definitions, and also replace some SoC specific files. In my opinion, the easiest way to do this is to open the segger embedded studio project file (.emProject) in a text editor, as there it is easier to search and replace (if you started with a nRF52832 project, search for 52832 and replace with 52833, etc.)

    With the current setup, I was able to program the external board. However, I'm not sure if the code is fully functional with the target board (nRF52833) or just for nRF52832?. From my understanding, if the code can run with nRF52832, it also can run with nRF52833. However, some functions like boosting TX_power wouldn't work because the nRF52832 only allows to boost to 4 dBm while the nRF52833 can be boosted up to 8 dBm.

    If you are using a DK as debugger, it could be dififcult to know. I normally double check with readign back the DEVICEID[0] register as that is unique for each device. First read it when you don't have the external board connected, and afterwards read it out when you have the external board connecrted. If you read the same number, something is wrong, and you are debugging/programmign the onloard nRF. If you read a different value, it is the external device.

    You can read it like this: nrfjprog --memrd 0x10000060

    Could you please explain the role of nRF52 DEV KIT in this case? Is it just a vehicle to transfer the code to custom board?

    Yes and no. When you connect an external board to the debug out connector, you debug/program the nRF on the external board instead of the onboard nRF. So this is then instead of using a dedicated debugger (like those you can buy from e.g. Segger).

Related