@eas and it is 10 times more expensive
but interesting
@baruch
I think I got an idea what is going on with the current regulation:
Obviously there is a voltage
Vshunt at the shunt (5mV per 100mA). Lets assume this voltage is constant (R10 is 10k so this isn't too unreasonable).
so the voltage divider divides the voltage (
VCC-
Vshunt). With VCC=5V we get:
I Vshunt Vout to Vshunt
100mA 0,005V 0,0099700599V
1A 0,05V 0,0098802395V
This is a more or less constant 10mV. That way (Vout to GND)=10mV+Vshunt.
That means Vshunt gets an offset of 10mV. This value gets feed into the non inverting amplifier (ingore R18, the input impedance is much higher) and is amplified with the factor 16.
That means we can measure at pin 1 (ignoring R25, R28 because we asssume inf input impedance again):
16*(10mV+Vshunt)=160mV+16*(I*0.05)=160mV+0.8*I
that is reasonable close to bal00 formula: 140mV+0.97*I (There are real world tolerance and I did some idealization, in the calculation)
Now that output gets to the PI-Conroller.
Update: I just did a LTspice simulation to verify the calculation. Looks pretty good (see attachment)
Update: Did a more exact calculation later in the thread