Jump to content

Orange PI One 1200 Mhz with low voltage?


jock

Recommended Posts

Hello all guys,

 

I tested my orange pi one and it is free from the overvoltage "defect" related to the CPU voltage regulator. The multimeter reports the expected 1.1 and 1.3 voltages.

 

I decided to do some tests to find the highest frequency it can run stable at its lowest voltage of 1.1 volts. I found something odd.

This is the dvfs table I'm using now:

[dvfs_table]
pmuic_type = 1
pmu_gpio0 = port:PL06<1><1><2><1>
pmu_level0 = 1100
pmu_level1 = 1100
extremity_freq = 1200000000
max_freq = 1200000000
min_freq = 648000000
LV_count = 2
LV1_freq = 1200000000
LV1_volt = 1100
LV2_freq = 648000000
LV2_volt = 1100

If you're skilled with script.fex, you'll notice that I locked the maximum voltage to 1.1 volts and frequency is free to switch between 648 Mhz and 1.2 Ghz.

Well, I tested both Armbian 5.05 and Openelec distros with these settings and the One runs fine, without locks or errors!

 

On armbian I run openssl speed test, which is great because it heats the CPU a lot and also gives some nice benchmark results, telling you if the thermal budget reduced the cores/speed:

openssl speed rsa -multi 4

For reference, my One with the dvfs table above was able to do 15.3 signs/s (4096 bit keys) which is an expected value considering that the RPi 2 does 12 signs/s.

 

Anyone noticed this behavior? It looks strange to me that such low voltage can run the One at maximum frequency.

Link to comment
Share on other sites

pmu_level0 = 1100
pmu_level1 = 1100

 

Based on my testing 3 months ago you could also try it with 

pmu_level0 = 100
pmu_level1 = 12000

and you'll end up with 1.3V at all clockspeeds above the lowest defined. The values you enter here are irrelevant since the real voltages are defined by 2 resistors (hardware). The only thing that matters is that just 2 states are defined and the 2 clockspeeds associated with it. So at 1200 MHz you should be able to measure 1.3V at the test point. Did you try that already?

Link to comment
Share on other sites

According to this http://linux-sunxi.org/Xunlong_Orange_Pi_One#CPU_clock_speed_limit the voltage level should be controlled by GPIO, and according to the following comment:

# pmu_levelx: 0~9999: voltage(mV), 10000~90000:gpio0 state. voltage form high to low.

pmu_level should be 5 decimals long, the first decimal controls the gpio state and the following four decimals define the reference voltage for the dvfs table.

 

Default pmu_levels on the one are:

pmu_level0 = 11300   # GPIO pin is set, hence 1.3v
pmu_level1 = 1100    # GPIO pin is not set, hence 1.1v

My deduction says that:

pmu_level0 = 11300  -> GPIO is set (first "1" = high voltage) and reference voltage for the dvfs table entries is 1300 mV

pmu_level1 = 1100   -> equals to 01100 (first "0" = low voltage) and reference voltage is 1100 mV

 

Using my dvfs table I'm not allowing the GPIO to be set, so the voltage is staying always low. I just forced the governor to performance @1.2 Ghz and measured the voltage on the One: it says 1.09v so I guess that my deduction is correct.

Link to comment
Share on other sites

Oops, you're right, almost forgot about the 1st bit I explained so often :)

 

Would be interesting if your setup survives the new cpuburn-a7 version and then cpufreq-ljt-stress-test running in parallel at 1200 MHz (no throttling involved!).

 

IIRC with 5.05 you can already use 'sudo armbianmonitor -r' to simply install RPi-Monitor which gives you a full monitoring solution not just watching for throttling but also the used throttling strategies (cooling state and so on)

Link to comment
Share on other sites

Oops, you're right, almost forgot about the 1st bit I explained so often :)

 

Would be interesting if your setup survives the new cpuburn-a7 version and then cpufreq-ljt-stress-test running in parallel at 1200 MHz (no throttling involved!).

 

IIRC with 5.05 you can already use 'sudo armbianmonitor -r' to simply install RPi-Monitor which gives you a full monitoring solution not just watching for throttling but also the used throttling strategies (cooling state and so on)

 

;)

I'll do the tests tomorrow as soon as I can. By the way the thingy survived "openssl speed -multi 4" which is much longer than the sole rsa test.

Link to comment
Share on other sites

Some tests shows that 5 minutes of cpuburn-a7 alone are able to push the H3 at 80°C. I have a "special" heatsink over it, and it is helping a lot, but there is no throttling and no downcoring.

This is the rpi-monitor graph of the session:

 

cpuburn-a7.png

 

 

Openssl speed -multi 4 instead doesn't go over 65°C after several minutes of benchmarking.

Link to comment
Share on other sites

Wow, based on my experiences the heatsink must really 'special' since with the cheap crap I always use it's necessary to use a fan too. Would be interesting if you're now also able to run cpufreq-ljt-stress-test in parallel without errors (and without throttling).

 

My OPi One was also able to do this on the lower voltage but back then with the older cpuburn-a7 version that was way less demanding than ssvb's new one. Can't test now since the board is in the mail shipping to another dev :)

Link to comment
Share on other sites

Well, actually it's not a real heatsink. It is an exhausted AA battery with some thermal paste applied on the cathode and placed on the H3 chip. It is pretty good for experiments and never gets so hot that it can explode.

Anyway I'll try some voltage tricks on the Orange PI PC I have laying around to see if it behaves the same as the One.

Link to comment
Share on other sites

Tested the Orange PI PC and it looks stable at 1.2 Ghz with 1.150 volts. At 1.120 volts it boots but it is unstable, so either the H3 part of my One is a bit better than the H3 part of my PC or the linear regulator of the One is feeding a more stable current to the CPU.

 

The H3 of the One reports a much higher temperature than the H3 of the PC, something like 15/20°C more. Testing conditions are almost the same, the PC has a slightly higher voltage (1.150v instead of 1.100v) but its temperature is way lower than the One, in fact I had to put a "heatsink" on the One to keep it cool.

Link to comment
Share on other sites

Since both temperatures are way higher on the One and you manage to do the impossible (stable operation at 1.1V with 1200MHz) I would suspect the real voltage H3 is fed with is higher.

 

I had the same 'issue' with my OPi One (both regarding temperatures and stability with insufficient VDD_CPUX) and would suspect that there's something wrong and the voltages we can measure on the test point doesn't really matter?

Link to comment
Share on other sites

I guess you're right. I checked the voltages against the 1V2S and the shielding of the TF card (I suppose it is grounded), and the voltage is 1.09v and 1.29v. Theorically this is correct, but the CPU idles at 53°C (1.09v) and 60°C (v1.29) at 480 Mhz, which is way higher than the PC, which idles at 30°C at 480 MHz (but at 0.980v)

 

I guess the test point doesn't report the correct CPU voltage. Instead the GPIO configuration bit works.

 

edit: I checked a bit the voltage regulator datasheet and tried to follow the circuit. I followed the LX pin of the AX3833, passed over the inductance, the two capacitors and finally I measured... 1.09 volts!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines