frame sync pwm 설정

avs100

  • avs100의 framesync는 pwmchip2을 사용합니다.

  • HZ에 원하는 주파수를 입력하면 됩니다.

BASE_PATH=/sys/class/pwm/pwmchip2
HZ=30

PERIOD=$((1000000000/$HZ))
DUTY=$(($PERIOD/2))

if [[ ! -d $BASE_PATH/pwm0 ]]; then
    echo 0 > $BASE_PATH/export
    sleep 1
fi

echo 0 > $BASE_PATH/pwm0/enable
echo $PERIOD > $BASE_PATH/pwm0/period
echo $DUTY > $BASE_PATH/pwm0/duty_cycle

echo 1 > $BASE_PATH/pwm0/enable

avs101

  • avs101의 framesync는 i2c 7 bus에 연결된 Micom pwm generator를 이용합니다.

HZ=30

i2cset -y 7 0x44 1 $HZ

avs200

  • avs200의 framesync는 pwmchip3을 사용합니다.

  • HZ에 원하는 주파수를 입력하면 됩니다.

BASE_PATH=/sys/class/pwm/pwmchip3
HZ=30

PERIOD=$((1000000000/$HZ))
DUTY=$(($PERIOD/2))

if [[ ! -d $BASE_PATH/pwm0 ]]; then
    echo 0 > $BASE_PATH/export
    sleep 1
fi

echo 0 > $BASE_PATH/pwm0/enable
echo $PERIOD > $BASE_PATH/pwm0/period
echo $DUTY > $BASE_PATH/pwm0/duty_cycle

echo 1 > $BASE_PATH/pwm0/enable

부팅 시 PWM 설정 자동화

  • /etc/systemd/system/pwm-framesync.service 파일을 수정 후, 재 부팅 하면적용됩니다.

  • ‘pwm_autorun.sh 30’ 부분을 원하는 주파수(HZ)로 수정하면 됩니다.

[Unit]
Description=auto run avs200 pwm daemon

[Service]
Type=simple
ExecStart= /etc/pwm_autorun_service/pwm_autorun.sh 30
ExecStop= /etc/pwm_autorun_service/pwm_autorun_stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target