SMBus: Работа с шиной I2C на Python в Raspberry Pi/Orange Pi/Banana Pi

SMBus (англ. System Management Bus) — последовательный протокол обмена данными для устройств питания. Основан на шине I²C, но использует более низкое сигнальное напряжение (3,3 В), предложен Intel в 1995 году. Используется, например, для получения информации о состоянии аккумуляторной батареи ноутбука (оставшаяся ёмкость аккумуляторной батареи, температура, количество использованных циклов разряда, и т. д.). С версии SMBus 2.0 (2000 год) используется не только для настройки батареи, но и для иных внутренних устройств компьютера.

SMBus является двухпроводным интерфейсом, по которому простые устройства могут обмениваться информацией с остальной системой. Сообщения идут к устройствам и от них, вместо прохождения по отдельным управляющим линиям.

python-smbus — этот модуль Python обеспечивает доступ к SMBus через интерфейс I2C /dev на хостах Linux. Ядро хоста должно иметь поддержку I2C, поддержку интерфейса устройства I2C и драйвер адаптера шины.

Установка и обновление Python

Python 2 и Python 3 поставляются предварительно установленными в операционных системах Raspbian, но чтобы установить Python в другой ОС Linux или обновить его, просто выполните одну из следующих команд в командной строке:

Установка или обновление Python 3.

sudo apt-get install python3

Установка или обновление Python 2.

sudo apt-get install python

Открытие Python REPL

Чтобы получить доступ к Python REPL (где вы можете вводить команды Python точно так же, как в командной строке), введите python или python3 в зависимости от того, какую версию вы хотите использовать:

SMBus Работа с I2C на Python в Raspberry Pi - Открытие Python REPL

Введите Ctrl-D, чтобы выйти из REPL.

Установка I2C Tools

I2C Tools — это пакет с полезными консольными инструментами для I2C. После установки нам будут доступны несколько полезных утилит: i2cdetect, i2cdump, i2cget, i2cset.

sudo apt-get install i2c-tools

i2cdetect — это пользовательская программа, которая сканирует шину I2C на наличие устройств.

Отображать список доступных в системе шин I²C:

i2cdetect -l

Установка I2C Tools (список доступных в системе шин I²C) - i2cdetect -l

Отображать таблицу обнаруженных устройств на указанной шине:

i2cdetect -y 0

Установка I2C Tools - i2cdetect -y 0

Установка SMBus

sudo apt-get install python-smbus

Описание методов (функций)

SMBus функции

write_quick()

Быстрая транзакция.

write_quick(addr)

Параметры
int addr — I2C адрес устройства.
Возвращает
long — Отрицательный errno или ноль в случае успеха.

read_byte()

Чтение байта.

read_byte(addr)

Параметры
int addr — I2C адрес устройства.
Возвращает
long — Отрицательный errno или байт данных в случае успеха.

write_byte()

Запись байта.

write_byte(addr,val)

Параметры
int addr — I2C адрес устройства.
char val — Байт данных.
Возвращает
long — Отрицательный errno или ноль в случае успеха.

read_byte_data()

Чтение байта данных.

read_byte_data(addr,cmd)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
Возвращает
long — Отрицательный errno или байт данных в случае успеха.

write_byte_data()

Запись байта данных.

write_byte_data(addr,cmd,val)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
char val — Байт данных.
Возвращает
long — Отрицательный errno или ноль в случае успеха.

read_word_data()

Чтение двух байт данных.

read_word_data(addr,cmd)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
Возвращает
long — Отрицательный errno или два байта данных в случае успеха.

process_call()

Process Call (вызов процесса) .

process_call(addr,cmd,val)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
int val — Два байта данных.
Возвращает
long — Отрицательное значение errno или 16-разрядное беззнаковое «слово», полученное от устройства.

read_block_data()

Чтение массива данных.

read_block_data(addr,cmd)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
Возвращает
long[] — Отрицательный errno или массив данных в случае успеха.

write_block_data()

Запись массива данных.

write_block_data(addr,cmd,vals)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
long[] vals — Массив данных.

block_process_call()

Block Process Call.

block_process_call(addr,cmd,vals)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
long[] vals — Массив данных.
Возвращает
long[] — Массив данных.

