bbc7dcdba4
git-svn-id: https://bucket.mit.edu/svn/nilm/zoom@7008 ddd99763-3ecb-0310-9145-efcb8ce7c51f
49 lines
2.0 KiB
Plaintext
49 lines
2.0 KiB
Plaintext
Given out scaling and that n=200 on the secondary for the LA-55,
|
|
and a 16-bit DAC value, each LSB cancels out 600 µA of current on
|
|
the primary, for a maximum range of
|
|
DAC 0000h ≈ -20 A (-600 µA * 2^15)
|
|
DAC 8000h ≈ 0 A
|
|
DAC ffffh ≈ 20 A (600 µA * 2^15)
|
|
|
|
Assume LA-55 is accurate to 500 µA. Then we're screwed because we
|
|
already get 600 µA granularity out of the compensation current! Any
|
|
bits we steal from the DAC to put on the LEM side don't gain us
|
|
anything, and we're stuck at 16-17 bits.
|
|
|
|
Let's assume instead that the LA-55 is accurate to 50 µA.
|
|
Now if we want 7-8 bits from that, we need LA-55 to handle
|
|
range up to around 5 mA. That steals 5 mA / 600 µA ≈ 3 bits
|
|
from the DAC, so we use a 13-bit value on the DAC.
|
|
|
|
So LA-55 value should only ever reach ± 5 mA. Let R = 100 (max in
|
|
spec), remember scaling in LA-55, and our max output voltage is
|
|
about ± 0.5 mV. Crap. That's just around the resolution of the
|
|
PIC ADC so we'd need to scale that up by a factor of 2^8 to get
|
|
8 bits out of it. Not good!
|
|
|
|
For now, I have the LEM output going into a fixed gain of 11. Then
|
|
it gets subtracted from 1.25 V and fed into the PIC ADC, with clamps
|
|
to -0.6V to +3.9V to avoid damaging the PIC if our code is broken.
|
|
|
|
On firmware:
|
|
With scaling factor of 11, PIC input should reach ±5.5mV if LA-55
|
|
reaches ± 5mA. Again let's scale by 20 arbitrarily to make this not
|
|
completely unworkable, so our window extends to ±110mV around 1.25V
|
|
which is
|
|
min = (1.14V / 2.50V * 0x0fff) = 0x074b
|
|
max = (1.36V / 2.50V * 0x0fff) = 0x08b3
|
|
ADC value is inverted due to subtraction, but current output is inverted
|
|
too, so we can ignore that.
|
|
|
|
So our ADC window is actually ±100 mA. Step DAC by 100 mA/600 μA = 166
|
|
to account for that (we'll use 128).
|
|
|
|
---
|
|
|
|
1 bit change on DAC is 600 μA
|
|
LA-55 output voltage is x/1000 * 100 = 0.06 mV
|
|
ADC input changes by x*11 = 0.66 mV
|
|
which is a count of x / (2.50 / 2^12) = 1.08
|
|
So to counteract a change of X on the ADC, change dac by (X/1.08).
|
|
|