I have a rockboxed ClipZip feeding a Topping NX1. One that's obvious is that the capacity of the diminuitive 300mAh battery on the ClipZip is dwarfed by the one in the NX1, which lasts ages (the maker rates it at 100hrs of use, and that seems reasonable). One thing I'd like to do is set up my ClipZip so it draws as little power as possible, and I thought that a way of doing that would be to minimise the gain on the output stage. Looking throught the Rockbox code, it seems the ClipZip uses an
AMS3543 SoC, which includes a 2x40mW headphone amp.
Now, in general, the power drawn by an opamp is V
cc x I
ave(load) and I
ave(load) = V
ave(load) / R
load, so the power draw = V
cc x V
ave(load) /R
load. Decreasing the gain decreases V
ave(load) and should decrease power consumption linearly (within a certain range). Obviously, there are a lot of other components in the SoC that also draw power (not to mention the screen). I'm not sure of the actual value, but the input impedance of the NX1 is probably high enough that it draws very little power anyway. So this may all have a negligible effect, but I thought it was worth a try.
Looking at the Rockbox code (in firmware/drivers/audio/as3514.c) it seems that the output volume is divided into two components: the mixer/DAC input is scaled for very low volumes, and the headphone amp is used to set higher ones. I obviously want to ensure that the DAC is fed with a full-range signal, so the volume needs to be set above the threshold value. If I'm reading the code right, the 0x1b value in line 275 corresponds to -41.5dB. So if I set the volume above -40dB I should be safe and avoid introducing any digital scaling erros. Is that right?
Please let me know if there are any mistakes in my thinking here.