I2C функции

read_i2c_block_data()

Чтение массива данных.

read_i2c_block_data(addr,cmd,length)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
int length — Желаемая длина блока.
Возвращает
long[] — Массив данных в случае успеха.

write_i2c_block_data()

Запись массива данных.

write_i2c_block_data(addr,cmd,vals)

Параметры
int addr — I2C адрес устройства.
char cmd — Адрес регистра (команда).
long[] vals — Массив данных.

Примеры программ

Пример 1: чтение байта

Открыть шину I2C «0» и прочитать один байт от адреса 0x39, со смещением 0x0C (адрес регистра).

import smbus

bus = smbus.SMBus(0)
data = bus.read_byte_data(0x39, 0x0C)
print(data)
bus.close()

Пример 2: чтение массива данных

Открыть шину I2C «0» и прочитать 4 байта от адреса 0x39, со смещением 0x0C (адрес регистра). Вы можете прочитать до 32 байтов за раз.

import smbus

bus = smbus.SMBus(0)
data = bus.read_i2c_block_data(0x39, 0x0C, 4)
print(data)
bus.close()

Пример 3: запись байта

Открыть шину I2C «0» и записать один байт по адресу 0x39, со смещением 0x0C (адрес регистра).

import smbus

bus = smbus.SMBus(0)
data = 45
bus.write_byte_data(0x39, 0x0C, data)
bus.close()

Пример 4: запись массива

Открыть шину I2C «0» и записать масив байтов по адресу 0x39, со смещением 0x0C (адрес регистра). Вы можете записать до 32 байтов за раз.

import smbus

bus = smbus.SMBus(0)
data = [1, 2, 3, 4, 5, 6, 7, 8]
bus.write_i2c_block_data(0x39, 0x0C, data)
bus.close()

Материалы

How to Write and Run a Python Program on the Raspberry Pi
I2C Tools — Linux i2c Wiki
Using I2C with SM-Bus and Raspbian Linux on the Raspberry Pi
wiki:linux:python:sm-bus:doc [wiki.erazor-zone.de]
smbus2 Documentation
smbus2 · PyPI
i2cdetect(8) — i2c-tools — Debian unstable — Debian Manpages
SMBus — Википедия

Похожие записи

