spi - Шина SPI

Функції для роботи з пристроями на користувацькій шині SPI через роз’єм розширення.

Примітка

Доступно лише на Лілці v2. Використовується окрема шина SPI2 (FSPI), тому робота з дисплеєм та SD-карткою не порушується. Лінією вибору пристрою (CS) потрібно керувати вручну через модуль gpio.

Приклад:

-- Читання ідентифікатора SPI Flash-пам'яті (команда 0x9F)

cs = 21
spi.begin(12, 13, 14) -- SCK = 12, MISO = 13, MOSI = 14
gpio.set_mode(cs, gpio.OUTPUT)
gpio.write(cs, gpio.HIGH)

gpio.write(cs, gpio.LOW)
local resp = spi.transfer({0x9F, 0x00, 0x00, 0x00})
gpio.write(cs, gpio.HIGH)

print(string.format("Manufacturer: 0x%02X", resp[2]))
class spi

Шина SPI для зовнішніх пристроїв (користувацька шина SPI2 / FSPI).

Доступна лише на Лілці v2. Шина дисплея та SD-картки (SPI1) не використовується.

MODE0: integer

режим SPI 0

MODE1: integer

режим SPI 1

MODE2: integer

режим SPI 2

MODE3: integer

режим SPI 3

static begin(sck, miso, mosi)

Ініціалізує шину SPI. Якщо піни не вказані, використовуються типові піни шини.

Parameters:
  • sck (integer) – ? номер піна SCK (тактовий сигнал)

  • miso (integer) – ? номер піна MISO

  • mosi (integer) – ? номер піна MOSI

static transfer(data, frequency, mode)

Передає дані по шині SPI (повний дуплекс) і повертає прийняті дані.

Лінію вибору пристрою (CS) потрібно керувати вручну через модуль gpio.

Parameters:
  • data (integer or list[integer]) – один байт або таблиця байтів

  • frequency (integer) – ? частота в Гц (за замовчуванням 4000000)

  • mode (integer) – ? режим SPI, наприклад spi.MODE0 (за замовчуванням spi.MODE0)

Returns:

прийнятий байт або таблиця байтів

Return type:

integer or list[integer]