zoom/notes/old/notes-la55.txt
jim bbc7dcdba4 reorg
git-svn-id: https://bucket.mit.edu/svn/nilm/zoom@7008 ddd99763-3ecb-0310-9145-efcb8ce7c51f
2008-12-05 00:43:01 +00:00

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).