py32l020-i2c-m5pm1-config-1.ino

M5Stamp Timer Power 2 (PY32L020) · Archivo : py32l020-i2c-m5pm1-config-1.ino · Lenguaje : C · Uso : Configurer le M5PM1 via I2C pour définir le courant de charge à 180mA et lire l'état de la batterie.

Inicializa bus I2C, configura el circuito de carga M5PM1 para corriente baja y muestra el estado de la batería.

Ce code utilise la bibliothèque Wire pour communiquer avec le M5PM1 à l'adresse 0x6E. Il configure d'abord les broches GPIO 21 et 22 pour le SDA/SCL. Il envoie ensuite une commande pour régler le courant de charge. Les registres spécifiques doivent être adaptés selon la datasheet exacte du M5PM1. Une vérification de connexion est effectuée au démarrage.

py32l020-i2c-m5pm1-config-1.ino

#include <Arduino.h>
#include <Wire.h>

// M5PM1 I2C Configuration
#define I2C_SDA_PIN 21
#define I2C_SCL_PIN 22
#define M5PM1_ADDR 0x6E

// Register definitions (Simulated based on typical PMIC structure)
#define REG_CHG_CURRENT 0x02
#define REG_BATT_STATUS 0x01

void setup() {
  Serial.begin(115200);
  Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);
  
  Serial.println("M5Stamp Timer Power 2 - I2C Config Test");

  // Check communication
  Wire.beginTransmission(M5PM1_ADDR);
  if (Wire.endTransmission() != 0) {
    Serial.println("Error: M5PM1 not found!");
    while(1);
  }
  Serial.println("M5PM1 detected.");

  // Set Charge Current to 180mA (Example value 0x00 often maps to lowest setting)
  // Note: Specific bitfield depends on exact datasheet of M5PM1
  Wire.beginTransmission(M5PM1_ADDR);
  Wire.write(REG_CHG_CURRENT);
  Wire.write(0x00); // 180mA setting example
  Wire.endTransmission();
  Serial.println("Charge current set to 180mA.");
}

void loop() {
  // Read Battery Status
  Wire.beginTransmission(M5PM1_ADDR);
  Wire.write(REG_BATT_STATUS);
  Wire.endTransmission(false); // Repeated start
  Wire.requestFrom(M5PM1_ADDR, 1);

  if (Wire.available()) {
    uint8_t status = Wire.read();
    Serial.print("Battery Status Register: 0x");
    Serial.println(status, HEX);
  }
  delay(2000);
}

← Volver a la ficha