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 Reply Children
  • If you change the UICR, this code will be run before main(). The first time the code runs, the voltage configuration will change to 3V3 and the configuration is stored. From then on, every time you boot the IC, the voltage will already be configured and the condition of the if-statement is not met anymore. This method is already used by many of the system files in the MDK, such as when enabling pin reset by writing to the PSELRESET registers in the UICR: https://github.com/nrfconnect/sdk-hal_nordic/blob/master/nrfx/mdk/system_nrf52833.c#L136

    I have created an internal inquiry so that hopefully this could be a CONFIG_ in the future.

    Sorry for the long delays in this thread, I am still quite new at Nordic and I am learning as we go. I hope you get faster response from us the next time you have any questions.

Related