При установке или использовании SPI требуется всего лишь вызвать функцию pid_ioctl. Доступными командами функции pid_ioctl для SPI являются слудующие команды:
Команда | Sub-команда | Описание | |
---|---|---|---|
set | lsb | 0 | установить порядок передачи бита: сначала MSB |
1 | установить порядок передачи бита: сначала LSB | ||
data | 8 | установить размер юнита данных: 8 битов | |
16 | установить размер юнита данных: 16 битов | ||
div | [N] | установить деление: 2/4/8/16/32/64/128/256 | |
mode | [M] | установить режим SPI: 0/1/2/3 | |
get | rxlen | получить количество ожидающих байтов в буфере приема | |
txlen | получить количество ожидающих байтов в буфере отправки | ||
req | start | запрос на запись данных | |
reset | запрос на сброс bus |
Вы можете установить режим SPI, порядок передачи битов, размер юнита данных и деление про помощи команды "set".
Вы можете установить 0 или 1 для настройки порядка передачи битов SPI, и значением по умолчанию является 0. Если данное значение установлено на 0, то сначала будет передаваться MSB. Настройка порядка передачи битов следующая:
Порядок передачи битов | Синтаксис |
---|---|
MSB > LSB | pid_ioctl($pid, "set lsb 0"); |
LSB > MSB | pid_ioctl($pid, "set lsb 1"); |
Вы можете установить 8 до 16 в качестве установки размера блока данных, а значение по умолчанию - 8. How to set the size of data unit is as follows:
Размер юнита данных | Синтаксис |
---|---|
8 бит | pid_ioctl($pid, "set data 8"); |
16 бит | pid_ioctl($pid, "set data 16"); |
Скорость передачи данных зависит от деления базовых часов PHPoC. Вы можете выбрать одно из значений скорости деления 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256. Значением по умолчанию является 256. Установить скорость передачи данных можно следующим образом:
Скорость деления | Синтаксис |
---|---|
1 of N | pid_ioctl($pid, "set div N"); |
※ Базовые часы P4S-341/P4S-342 составляют 42MHz. Таким образом, скорость передачи данных составляет приблизительно 164Kbps, если скорость деления установлена на 256.
Вы можете установить один из режимов SPI от 0 до 3, а значение по умолчанию - 3. Как установить режим SPI:
Режим SPI | Синтаксис |
---|---|
mode 0 | pid_ioctl($pid, "set mode 0"); |
mode 1 | pid_ioctl($pid, "set mode 1"); |
mode 2 | pid_ioctl($pid, "set mode 2"); |
mode 3 | pid_ioctl($pid, "set mode 3"); |
Вы можете получить статус SPI, используя команду "get".
Получить количество отложеннных байтов в буфере обмена и отправки можно следующим образом:
Подразделение | Синтаксис |
---|---|
Буфер отправки/Send buffer | pid_ioctl($pid, "get txlen"); |
Буфер приема/Receive buffer | pid_ioctl($pid, "get rxlen"); |
Вы можете запросить запись данных при помощи команды, указанной ниже. Перед использованием данной команды вы должны внести данные для отправки буфера. После записи данных вы должны считать столько данных с ведомого SPI, сколько вы отправляли. Использование команды выглядит следующим образом:
Команда | Синтаксис |
---|---|
Запрос на запись данных/Write Data | pid_ioctl($pid, "req start"); |
Если связь плохая, вы можете сбросить щину SPI при помощи данной команды.
Команда | Синтаксис |
---|---|
Запрос на сброс шины/Request Bus | pid_ioctl($pid, "req reset"); |