Комментарии 10

  • Untuk memulai, Anda cukup memilih taruhan dan memutar gulungan. Tidak hanya itu, game ini juga menawarkan opsi untuk membeli putaran gratis, memungkinkan Anda langsung masuk ke mode free spins tanpa harus menunggu simbol scatter muncul. Oleh karena itu, jika Anda ingin segera merasakan sensasi putaran gratis di situs BAMBUHOKI88, opsi ini bisa menjadi pilihan yang tepat.

  • Hello i like this site is good thank you 1006115 kraken market ссылка

  • Hello i like this site is good thank you 1006115 av4us pedo video

  • Ontdek een spannende wereld vol entertainment en kansen. Als je op zoek bent naar
    een plek waar je volop kunt genieten van unieke ervaringen,
    dan is dit de ideale bestemming voor jou. Met een gebruiksvriendelijke interface
    en toegang vanaf elk apparaat, heb je alles binnen handbereik om te ontspannen en plezier te
    hebben.

    Je vindt hier een breed scala aan mogelijkheden, van klassieke spellen tot
    moderne innovaties. Dankzij het veilige en betrouwbare platform kun je zorgeloos
    genieten en je volledig richten op het plezier.

    Wacht niet langer en maak deel uit van deze unieke ervaring.
    De mogelijkheden wachten op jou!

    my web-site — kody bonusowe betonred

  • If you’re searching for an exciting and immersive gaming experience, Brawl Pirates is the perfect choice.
    This dynamic and engaging casino game combines thrilling gameplay with the
    chance to unlock incredible rewards, making it a favorite for players worldwide.

    Why Choose Brawl Pirates?
    Whether you’re a fan of action-packed slots or just looking for something new, Brawl Pirates slot delivers an unforgettable adventure.

    The game stands out with its captivating pirate theme, high-quality
    graphics, and seamless gameplay. Dive into the world of
    treasure hunts and pirate battles, and enjoy the chance to win big while exploring the high seas.

    Try Brawl Pirates Casino Demo
    For those who are new to the game or want to test their strategies,
    the Brawl Pirates demo free is an excellent way to explore the
    mechanics without any risks. The demo version gives you
    a hands-on experience of all the features and bonuses that
    make the game so popular.

    Available on 1win Platform
    Fans of the platform will be delighted to find 1win Brawl Pirates.
    The game integrates perfectly with the platform, offering
    smooth functionality and exciting promotions. Looking for insider tips or strategies?

    Explore discussions about 1win Brawl Pirates hack and maximize your experience.

    Why You’ll Love This Game
    Unique Theme: Immerse yourself in a pirate-themed adventure full of treasures and surprises.

    Easy Access: The game is available for free demo play, so you can try before you commit.

    High Rewards: The bonus features and jackpots add to the thrill of every spin.
    Ready to Play?
    Brawl Pirates casino game offers something for every player, from casual enthusiasts to serious gamers.
    Whether you’re interested in testing the waters with the Brawl Pirates demo or diving straight into the
    action, this game promises hours of entertainment.

    Set sail today and let Brawl Pirates take you on a thrilling gaming adventure!

  • Entdecke die Welt von Ice Casino – Dein Abenteuer wartet
    Bist du bereit für ein außergewöhnliches Spielerlebnis?
    Ice Casino bietet dir eine beeindruckende Plattform mit spannenden Spielen, attraktiven Boni und vielen Vorteilen.
    Egal, ob du aus Deutschland oder Österreich spielst, hier findest du alles, was dein Spielerherz begehrt.

    Warum Ice Casino die richtige Wahl ist
    Ice Casino überzeugt durch seine benutzerfreundliche Oberfläche, eine
    große Auswahl an Spielen und lukrative Aktionen. Mit dem einfachen Ice Casino Login kannst
    du direkt starten und die aufregenden Möglichkeiten erkunden, die dich erwarten.

    Profitiere von exklusiven Boni
    Spieler schätzen besonders die großzügigen Angebote, die das Casino bietet.
    Nutze den Ice Casino Promo Code für zusätzliche Vorteile oder entdecke den Ice Casino Bonus Code, der dir
    den Einstieg erleichtert. Neuankömmlinge freuen sich über den Ice Casino No Deposit Bonus, während
    Bestandskunden von aktuellen Angeboten wie dem Ice Casino
    Promo Code Aktuell profitieren.

    Spielerlebnis für Deutschland und Österreich
    Ob in Ice Casino Deutschland oder Ice Casino Österreich,
    die Plattform bietet eine stabile und sichere Umgebung für Spieler.

    Die Vielfalt der Spiele und die attraktiven Bonusaktionen sorgen dafür,
    dass kein Wunsch offen bleibt.

    Immer die besten Aktionen
    Bleib mit dem Ice Casino Promo Code Bestandskunden auf
    dem Laufenden und sichere dir regelmäßig neue
    Vorteile. Egal, ob du ein erfahrener Spieler bist oder gerade erst beginnst, hier findest
    du alles, was du für ein erfolgreiches und unterhaltsames Spiel brauchst

  • Entdecke die Welt von 1x Slots – Einzigartige Unterhaltung wartet auf dich
    Wenn du auf der Suche nach einem erstklassigen Spielerlebnis bist, bietet 1x Slots alles, was du brauchst.
    Mit einer großen Auswahl an Spielen, attraktiven Boni und einer
    benutzerfreundlichen Plattform ist es die perfekte Wahl für
    alle, die spannende Unterhaltung genießen möchten.

    Warum 1x Slots die beste Wahl ist
    1x Slots Casino bietet eine riesige Auswahl an Spielen, darunter klassische Slots, moderne Spielautomaten und aufregende Live-Casino-Spiele.

    Egal, ob du ein erfahrener Spieler bist oder gerade erst anfängst – hier findest du das ideale Angebot für deine Vorlieben.

    Exklusive Bonusangebote nutzen
    Mit dem 1x Slots Bonus ohne Einzahlung kannst du sofort
    loslegen, ohne eigenes Geld einzusetzen. Attraktive Bonusaktionen und regelmäßige Promotionen bieten dir zusätzliche Gewinnchancen und machen das Spielerlebnis noch
    aufregender.

    Einfache Anmeldung und sicherer Zugang
    Dank des 1x slots casino официальный сайт Slots Casino offizieller
    Website kannst du dich schnell registrieren und
    sofort spielen. Falls du Probleme beim Zugriff hast, steht dir das 1x Slots
    Spiegel als alternative Möglichkeit zur Verfügung.
    Die Plattform bietet höchste Sicherheit, sodass du sorgenfrei dein Spiel genießen kannst.

    Mobiles Spielen leicht gemacht
    Wer unterwegs spielen möchte, kann 1x Slots
    herunterladen und die Plattform jederzeit auf seinem Mobilgerät nutzen. Die mobile Version bietet dieselbe hohe
    Qualität wie die Desktop-Version, sodass du überall flexibel bleiben kannst.

    Dein Spielerlebnis beginnt hier
    Ob klassische Tischspiele oder moderne Spielautomaten – 1x Slots
    Казино bietet alles, was das Spielerherz begehrt.
    Tauche ein in eine Welt voller spannender Spiele und attraktiver Gewinne und genieße erstklassige Unterhaltung!

  • Entdecke das ultimative Spielerlebnis mit bdm bet no deposit bonus code Bet
    Suchst du nach einer spannenden Plattform mit großartigen Bonusangeboten und einer
    Vielzahl von Spielen? BDM Bet bietet dir genau das! Mit einer intuitiven Benutzeroberfläche, attraktiven Promotionen und einer sicheren Umgebung ist es der perfekte Ort für alle,
    die ein erstklassiges Spielerlebnis genießen möchten.

    Warum BDM Bet eine ausgezeichnete Wahl ist
    BDM Bet Casino bietet eine riesige Auswahl an Spielen, von klassischen Slots bis hin zu aufregenden Live-Optionen.
    Egal, ob du ein erfahrener Spieler bist oder gerade erst
    anfängst, hier findest du die perfekte Mischung
    aus Unterhaltung und Gewinnchancen.

    Nutze exklusive Bonusangebote
    Der BDM Bet Bonus ohne Einzahlung ist eine großartige Möglichkeit, das Casino risikofrei auszuprobieren.
    Darüber hinaus gibt es den BDM Bet Casino No Deposit Bonus, mit dem du zusätzliche Chancen auf echte Gewinne erhältst.
    Wer auf der Suche nach besonderen Angeboten ist, kann sich auch die aktuellen BDM Bet Casino No Deposit Bonus Codes sichern.

    Promo-Codes für noch mehr Vorteile
    Für alle, die das Beste aus ihrem Spielerlebnis herausholen möchten,
    gibt es den BDM Bet Promo Code. Mit diesem erhältst du zusätzliche Boni und Freispiele.
    Auch der BDM Bet Bonus Code sorgt dafür, dass du mehr
    aus deinem Spiel herausholen kannst.

    Schnelle und sichere Auszahlung
    Spieler schätzen nicht nur die attraktiven Bonusangebote, sondern auch
    die einfache und zuverlässige BDM Bet Auszahlung.
    Gewinne können sicher und schnell transferiert werden, sodass du deine Beträge ohne lange
    Wartezeiten erhältst.

    Spielerfahrungen mit BDM Bet
    Viele Nutzer teilen ihre BDM Bet Casino Erfahrungen und berichten von einer großartigen Spielauswahl und einem zuverlässigen Kundenservice.
    Die Plattform ist nicht nur modern, sondern bietet auch transparente
    Bedingungen, sodass du ein sicheres und faires Spielerlebnis genießen kannst.

    Mobiles Spielen mit der BDM Bet App
    Wer gerne unterwegs spielt, kann sich die BDM Bet App herunterladen und alle Spiele auch
    auf dem Smartphone oder Tablet genießen. Die mobile Version bietet die gleiche Qualität und reibungslose Navigation wie die Desktop-Variante.

  • Odkryj Świat Rozrywki z Slots City
    Jeśli szukasz platformy, która łączy nowoczesną technologię z ekscytującą
    rozgrywką, Slots City to miejsce dla Ciebie. Dzięki szerokiej
    gamie gier, atrakcyjnym bonusom i łatwej obsłudze, ta platforma oferuje wyjątkowe doświadczenie dla każdego gracza.

    Dlaczego warto wybrać Slots City?
    Slots City Casino oferuje szeroki wybór gier, w tym klasyczne
    automaty, nowoczesne sloty i ekscytujące gry na żywo.

    Dzięki intuicyjnemu interfejsowi każdy użytkownik może łatwo znaleźć
    swoje ulubione tytuły.

    Szybka rejestracja i wygodne logowanie
    Rozpoczęcie przygody z platformą jest bardzo proste. Proces Slots City rejestracja jest
    szybki i intuicyjny, a dzięki opcji Slots City вход gracze mogą natychmiast zalogować
    się i rozpocząć rozgrywkę.

    Atrakcyjne bonusy dla nowych i stałych graczy
    Nowi użytkownicy mogą skorzystać z Slots City бездепозитный
    бонус, który pozwala na rozpoczęcie gry bez konieczności wpłacania środków.

    Dostępne są również promocje z Slots City промокод,
    które dają dodatkowe środki na grę.
    Nie zapomnij sprawdzić Slots City промокод 2024,
    aby uzyskać najlepsze oferty!

    Pobierz aplikację i graj wszędzie
    Dzięki możliwości Slots City скачать użytkownicy mogą
    cieszyć się pełną funkcjonalnością platformy na urządzeniach mobilnych.
    Jeśli korzystasz z Androida, wystarczy Slots City скачать
    на андроид, aby grać w dowolnym miejscu i czasie.

    Opinie użytkowników
    Gracze dzielą się swoimi pozytywnymi Slots City отзывы,
    podkreślając wygodę użytkowania, szeroką gamę gier i szybkie wypłaty.
    Wielu użytkowników docenia również dynamiczne promocje i bonusy
    dostępne na platformie.

  • Odkryj ekscytującą rozgrywkę w Slots City
    Jeśli szukasz niezawodnej i nowoczesnej platformy do gier online, Slots City to idealne miejsce dla Ciebie.
    Dzięki szerokiemu wyborowi gier, atrakcyjnym bonusom i łatwemu
    dostępowi, ta platforma zapewnia niezapomniane
    doświadczenia zarówno dla nowych, jak i doświadczonych graczy.

    Dlaczego warto wybrać Slots City?
    Slots City Casino oferuje szeroki wybór gier, w tym klasyczne automaty, nowoczesne sloty oraz gry na żywo.

    Dzięki przejrzystemu interfejsowi każdy użytkownik może szybko odnaleźć swoje ulubione gry i cieszyć się
    dynamiczną rozgrywką.

    Szybka rejestracja i wygodne logowanie
    Proces Slots City rejestracja jest niezwykle prosty i szybki, co umożliwia błyskawiczne rozpoczęcie gry.

    Po utworzeniu konta można bez problemu skorzystać z opcji Slots City вход, aby uzyskać pełen dostęp do
    oferty kasyna.

    Atrakcyjne bonusy i promocje
    Nowi gracze mogą skorzystać z Slots City бездепозитный бонус,
    który pozwala na rozpoczęcie gry bez wpłaty. Dodatkowe środki można
    uzyskać, wykorzystując Slots City промокод, a aktualne oferty, takie jak Slots City промокод 2024, pozwalają
    zwiększyć swoje szanse na wygraną.

    Graj na urządzeniach mobilnych
    Dzięki możliwości Slots City скачать użytkownicy
    mogą cieszyć się pełną funkcjonalnością platformy
    na urządzeniach mobilnych. Jeśli korzystasz z systemu Android, wystarczy Slots
    City скачать на андроид, aby mieć dostęp do ulubionych gier w dowolnym miejscu i czasie.

    Opinie użytkowników
    Gracze dzielą się swoimi Slots City отзывы, podkreślając wygodę użytkowania,
    szeroką gamę gier oraz szybkie i bezpieczne wypłaty.
    Platforma jest wysoko oceniana ze względu na dynamiczne promocje oraz atrakcyjne bonusy dla nowych i stałych graczy.

    Also visit my blog post … YourKeywords

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *