MicroPython:Библиотеки/machine/Класс I2C: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 14: | Строка 14: | ||
Пример использования: | Пример использования: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
from machine import I2C | from machine import I2C | ||
Строка 50: | Строка 50: | ||
== Конструкторы == | == Конструкторы == | ||
* [[MicroPython:Библиотеки/machine/Класс I2C/machine.I2C()|machine.I2C(]] | * [[MicroPython:Библиотеки/machine/Класс I2C/machine.I2C()|machine.I2C()]] | ||
==Общие методы== | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.init()|I2C.init()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.deinit()|I2C.deinit()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.scan()|I2C.scan()]] | |||
==Примитивные I2C-операции== | |||
В методах ниже реализованы примитивные I2C-операции для ведущего устройства (мастера), и их совместное использование позволяет выполнить любую I2C-транзакцию. Они нужны на тот случай, если вам нужно больше контроля над I2C-шиной; в противном случае вам подойдут и стандартные методы (см. ниже). | В методах ниже реализованы примитивные I2C-операции для ведущего устройства (мастера), и их совместное использование позволяет выполнить любую I2C-транзакцию. Они нужны на тот случай, если вам нужно больше контроля над I2C-шиной; в противном случае вам подойдут и стандартные методы (см. ниже). | ||
Эти методы доступны только при использовании программной I2C-шины. | Эти методы доступны только при использовании программной I2C-шины. | ||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.start()|I2C.start()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.stop()|I2C.stop()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readinto()|I2C.readinto()]] | |||
Стандартные операции на шине I2C | * [[MicroPython:Библиотеки/machine/Класс I2C/I2C.write()|I2C.write()]] | ||
==Стандартные операции на шине I2C== | |||
В методах ниже реализованы стандартные I2C-операции чтения/записи ведущего устройства (мастера) с заданным ведомым устройством. | В методах ниже реализованы стандартные I2C-операции чтения/записи ведущего устройства (мастера) с заданным ведомым устройством. | ||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readfrom()|I2C.readfrom()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readfrom_into()|I2C.readfrom_into()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.writeto()|I2C.writeto()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.writevto()|I2C.writevto()]] | |||
==Операции с памятью== | |||
Некоторые I2C-устройства работают как запоминающие устройства (или наборы регистров), с которыми можно осуществлять операции чтения/записи. В этом случае в I2C-операции будет участвовать 2 адреса: адрес ведомого устройства и адрес памяти. Методы ниже – это удобные функции для коммуникации с такими устройствами. | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readfrom_mem()|I2C.readfrom_mem()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readfrom_mem_into()|I2C.readfrom_mem_into()]] | |||
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.writeto_mem()|I2C.writeto_mem()]] | |||
=См.также= | =См.также= |
Текущая версия от 19:52, 23 мая 2023
Класс I2C – протокол для передачи последовательных данных по 2 линиям[1]
I2C – это 2-проводной протокол для коммуникации между устройствами. На физическом уровне он состоит из 2 проводов: SCL и SDA – для тактового сигнала и передачи данных.
Объекты I2C при создании привязываются к заданной I2C-шине. Их можно инициализировать при создании или позже.
Печать объекта I2C показывает информацию о его настройках.
Пример использования:
from machine import I2C
i2c = I2C(freq=400000) # Создаем I2C-шину, работающую
# на частоте 400 КГц.
# Некоторым портам требуются
# дополнительные параметры для
# выбора периферийного нужного
# устройства и/или контактов.
i2c.scan() # Делаем сканирование, чтобы
# найти ведомые устройства.
# Этот метод вернет список
# 7-битных адресов.
i2c.writeto(42, b'123') # Записываем 3 байта
# на ведомое устройство
# с 7-битным адресом «42».
i2c.readfrom(42, 4) # Считываем 4 байта
# с ведомого устройства
# с 7-битным адресом «42».
i2c.readfrom_mem(42, 8, 3) # Считываем 3 байта из памяти
# ведомого устройства с адресом «42»,
# начиная с адреса в памяти «8»
# на ведомом устройстве.
i2c.writeto_mem(42, 2, b'\x10') # Записываем 1 байт на память
# ведомого устройства с адресом «42»,
# начиная с адреса в памяти «2»
# на ведомом устройстве.
Конструкторы
Общие методы
Примитивные I2C-операции
В методах ниже реализованы примитивные I2C-операции для ведущего устройства (мастера), и их совместное использование позволяет выполнить любую I2C-транзакцию. Они нужны на тот случай, если вам нужно больше контроля над I2C-шиной; в противном случае вам подойдут и стандартные методы (см. ниже).
Эти методы доступны только при использовании программной I2C-шины.
Стандартные операции на шине I2C
В методах ниже реализованы стандартные I2C-операции чтения/записи ведущего устройства (мастера) с заданным ведомым устройством.
Операции с памятью
Некоторые I2C-устройства работают как запоминающие устройства (или наборы регистров), с которыми можно осуществлять операции чтения/записи. В этом случае в I2C-операции будет участвовать 2 адреса: адрес ведомого устройства и адрес памяти. Методы ниже – это удобные функции для коммуникации с такими устройствами.