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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия 1 участника)
Строка 9: Строка 9:
Модель использования шины [[SPI]] похожа на [[I2C]]. Главное различие – в аргументах при инициализации.
Модель использования шины [[SPI]] похожа на [[I2C]]. Главное различие – в аргументах при инициализации.


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
from pyb import SPI
from pyb import SPI
spi = SPI(1, SPI.MASTER, baudrate=600000, polarity=1, phase=0, crc=0x7)
spi = SPI(1, SPI.MASTER, baudrate=600000, polarity=1, phase=0, crc=0x7)
Строка 18: Строка 18:
Дополнительные методы для класса [[SPI]]:
Дополнительные методы для класса [[SPI]]:


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
data = spi.send_recv(b'1234') # отправляем 4 байта и получаем 4 байта  
data = spi.send_recv(b'1234') # отправляем 4 байта и получаем 4 байта  
buf = bytearray(4)
buf = bytearray(4)
Строка 45: Строка 45:
* [[MicroPython:Библиотеки/pyb/Класс SPI/SPI.LSB|SPI.LSB]]
* [[MicroPython:Библиотеки/pyb/Класс SPI/SPI.LSB|SPI.LSB]]
* [[MicroPython:Библиотеки/pyb/Класс SPI/SPI.MSB|SPI.MSB]]
* [[MicroPython:Библиотеки/pyb/Класс SPI/SPI.MSB|SPI.MSB]]
• SPI.MASTER, SPI.SLAVE – для инициализации SPI-шины в режиме ведущего или ведомого устройства.
• SPI.LSB, SPI.MSB – задает то, каким будет первый бит: самым старшим или самым младшим.
<syntaxhighlight lang="python" enclose="div">


=См.также=
=См.также=

Текущая версия от 17:31, 24 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс SPI – протокол последовательной коммуникации SPI, управляемый через ведущее устройство (мастера)[1]

SPI – это протокол последовательной передачи данных, управляемый ведущим устройством (мастером). На физическом уровне SPI состоит из 3 линий: SCK, MOSI и MISO.

Модель использования шины SPI похожа на I2C. Главное различие – в аргументах при инициализации.

from pyb import SPI
spi = SPI(1, SPI.MASTER, baudrate=600000, polarity=1, phase=0, crc=0x7)

Единственный обязательный параметр – это mode: SPI.MASTER или SPI.SLAVE. В аргументе для полярности (polarity) можно задать «0» или «1» – это то, на каком логическом уровне начинается сигнал синхронизации. В аргументе для фазы (phase) тоже можно задать «0» или «1» – здесь определяется, по какому фронту сигнала синхронизации будет выполняться выборка: по переднему или заднему. В аргументе crc можно задать None (чтобы выключить CRC) или полином.

Дополнительные методы для класса SPI:

data = spi.send_recv(b'1234') # отправляем 4 байта и получаем 4 байта 
buf = bytearray(4)
spi.send_recv(b'1234', buf)   # отправляем 4 байта
                              # и получаем 4 байта в буфер
spi.send_recv(buf, buf)       # отправляем/получаем 4 байта из/в буфер

Конструкторы

Методы

Константы

См.также

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