Senoko changes EVT to DVT
- 1 Senoko EVT to DVT changes
- 1.1 ECO1: Make default behavior to power on Novena
- 1.2 ECO2: Modify connector pin-out to match Novena PVT
- 1.3 ECO3: Add switch for MCU programming authorization
- 1.4 ECO4: Change switch AVL to new switch type
- 1.5 ECO5: Improve AC In detection margin
- 1.6 ECO6: Add bootstrap mechanism for "cold pack" swaps
- 1.7 ECO7: Tie PFIN high
- 1.8 ECO8: Provide independent 3.3V supply for MCU
- 1.9 ECO9: Modify mounting hole sizes
- 1.10 ECO10: Fix Y100 EOL issue
Senoko EVT to DVT changes
This is a list of all the changes applied to the board from EVT1 to DVT1 release. If it's not on this list, it didn't happen.
Each change has the format of issue summary/resolution, and specific change
ECO1: Make default behavior to power on Novena
R108 tied to 3.3_UC instead of GND so default/unprogrammed behavior is to pass power through from AC to power connector. Note that "factory-new" unprogrammed behavior also makes the battery inert so it will neither charge nor discharge. Furthermore note that if the gas gauge/charger has previously been programmed prior to MCU going into reflash mode, that behavior *will* stick, so beware! When reflashing the MCU, first put the gas gauge and charger into "inert"/safe states.
No BOM change to report, just netlist change.
ECO2: Modify connector pin-out to match Novena PVT
Novena PVT pinout changed on battery connector to reveal SMBus and also eliminate reflash pin. Change Senoko design accordingly.
|Added||Q102 BSS138||Isolates charger's SMBus SDA from Novena, so when Novena is powered down it doesn't jam the local bus. This is important for bootstrapping the gas gauge, etc. from a powered-down state.|
|Added||Q103 BSS138||Isolates charger's SMBus SCL from Novena, so when Novena is powered down it doesn't jam the local bus. This is important for bootstrapping the gas gauge, etc. from a powered-down state.|
Non-BOM (netlist only) changes include moving PM_NRST to its new home on the SATA-like connector (J100), and adding the HOST_SMB_xxx pins to the B-/B+ signal pins on J100.
As part of connector refactor, PM_REFLASH_ALRT is disconnected from the CPU, preventing the CPU from putting the MCU into a code download mode. Instead, add a switch where if the user presses the button simultaneous to the CPU resetting the MCU, the MCU can enter a code download mode.
ECO4: Change switch AVL to new switch type
The old switch was flaky and expensive. Change to new switch vendor.
|SW100 TS-1187A, Chi Fung||SW100 TL3342F160QG/TR|
|SW300 TS-1187A, Chi Fung||SW300 TL3342F160QG/TR|
ECO5: Improve AC In detection margin
Currently, CHG_ACIN barely triggers with an input voltage of 18V. Since 3-cell operation is the new norm for target operation, allow detection of AC_IN down to 14V.
Set divider to 66.5k under 316k, so trip threshold is 13.8V. This is 1.2V over the charge termination voltage for a 3-cell Li-Ion pack -- a bit close, but I think it's good to keep the margin somewhat close to allow a broader range of adapters, and definitely high enough that a 12V adapter at +10% rating won't trigger ACIN.
|R214 430k, 1%||R214 316k, 1%|
ECO6: Add bootstrap mechanism for "cold pack" swaps
If the battery pack is removed with no AC power available, it is impossible to bootstrap the system.
This is because the gas gauge shuts itself down when the battery pack is removed, and when a new battery is attached it needs to be programmed with the battery parameters before allowing *any* discharge operation (this is a reasonable and safe behavior, actually).
A momentary pushbutton switch plus a diode is provided on the load side of R300 (a 300 ohm resistor) so that a user can depress the switch to force a limited-current connection from the battery pack to UC_BOOTSTRAP, which in turn trickles into the MCU. The user must hold down this switch long enough for the MCU to boot and program the gas gauge with reasonable parameters so that discharge is allowed from the pack (should take less than a dozen milliseconds, so for all intents and purposes any key press is enough).
Note this means the maximum draw of the MCU is about 20mA @ battery voltage, which if put through a switching regulator should be plenty to power the MCU.
A switch is used vs. a permanent connection through the diode because we do want a full disconnect possibility of the load from the battery pack in case of deep discharge, and so the normally open switch makes sure that the load FETs can still perform this protective action (at least during long-term storage scenarios).
A diode is used to prevent false charging of the battery in the case that the user decides to press the button even when the system is running, and AC power is plugged in. The user's not supposed to press it then, but you have to anticipate users doing anything, even if it doesn't make sense.
ECO7: Tie PFIN high
PFIN is tied high, which is the inert state. PFIN is only measured when a three-way fuse is attempted to be blown; so the pin has no meaning in this system.
In a typical gas gauge design, a special fuse with a third terminal is provided. The third terminal can be manipulated such that the fuse is forced into a blown state using a low current. As such, this fuse provides dual-mode protection: it blows when too much current is drawn, and can be forced permanently open through this low-current path. This low-current path is typically essential to protect a pack in the case of an attempt to extremely deeply discharge the pack, and not much power is available to blow the fuse.
A single, permanent fast-blow fuse is provided that trips at 7A on this board to protect against a dead short somewhere in the power front-end. However, we don't support the deep-discharge permanent fuse blowing, because in fact you can replace the battery on this design, unlike packs where the gas gauge is permanently welded into the same plastic case as a battery.
|Added||R338 5.1k, 1%|
ECO8: Provide independent 3.3V supply for MCU
The MCU power was being snarfed off of VREF on the charger IC.
This turns out to be a bad idea.
This is because when the AC power goes away, VREF also goes away -- even if the battery is present, causing the MCU to die when on battery (I misinterpreted that VREF was sourced from battery, not AC).
A TPS62177DQCT switching step-down regulator is provided. It is a very efficient, low-power regulator that draws about 22uA when idling. The input to the regulator is a diode-OR of RAW_ACIN, BAT_PROTECTED, and the bootstrap pushbutton.
This regulator provides a drastically more efficient pathway to run the MCU off of battery (previously it was an LDO going from up to 12.6V down to 3.3V; now it's a stepper so ~4x efficiency gain), so this should have been done anyways, but I was too lazy in the original design to do this.
The charger-local status signals are now powered off of its local VREF (per reference design) which means to some extent when on battery, you can't trust the charger's outputs (at least, this is to be seen if they dtrt when on battery).
|Added||D101 BAT54T1G||diode-OR in RAW_ACIN|
|Added||C117 2.2uF, 25V, 10% X5R|
|Added||R102 100k, 1%|
|Added||L101 10uH LPS4018-103|
|Added||C118 22uF, 25V, X5R, 10%|
|C105 0.1uF, 6.3V X5R||deleted|
|C106 10uF, 10V, X5R, 20%||deleted|
|C107 0.1uF, 6.3V, X5R||deleted|
ECO9: Modify mounting hole sizes
Mounting holes increased to accommodate M2.5 screws, per case design.
ECO10: Fix Y100 EOL issue
ABS10 crystals from Abracon are EOL. Replace with a suitable low-ESR variant. STM32 requires a very low ESR crystal for low-power operation.
|Y100 Abracon ABS10-32.768KHZ-7-T 7pF CL||Abracon ABS07-120-32.768KHZ-T 6pF CL|