gelbanana wrote:Haven't put much thought on software cal. Is it hard to implement?
Nah, it's rather simple to do. Unless you want an exact unit match between the DAC value and the amperage - like value 5 to the dac gives 50 mA and dac=1000 gives 10Amp - so you can step in precise 10mA steps with a 10 bit dac.
If you calibrate with firmware your steps will become not so nice and round. If dac=100 should give 1 Amp output but due to component tolerances it actually output 1.05 Amp instead you need to divide the dac value by 1.05 giving 95.23 (rounded to 95) and output that to the dac instead.
This will make the step size more or less 10mA per step on average, but not exact. By having a DAC with more bits than 10 you can get the steps closer and closer of the desired 10mA/step but you can never there exactly even with a 24 bit DAC. With a 10 bit dac and a trimmer pot you can adjust the analogue output to give an "exact" step of 10 mA.
But unless you have precision meters to measure the current it really doesn't matter. I'd probably go for a 12 (or possibly 14 bit dac) and do firmware calibration and be happy with it.
(Dividing by 1.05 can be done without floating point by multiplying by 100 and then dividing by 105. )