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
в зависимости от того, какую версию вы хотите использовать:
Введите Ctrl-D, чтобы выйти из REPL.
Установка I2C Tools
I2C Tools — это пакет с полезными консольными инструментами для I2C. После установки нам будут доступны несколько полезных утилит: i2cdetect
, i2cdump
, i2cget
, i2cset
.
sudo apt-get install i2c-tools
i2cdetect
— это пользовательская программа, которая сканирует шину I2C на наличие устройств.
Отображать список доступных в системе шин I²C:
i2cdetect -l
Отображать таблицу обнаруженных устройств на указанной шине:
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 — Википедия
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!
продамус промокод promokod-prod.ru .
Simply want to say your article is as astounding. The clearness in your post is simply spectacular and i could assume you are an expert on this subject. Well with your permission allow me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please keep up the enjoyable work.
https://cc-ma.net/mechanics-hacks-perfect-headlight-sealing.html
Hi there, its fastidious post on the topic of media print, we all understand media is a enormous source of facts.
https://millionigrushek.ru/