Режим PWM


Режим PWM - это режим широто-импульсной модуляции, поэтому синтаксис практически совпадает с импульсным режимом, но с небольшой разницей.

st_set_pwm 01

Доступны следующие команды в режиме PWM:

Команда Подкоманда Описание
set mode output pwm set mode: PWM
div sec set unit: second
ms set unit: millisecond
us set unit: microsecond
output od open-drain
pp push-pull
low output LOW
high output HIGH
dev uio0 #pin set output device and pin
invert 0 not invert output
1 invert output
count [T1] [T2] set output timing parameters
delay [D] set delay
trigger from st# set trigger target: st0 ~ st7
php set trigger target: none
reset - reset
get state get current state
start - start
stop - stop

Задать значения счетчика

Значения счетчика определяют время для изменения уровней. В режиме PWM требуются 2 значения счетчика. Как установить значения:

Команда Синтаксис
set count pid_ioctl($pid, "set count T1 T2");

Доступные значения счетчика в режиме pwm:

Юнит Доступные значения счетчика (0 ~ полчаса)
microsecond 0, 10 ~ 1,800,000,000
millisecond 0 ~ 1,800,000
second 0 ~ 1,800

На схеме ниже показан сигнал в случае установки T1 и T2 с задержкой D в режиме PWM.

st_set_pwm 02

Настройка триггера

Данная команда используется, когда вам необходимо синхронизировать время начала ST с другим ST. Целью триггера должно быть одно из устройств ST.

Цель Синтаксис
ST(st0/1…) pid_ioctl($pid, "set trigger from st0");
php pid_ioctl($pid, "set trigger from php");

Значением по умолчанию для цели триггера является "php"(без цели).

Пример режима PWM

Пример режима PWM

$pid = pid_open("/mmap/st0");              // open ST 0
pid_ioctl($pid, "set div sec");            // set unit: second
pid_ioctl($pid, "set mode output pwm");    // set mode: PWM
pid_ioctl($pid, "set output dev uio0 0");  // set output dev / pin: uio0 / 0
pid_ioctl($pid, "set count 1 1");          // set count values: 1 and 1
pid_ioctl($pid, "start");                  // start ST
sleep(10);
pid_ioctl($pid, "stop");                   // stop ST
pid_close($pid);

Схема ниже показывает форму сигнала приведенного выше примера.

st_set_pwm 03