|
|
@@ -0,0 +1,55 @@ |
|
|
|
Setup |
|
|
|
----- |
|
|
|
|
|
|
|
Total input current Ic (amps) |
|
|
|
|
|
|
|
LA-55 with ~200 turns, 1k burden. |
|
|
|
Voltage output is Vc = (Ic / 1000 * 1k) = Ic |
|
|
|
LA-55 output goes to trimmable offset opamp, |
|
|
|
trimmed to 0 when DAC command is 32768. |
|
|
|
|
|
|
|
-> NOTE: DC offset changes a ton (200mV!) when the LA-55 is |
|
|
|
saturated one way versus the other, then returned to zero. |
|
|
|
|
|
|
|
Will try implementing a degauss feature, to see if the DC offset |
|
|
|
always settles to the same amount. Result: seems to work. |
|
|
|
|
|
|
|
R36 = 1k (shouldn't matter) |
|
|
|
IC3A: |
|
|
|
R37 = 1k, R38 = 3.3k -> scales up by 4.3 |
|
|
|
IC3B: |
|
|
|
R39 = 100k |
|
|
|
R40 = 100k |
|
|
|
R41 = 100k |
|
|
|
R42 = 100k |
|
|
|
Reference: |
|
|
|
R43 and R44 are a pot, trimmed so R43 == R44 -> VREF1.25 = 1.25V. |
|
|
|
|
|
|
|
So |
|
|
|
ADC12V+ = 1.25 - (4.3 * Vc) |
|
|
|
= 1.25 - 4.3 Ic |
|
|
|
|
|
|
|
PIC input value (PICV) is: |
|
|
|
0 = 0V |
|
|
|
2048 = 2.5V |
|
|
|
|
|
|
|
PICV = (ADC12V+ * 2048 / 2.5) |
|
|
|
PICV = (1.25 - 4.3 Ic) * 2048 / 2.5 |
|
|
|
PICV = 1024 - 3522.6 Ic |
|
|
|
Ic = (1024 - PICV) / 3522.6 |
|
|
|
|
|
|
|
Computed by adc12_to_current() |
|
|
|
|
|
|
|
Scaling |
|
|
|
------- |
|
|
|
DAC can do about ±20A. DAC command (DACC) is: |
|
|
|
0 = -20A |
|
|
|
65536 = +20A |
|
|
|
|
|
|
|
DACC = 32768 * (1 + Ic / 20) |
|
|
|
|
|
|
|
Computed by current_to_dac() |
|
|
|
|
|
|
|
Code |
|
|
|
---- |
|
|
|
|