How to change the DC/DC REGOUT0 voltage in Zephyr project?

I only learned today that the REGOUT0 voltage is changeable, which could be perfect for us, because our power needs changed dramatically.

Our circuit was originally designed to take a 3.7V lithium-ion battery via VDDH, and with DCCH hooked up to VDD via a 10uH inductor, our goal was to get ~3V-3.3V from VDD to power our sensors in the circuit. However, we changed sensors, and they now use 1.8V instead of 3-3.3V.

What we didn't realize when building the circuit was that the VDD output was changeable. According to the datasheet, the REGOUT0 register dictates the power delivery anywhere from 1.8V to 3.3V, however, we NEVER changed this, I supposed we were just lucky that it happened to be the right voltage for us.

Here are our questions:

1. When hooked up in our configuration, is changing the VDD output voltage a hardware thing, or a software thing?

2. If the answer to question 1 is a software thing, can it be done easily in Zephyr project?

3. If the answer to question 2 is no, then how is it done?

4. Although we are using VDDH, VDD, DCCH and the DC/DC converter, I noticed that there's a DC/DC toggle in the nRF Kconfig menu, but it is forced off, although we are definitely using DC/DC. Why is this?

Parents
  • Hi,

    1. When hooked up in our configuration, is changing the VDD output voltage a hardware thing, or a software thing?

    It is a litle bith of both. The hardware determines if using high voltage mode or normal voltage mode (see Reference circuitry for details). REGOUT0 is only relevant in high-voltage mode. And the default configuration is 1.8 V. To get another voltage, you need to program REGOUT0 which is a presistent register in the UICR.

    2. If the answer to question 1 is a software thing, can it be done easily in Zephyr project?

    I suggest you do this in the same way that we do for the nRF52840 dongle in the hardware files for your board. What we do there, is include this board.c file, which is also added to the CMakeLists.txt for that board. here you have the board_nrf52840dongle_nrf52840_init() function that runs early in boot, and configures the REGOUT0 when it is not programmed before (on first boot).

    4. Although we are using VDDH, VDD, DCCH and the DC/DC converter, I noticed that there's a DC/DC toggle in the nRF Kconfig menu, but it is forced off, although we are definitely using DC/DC. Why is this?

    If you search for "DC/DC" you will find configs for other boards (Zephyr includes sopport for many non-nrf Boards). If you search for "DCDC" you should see the relevant configs for nRF devices which are CONFIG_BOARD_ENABLE_DCDC and CONFIG_BOARD_ENABLE_DCDC_HV.

  • Hi, Einar.

    I really want to look on how this is all set in the examples, but all the links are dead now. Could you please provide the new examples if possible?

  • Hi,

    The most important link is probably to board.c in the nRF52840 Dongle board files, which shows how REGOUT0 is set there. To be used, it also has to be added in the CMakeLists.txt for the board.

Reply Children
No Data
Related