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) – ? номер піна MISOmosi (
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]