Banana Pi BPI-M2+ V1.2 Board Improves Power Management

Orange Pi Development Boards

When people decided which development board to purchase for their project / use case(s), the often look at the processor, memory, storage, and the external ports, as well as I/Os. However, very few people look at the PMIC (Power Management IC) on the board, as it’s normally an afterthought.

Development boards can work without PMIC, instead relying on a single fixed voltage, and for many people that may be good enough, but for more demanding tasks it may lead to either lower performance or overheating issues.

Modern processor all rely on DVFS ( Dynamic Voltage and Frequency Scaling) in order to adjust both the voltage and frequency of the processor depending on the load. This is done to optimize power consumption and/or manage the power budget, and overheating may lead to CPU throttling, where the system lowers the frequency and/or operating voltage in  order to avoid damaging the processor.

Banana Pi M2 Plus V1.2

I’m writing about DVFS and PMIC today, because SinoVoIP first launched Banana Pi M2 Plus board without proper power management using a fixed supply voltage of 1.3V. Allwinner processors’ DVFS works at 1.1V and 1.3V, but since it was not possible on BPI M2 Plus board, overheating could easily happen. The company has now decided to upgrade their board with version 1.2 of Banana Pi M2 Plus PCB now adding proper support for SY8113BADC / RT7295A voltage regulators.

Banana Pi Power Management Unit (PMU) / Voltage RegulatorSo as we can see from the schematics above, CPUX-SET can be configured high or low to set the voltage to either 1.3V or 1.1V and DVFS should now work correctly, and overheating issues should now be more manageable. So if you ever need to buy a new Banana Pi M2+ board make sure it’s based on V1.2 PCB for optimal operation. It’s unclear when the new revision will start selling however.

Now, most Allwinner boards available on the market already come with a PMIC or PMU (Power Management Unit), so SinoVoIP has not done anything out of the ordinary, but at least they fixed their initial sub-optimal design. So checking whether a PMU/PMIC is indeed part of the design and properly implemented may be one of those small extra things you may consider while getting a board.

15
Leave a Reply

avatar
1 Comment threads
14 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
wensitchy n scratchyIcenowy Zhengcnxsofttkaiser Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
tkaiser
Guest
tkaiser

No, they did not add PMU support. It’s just them not caring about anything relevant and posting BS as usual.

Allwinner H series except H6 has no PMU support.

We’re talking here about primitive voltage regulation with H3 as every other board maker around does since the beginning (Xunlong and FriendlyELEC also implement more fine-grained control on their larger boards with an I2C accessible voltage regulator that allows adjustments in 20mV steps between below 1V and up to 1.4V).

Their older board revisions already used the primtive SY8113B voltage regulator, they simply ‘forgot’ to implement the switching between 1.1V and 1.3V. Since the older board revisions used a static 1.2V if the new board revision now comes up at 1.1V with the SY8113B unconfigured crashes/freezes might happen when booting with OS images existing today.

Details: https://forum.armbian.com/topic/971-quick-review-of-banana-pi-m2/?do=findComment&comment=57973

Icenowy Zheng
Guest
Icenowy Zheng

SY8113B is instead designed as a fixed regulator with adjustable voltage (via resistor value). Many DCDC chips are in this flavor.

Use it as a fixed regulator is very natural, but use it as adjustable regulator is not.

tkaiser
Guest
tkaiser

> Use it as a fixed regulator is very natural, but use it as adjustable regulator is not

Well, in Allwinner’s early H3 BSP this way of switching voltage was defined so I would assume it was part of reference design back then? Their BSP code even allowed to use 2 different pins to switch between 4 different voltages with such a primitive ‘PMIC’ as SY8113B. So in Allwinner world at least this mode was ‘natural’ a while ago (before they dropped support for voltage regulation at all in later BSP variants).

itchy n scratchy
Guest
itchy n scratchy

Would it in theory be possible pairing up an H3 with an AXP209, as this one is i2c?

tkaiser
Guest
tkaiser

Sure, but if there is no reference design provided by the SoC vendor (board makers usually copy 1:1) it won’t happen.

BTW: silly me forgot above that we should never trust in SinoVoip schematics. I forgot that their schematics for the 1.1 board revision were bogus (they wrote 1.2V while in reality all the v1.1 boards were forced to use 1.3V instead — it was the early v1.0 developer samples like mine who were fed even with 1.4V)

itchy n scratchy
Guest
itchy n scratchy

Lol yepp thus also the xradio… only guys like olimex would be able to do such really insane, out of this world, punk designs, combining two chips from different application circuits. How did this world survive before the Shenzhen time???

Icenowy Zheng
Guest
Icenowy Zheng

To be honest the only HW vendor I found that does PMIC change is Lichee Pi, however, it’s doing a complex->simple transition (from AXP to multiple fixed DCDCs, on Lichee Pi Zero with V3s, and V3s’ reference design is AXP203).

In fact, on the case of H3, BSP won’t have DVFS even if the AXP is added, because (at least sometimes) DVFS is done on ARISC, not main ARM CPU; and the ARISC code is closed.

wens
Guest
wens

You really need someone sensible with some background and also knowledge about the SoC and PMICs to design one. You then have to be able to get the PMICs separately. AFAIK they are bundled with the SoC.

itchy n scratchy
Guest
itchy n scratchy

Desingning electronics stuff once used to be a challenging thing the company I used to do my apprenticeship at used to have plenty of RnD departments, all of them nicely funded. They had experts for routing pcbs, emv and and and… nowadays you rely on an arduino to blink leds in the past you would have built multivibrators from transistors or relied on an NE555 or maybe a.pic or avr. Now a rpi or minimum an esp32 with cloud interconnect. Dont misunderstand me I love todays possibilities, but copy pasting is not what makes us great.

And wrt the bundles, im sure there are ways if your volumes are high enough, if not you can find some surplus junk on aliexpress, foryour garage soldered kickstarter… 😉

Icenowy Zheng
Guest
Icenowy Zheng

According to BU3 people, the DVFS code is just shared from H8.

Or maybe some early reference design uses switch, but I have some newer reference design schematics, and without DVS at all.