LinuxCNC + Orange Pi
ARISC драйвер

ARISC драйвер - это компонент программы LinuxCNC/Machinekit, который позволяет программе и всем её компонентам общаться с внешним миром средствами ARISC сопроцессора, встроенного в чипы Allwinner H2/H3/H5. В данный момент ARISC драйвер состоит из двух компонентов - arisc_gpio и arisc_stepgen. Компонент arisc_gpio работает практически также как наш GPIO драйвер. А работа arisc_stepgen очень похожа на работу обычного stepgen.

Параметры запуска компонента arisc_gpio

ВНИМАНИЕ: Нельзя указывать в списке входных пинов те, которые были в списке выходных. Нельзя указывать номера пинов (3,5,7,..). Нельзя указывать название процессора, который не поддерживается. Примеры: # ОШИБКА: процессор Allwinner H6 не поддерживается loadrt arisc_gpio CPU=H6 out=PA12,PA11,PA6,PA13 # ОШИБКА: нельзя указывать номера пинов loadrt arisc_gpio out=3,5,7 # ОШИБКА: пин PA12 указан в обоих списках loadrt arisc_gpio out=PA12,PA11,PA6,PA13 in=PA12,PA14,PA1,PA0


Пины компонента arisc_gpio

Вместо XX надо написать название GPIO пина, указанного в списке входных/выходных пинов. Примеры: loadrt arisc_gpio CPU=H3 out=PA12,PA11,PA6,PA13 in=PA14,PA1,PA0 # --- ПРАВИЛЬНО --- net xstep => arisc_gpio.PA12-out net xdir => arisc_gpio.PA11-out-not net ystep => arisc_gpio.PA6-out net ydir => arisc_gpio.PA13-out net home-x <= arisc_gpio.PA14-in net home-y <= arisc_gpio.PA1-in-not net home-z <= arisc_gpio.PA0-in # --- ОШИБКА --- net xstep => arisc_gpio.PA36-out # нет такого пина net xdir => arisc_gpio.3-out # нет такого пина net ystep => arisc_gpio.PA14-in # на выход указан входной пин net ydir => arisc_gpio.A13-out # нет такого пина net home-x <= arisc_gpio.PA12-out # на вход указан выходной пин net home-y <= arisc_gpio.57-in # нет такого пина net home-z <= arisc_gpio.P0-out # нет такого пина


Функции компонента arisc_gpio

Примеры: loadrt CPU=H3 arisc_gpio out=PA12,PA11,PA6,PA13 addf arisc_gpio.read base-thread # чтение входных пинов addf stepgen.make-pulses base-thread # генерация шагов addf arisc_gpio.write base-thread # запись выходных пинов


Параметры запуска компонента arisc_stepgen


Пины компонента arisc_stepgen

Вместо X надо указывать номер канала (0..7). Если stepspace или steplen равен нулю, будет использоваться динамическая длина шага со скважностью 50%. Пин velocity-cmd не существует, если тип управления канала - по позиции. Пин position-cmd не существует, если тип управления канала - по скорости. Примеры: loadrt arisc_stepgen CPU=H3 ctrl_type=p setp arisc_stepgen.0.position-scale [AXIS_0]SCALE setp arisc_stepgen.0.steplen 0 setp arisc_stepgen.0.stepspace 0 setp arisc_stepgen.0.dirhold 35000 setp arisc_stepgen.0.dirsetup 35000 setp arisc_stepgen.0.step-port 0 # 0=PA, 1=PB, 2=PC, 3=PD, ... setp arisc_stepgen.0.step-pin 12 # PA12 setp arisc_stepgen.0.step-invert 0 setp arisc_stepgen.0.dir-port 0 # 0=PA, 1=PB, 2=PC, 3=PD, ... setp arisc_stepgen.0.dir-pin 11 # PA11 setp arisc_stepgen.0.dir-invert 0 net x-enable arisc_stepgen.0.enable <= axis.0.amp-enable-out net x-pos-cmd arisc_stepgen.0.position-cmd <= axis.0.motor-pos-cmd


Функции компонента arisc_stepgen

Примеры: loadrt arisc_stepgen CPU=H3 ctrl_type=p addf arisc_stepgen.capture-position servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf arisc_stepgen.update-freq servo-thread