The information about the relationship between sealing/unsealing the device
and FETControl() with ChargeFET() and DischargeFET() is not clear
enough in the Technical Manual. Therefore, I decided to address this gap with
this article.
Seal/Unseal device, FETControl() and ChargeFET(), DischargeFET()
-
First of all: none of FETControl(), ChargeFET(), DischargeFET() can be executed while device is
Sealed.
-
Ok, let's unseal the device. Now, while the ManufacturingStatus[FET_EN] flag is high neither ChargeFET() nor DischargeFET() can be
executed.
-
Let's call FETControl() to clear the [FET_EN] flag.
Charging and Discharging FETs are now disabled. You may check this by the
flags: OperationStatus[XCHG] and OperationStatus[XDSG], which are raised. I call this state "blocked unsealed".
-
If you now seal the device, then charging and discharging FETs will remain
disabled. To return the device to the previous state, you should unseal it.
I call this state "blocked", because FETs cannot be enabled again while the
device is Sealed.
-
Let's return to the previous state, "blocked unsealed". At this state you
may operate FETs by calling ChargeFET() - to enable
Charging FET and DischargeFET() - to enable Discharge FET.
-
If the device becomes sealed while one of the FETs is enabled, then both
FETs will become disabled. This happens because when ManufacturingStatus[FET_EN] = 0, none of the FETs can be enabled
in sealed mode.
-
And the final state is: when you call ChargeFET() after DischargeFET(), or vice versa, both FETs become enabled. However,
if the device is sealed, then both FETs will become disabled.
|
The relationship between the seal/unseal device and FETControl() with ChargeFET() and DischargeFET() |
Charging does not work when I call ChargeFET()
I found one peculiarity that was not mentioned in the
documentation. I don't know why it was designed this way, but I would
like to share it with the community.
There are no issues with calling DischargeFET() it works just fine. However, this isn't the case for ChargeFET(). So let's take a closer look at the states:
- The device is charging. Current() = 90 mA.
- Call FETControl() to clear the [FET_EN] flag. Charging FET is disabled now, as well as Discharging one, so Current() = 0.
- Call ChargeFET(). Charging should continue, but it's not happening. Current() = 0.
- Let's call DischargeFET() to enable Discharge FET. Now charging continues. Current() = 131 mA.
- Let's call DischargeFET() again to disable Discharge FET this time. Charging does not stop. Current() = 119 mA.
So Charging works only if Discharge FET was previously enabled.
This behaviour is strange, but now you are informed about the process.
 |
Usage of the ChargeFET() and DischargeFET() |
References