Texas Instruments Gas Gauging Device BQ28Z610 FETControl(), ChargeFET(), DischargeFET()

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

  1. First of all: none of FETControl(), ChargeFET(), DischargeFET() can be executed while device is Sealed.
  2. Ok, let's unseal the device. Now, while the ManufacturingStatus[FET_EN] flag is high neither ChargeFET() nor DischargeFET() can be executed.
  3. 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".
  4. 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.
  5. 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.
  6. 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.
  7. 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()
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:

  1. The device is charging. Current() = 90 mA.
  2. Call FETControl() to clear the [FET_EN] flag. Charging FET is disabled now, as well as Discharging one, so Current() = 0.
  3. Call ChargeFET(). Charging should continue, but it's not happening. Current() = 0.
  4. Let's call DischargeFET() to enable Discharge FET. Now charging continues. Current() = 131 mA.
  5. 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()
Usage of the ChargeFET() and DischargeFET()

References


 

No comments:

Post a Comment

Desperate Housewives Susan's Art s05 e16

Desperate Housewives Susan's Art s05 e16