[USRP-users] What is the battery pack voltage for E310, E312 and is required firmware update already available?
usrp-users-list at olifantasia.com
Wed Oct 7 06:55:21 EDT 2015
On 05-10-15 09:13, Sylvain Munaut wrote:
> Any reason you didn't reply to the list ?
No, I just hit the wrong reply button.
>>> Note that if you reflash the fw and use your own battery you might
>>> also consider changing the divider of the gauge chip.\
>> I was planning on connecting a 20.000 mAH or 40.000 mAh li-ion battery.
> Wow, that's some huge cell ... it's also going to take a while to
> charge those. The onboard charger is 2A charge current.
>> So I will have to increase it by a factor 6 or 12.
> Well it's limited to power of 2's. So I guess you'd need the max
> divider of M=128 for the larger pack.
You are right.
from the LTC2942 datasheet:
max capacity battery with charge readout =
= 0.085mAh * (50mOhm /Rsense_in_mOhm) * (M/128 ) * 65535
Rsense in the E310 = 10 mOhm
So max cap = 217.6 * M mAh
In the default firmware M = 16
Max cap (default M=16)= 3482 mAh
M is max 128 so
Max cap (max M=128)= 27852 mAh
It seems that the 40000 mAh I would like is not an option, if you want
The only option would be to replace Rsense
>> Is this the value set in e300/battery/ltc294x.c
>> /* set prescaler to 16 */
>> val &= ~LTC294X_PRESCALER_MASK;
>> val |= 0x4 << LTC294X_PRESCALER_SHIFT;
>> (This actually sets the value to 32, even though the comment says 16)
> Huh ... no it doesn't ?
> I'm looking at the datasheet right now and putting 4 into B[5:3]
> definitely sets a M=16 divider.
I misread the datasheet. It is indeed 16.
>> Or just make it configurable.
>> It is controlled using I2C on the I2C_power lines.
>> Can we do a i2c_twi_write16(LTC294X_I2C_ADDR, reg, val) after boot, onder
>> customer software control ?
> It's on a physically distinct I2C bus only controlled by the AVR.
> Also this need to be programmed when the battery pack is plugged (the
> gauge and AVR are always ON). and not at the zynq boot time.
> You could make it configurable ( like a variable in the AVR EEPROM ),
> but you'll need to get it through all the abstraction layers :
> Zynq -> FPGA -> AVR -> LTC2942 ... that's quite a bit of code to
> modify and you'll always need custom fpga images.
An easier solution would be if we could program the LTC2942 in circuit.
But then Ettus would need to connect the AVR_RESET reset line to the
A workaround could be to connect the reset line (or all program lines
from the 6pin SPI header) of the LTC2942 to the E310 GPIO pins.
More information about the USRP-users