Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

🚀 LTM4673 Python Library

Python-библиотека для конфигурирования, управления и сбора телеметрии с 4-канальных DC/DC преобразователей LTM4673 по протоколу I2C/PMBus.

💡 Архитектурная особенность: Микромодуль питания LTM4673 аппаратно построен на базе встроенного цифрового контроллера LTC2975. Именно поэтому в коде библиотеки для инициализации устройства и работы с его PMBus-регистрами используется класс LTC2975.


✨ Ключевые возможности

Библиотека предоставляет высокоуровневый интерфейс для управления встроенным контроллером управления питанием:

  • Настройка порогов напряжений и токов защит.
  • Чтение параметров системы (телеметрии) в реальном времени.
  • Управление встроенным серво-механизмом подстройки напряжений каналов.

📋 Требования и зависимости

  • ОС: Linux (Raspberry Pi, Orange Pi, серверные платы и любые Embedded-платформы с аппаратной шиной I2C).
  • Python: версии 3.7 и выше.
  • Библиотеки: smbus2 (используется вместо устаревшей smbus для более стабильной работы в современных дистрибутивах Linux).

Примечание: Перед запуском убедитесь, что интерфейс I2C активирован на уровне ядра ОС, а текущий пользователь имеет права на чтение/запись устройств /dev/i2c-*.


📦 Установка

  1. Клонируйте репозиторий с кодом библиотеки:

    git clone https://github.com
    cd ltm4673-python-library
  2. Установите обязательную Python-зависимость:

    pip install smbus2

💻 Пример использования

Ниже приведен базовый сценарий инициализации модуля, чтения основных параметров входной телеметрии и изменения выходного напряжения на одном из каналов:

import time
# Импортируем класс встроенного PMBus-контроллера LTC2975
from ltm4673 import LTC2975 

# Настройки подключения к I2C
DEFAULT_BUS = 1       # Номер системной шины I2C (/dev/i2c-1)
I2C_BASE_ADDR = 0x5b  # Базовый PMBus-адрес устройства на шине

# Инициализация модуля питания
sensor = LTC2975(bus_num=DEFAULT_BUS, addr=I2C_BASE_ADDR)

# 1. Чтение системной информации и идентификаторов чипа
print(f"Device ID:       {hex(sensor.mfr_special_id())}")
print(f"Customer Codes:  {hex(sensor.mfr_special_lot())}")

# 2. Сбор телеметрии входной шины питания
print(f"Vin  = {sensor.read_vin():.2f} V")
print(f"Iin  = {sensor.read_iin():.2f} A")
print(f"Status Input:    {hex(sensor.status_input())}")

# 3. Изменение конфигурации (требует отключения защиты от записи)
print("\nОбновление конфигурации модуля...")
sensor.write_protect(0x00)   # Отключение защиты (Write Protect)

sensor.vin_on(4.5)           # Порог включения по входному напряжению: 4.5V
sensor.vout_command(1.2)     # Целевое выходное напряжение канала: 1.2V

print("Конфигурация успешно применена.")

🛠 Обзор API

Инициализация

sensor = LTC2975(bus_num=1, addr=0x5b)
  • bus_num (int): Номер системной шины I2C (по умолчанию: 1).
  • addr (int): 7-битный физический PMBus-адрес микросхемы (по умолчанию: 0x5b).

Основные методы чтения (Телеметрия)

  • read_vin() — Возвращает текущее входное напряжение модуля в Вольтах (float).
  • read_iin() — Возвращает текущий входной ток модуля в Амперах (float).
  • status_input() — Чтение байта состояния регистра статуса входной шины (byte).
  • mfr_special_id() — Чтение уникального идентификатора модели внутреннего контроллера.

Основные методы записи (Конфигурация)

  • write_protect(mask) — Настройка маски защиты регистров от записи. Передача 0x00 полностью снимает защиту.
  • vin_on(voltage) — Установка минимального напряжения на входе, при котором модуль начнет работу.
  • vout_command(voltage) — Команда установки номинального выходного напряжения для выбранного активного канала.

👥 Авторы

  • awolfmanРазработка библиотеки, маппинг PMBus-команд, тестирование кода на реальном оборудовании.
  • Gemini (AI-помощник от Google)Технический аудит документации, исправление неточностей в API и оформление README.md.

About

LTM4673 Python Library

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages