fix: clamp overheat throttle to the regulator's minimum voltage (no more false PSU fault)#1790
Open
warioishere wants to merge 1 commit into
Open
Conversation
On VOUT_MIN=1.0V boards the overheat throttle could drop ASIC voltage to 980mV and persist it to NVS. TPS546_set_vout() rejects anything below VOUT_MIN as out of range, leaving the VR in a stuck power fault that survives reboots and PSU swaps. Floor the reduced voltage at the regulator minimum (device-aware, VOUT_MIN/voltage_domains).
49e18b3 to
a48c872
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ran into this the annoying way and figured it's worth fixing for everyone.
I always undervolt my Gammas and run it at 1080mV. Even undervoltet on this hot day today around 40°c here it overheated a few times, and the overheat protection did its job, dropped voltage and frequency by 100 each and saved them. So my 1080mV quietly turned into 980mV in NVS. Actually I didn't check this explicitly because I ran arround changing PSUs and already thought that my little bee died because of high temp because the error message about the PSU didn't go away.
but the hing is, the TPS546's
VOUT_MINis 1.0V. Below that,TPS546_set_vout()rejects the value as out of range, the regulator never comes up clean, and the firmware flags a power fault → the UI shouts "PSU fault, check your PSU". And since 980mV got written to NVS, it sticks across reboots. I swapped the PSU, power-cycled a bunch of times — nothing. The only thing that fixed it was going into settings and bumping the voltage back above 1000mV, at which point the fault vanished instantly.So it's not the PSU at all. It's the throttle undervolting below what the regulator can actually deliver, and then persisting it.
I've already had several emails about this exact "PSU fault", people convinced their supply died, a couple of them bought a new one, and of course it still didn't help. Hence the fix.
What it does: clamps the throttle's reduced voltage to the regulator's minimum so it can never command something
set_vout()will reject. Device-aware (VOUT_MIN / voltage_domains→ 1000mV on Gamma, ~834mV on Hex), no magic number. Frequency reduction still happens exactly as before, so cooling behaviour is unchanged — it just won't push the voltage into the invalid range anymore.