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
- Texas Instruments Technical Reference Manual: https://www.ti.com/lit/ug/sluua65e/sluua65e.pdf
- The diagrams were created using the yED software from yWorks: https://www.yworks.com/products/yed
No comments:
Post a Comment