MicroPython:Библиотеки/machine/Класс I2C: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =...»)
 
Нет описания правки
 
(не показаны 4 промежуточные версии 1 участника)
Строка 4: Строка 4:




=Класс I2C – протокол для передачи последовательных данных по 2 линиям<ref>[http://docs.micropython.org/en/latest/library/machine.I2C.html docs.micropython.org - class I2C – a two-wire serial protocol]</ref>=


<syntaxhighlight lang="python" enclose="div">
[[I2C]] – это 2-проводной протокол для коммуникации между устройствами. На физическом уровне он состоит из 2 проводов: [[SCL]] и [[SDA]] – для тактового сигнала и передачи данных.
 
Объекты [[I2C]] при создании привязываются к заданной I2C-шине. Их можно инициализировать при создании или позже.
 
Печать объекта [[I2C]] показывает информацию о его настройках.
 
Пример использования:
 
<syntaxhighlight lang="python">
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»
                                # на ведомом устройстве.
</syntaxhighlight>
 
== Конструкторы ==
 
* [[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-шины.
 
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.start()|I2C.start()]]
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.stop()|I2C.stop()]]
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.readinto()|I2C.readinto()]]
* [[MicroPython:Библиотеки/machine/Класс I2C/I2C.write()|I2C.write()]]
 
==Стандартные операции на шине 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 адреса: адрес ведомого устройства и адрес памяти. Методы ниже – это удобные функции для коммуникации с такими устройствами.

См.также

Внешние ссылки