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

Firmware board configuration for nRF52833 QFN40 (QDAA) design

Hi there,

I am developing a product using the nRF52833 QFN40 package (nrf52833_qdaa), and have the nRF52833DK for testing which uses aQFN-73 package (nrf52833_qiaa). I am looking to clarify a few things about how to build the firmware for this target. I have put some further background information underneath. My queries are;

  • I understand I need modified /board/ & device tree files for my custom PCB. I plan to copy /board/arm/nRF52833dk_nrf52833/ etc and modify (unless there is a better one to start from). Which parts are essential to the functioning, and which parts should I change? Can I just change instances of "CONFIG_SOC_NRF52833_QIAA" to "CONFIG_SOC_NRF52833_QDAA"? Do the device tree files need wholesale changing for the changed pinout of the QFN40 version? Do I need the arduino sections in the .dts file if I'm not using arduino layouts? I'm not sure if some of the firmware calls normally used use arduino under-the-hood. + Any other pointers for this use case. I following this webinar which was really helpful, but still a few things to do with this particular case which are unclear https://www.youtube.com/watch?v=KSivO9Cf1TE
  • I see a nordic/nrf52833_qiaa.dtsi (for the aQFN-70 package) which is referenced by the nRF52833dk dts file, but there is no corresponding nordic/nrf52833_qdaa.dtsi (for QFN40). Does this exist somewhere? Or can I just copy this aQFN73 one and slightly modify (I believe stack/heap are the same so the file should be very similar)?
  • I need to set up my custom board to use REG0 and REG1 in LDO mode only, and with VDD set at 3.3V, how do I do this? In the Kconfig file I see the code below. Is changing this to 'n' and the board name to my new name suffcient? How is the LDO output voltage set, and are there any other steps.

config BOARD_ENABLE_DCDC
	bool "Enable DCDC mode"
	select SOC_DCDC_NRF52X
	default y
	depends on BOARD_NRF52833DK_NRF52833

More background Info;

The firmware project was initially developed for Zephyr-only, on an nRF52840dk. This was then migrated to using Zephyr as part of nRF Connect SDK, and moved to the nRF52833dk board. From this dk I will migrate to our custom PCB, which we have developed for the nRF52833 QFN40 version, so I am looking to set up a build configuration for this.

I am using Windows 10 Pro 64-bit, with nRF Connect SDK v1.4.0 (Zephyr 2.4.0), together with Visual Studio Code, West command line build/flash, a Jlink and SWD programming. The application uses Bluetooth Mesh (with a view to using the long-range feature), and needs I2C communications, 3 PWM outputs, and NFC. It is also powered from VDDH=5V if that affects anything. No USB parts or 32kHz crystal.

Thanks for your help!

Kevin

Parents
  • Hi Kevin

    We have a getting started tutorial that you might have seen already which is touching on this.

    I will look into the details you provided and get back to you after the weekend.

    Best regards,

    Håkon

  • Thanks Hakon, yes I have seen that, and slowly getting more familiar. I have got it working to a basic level now and worked out some of the things in my original question.

    Your help on how to manage the different package (both the CONFIG_SOC_NRF52833_QIAA and the nordic/nrf52833_qiaa.dtsi file) would be much appreciated as I can't see anything online about this or any existing files for this package variant.

    The other part which would be good to get your input on, is if the 'arduino_' parts can be removed. This may be more obvious to someone in the know, but I can't find much written on this specifically. I don't think I use anything arduino related, but wasn't sure if these are used under the hood, or are common in sample code which I might copy.

    The final part is related to setting up REG0 for 3V3 use. So far I have added the two commands below to the 'customboard_nrf52833_defconfig' files to configure for our PCB.

    # No LF XTAL on PT118A board, so use internal 32.768kHz RC oscillator
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
    
    # No DCDC inductor on PT118A board, so disable (use LDOs)
    CONFIG_BOARD_ENABLE_DCDC=n

    Do these look like the correct way to do these changes, and how best to set REG0 to 3V3? I found the board_nrf52833dongle_nrf52833_init() function in this board file https://github.com/nrfconnect/sdk-nrf/blob/master/boards/arm/nrf52833dongle_nrf52833/board.c , but thought there must be a simpler way! Is there a CONFIG_ setting for this?

    Thanks for all your help.

    Kevin

  • Thank you for the update and new questions. I will look into this as well.

Reply Children
Related