SLUAB21 May 2025 BQ25750 , BQ25751 , BQ25756 , BQ25756E , BQ25820
The external P&O MPPT operation begins with an initialization sequence that prepares the charger for maximum power point tracking. Upon startup, the microcontroller enables the battery current ADC to allow real-time monitoring of charging current. The microcontroller configures the force sweep timer to trigger a full sweep, for example, every 20 minutes, and sets the VAC_DPM register to a custom-selected minimum panel voltage. This voltage value is also stored separately as the variable PAN_MIN_V acts as a safety floor during run-time adjustments. A custom timer is also configured to enforce periodic resets of the operating point.
Following initialization, the system performs a full panel sweep. The microcontroller monitors the interrupt pin and the MPPT status register to detect when the sweep completes. Once the sweep completes, the host reads the VAC_MPP register and updates the VAC_DPM setting to match the detected maximum power point. At this point, the internal MPPT is disabled to allow full external control.
The microcontroller then enters a continuous P&O control loop. The microcontroller first measures and stores the baseline charging current. Then, slightly perturbs the VAC_DPM value by increasing the value, and measures the resulting charging current. If the new current is greater than the previous value, then the system continues perturbing in the same direction by further increasing VAC_DPM. If the new current decreases, then the perturbation direction is reversed, and VAC_DPM decreases instead. After each adjustment, the current is remeasured to determine the next step.
Throughout this process, the system checks that VAC_DPM remains above the saved PAN_MIN_V threshold. If VAC_DPM falls below this minimum, then VAC_DPM is forcibly reset back to PAN_MIN_V. Additionally, once the custom timer expires, the device performs another full panel sweep to reset the VAC_DPM setting. This makes sure the system remains properly anchored to the maximum power point and minimizes drift caused by prolonged perturbation cycles.
| Register Address | Bit | Bit Name | Function | Options |
|---|---|---|---|---|
| 0x08 | [13:2] | VAC _DPM | Sets the lower voltage for MPP search | 4.2–65V |
| 0x1A | [2:1] | FORCE_SWEEP | Force a new panel sweep to search for MPP | 0 or 1 |
| 0x1A | [2:1] | FULL_SWEEP_TMR | Controls the time between full panel sweep (minutes) | 3min, 10min, 15min, 20min |
| 0x1A | [0] | EN_MPPT | Enables max power point tracking function | 0 or 1 |
| 0x1F | [13:2] | VAC_MPP | Read-only value holds the VAC max power point from recent search | 4.2–65V |
| 0x2F | [15:0] | IBAT_ADC | IBAT ADC reading with 5mΩ RBAT_SNS | -20A-20A |
| 0x22 | [1:0] | MPPT_STATUS | Max power point tracking algorithm status | MPPT disabled; MPPT enabled, but not running; full panel sweep in progress; max power voltage detected |