비글보드 PWM 컨트롤 by C

Posted by 빵빵빵
2015/11/26 10:25 공작/비글보드



출처 : http://stackoverflow.com/questions/29369616/beaglebone-black-pwm-using-c

비글보드의 PWM이나 GPIO를 컨트롤 하기 위해서는 특정 파일을 접근하여 조작한다.
아래 예제 소스에서는 내 보드와 파일 이름이 달라(OS 버전별로 조금 다른가보다) 작동하지 않을 수 있지만 일단 프로그래밍 기법 참고용으로 저장한다.
내 보드에 맞는 파일은 예제 소스 아래에 기록한다.




내 보드에 맞는 파일 이름 및 PWM 컨트롤 순서
cape 등록 echo cape-universaln > /sys/devices/bone_capemgr.*/slots  
핀설정 조회 config-pin -l P9.16  
PWM 설정 config-pin P9.16 pwm  
 echo pwm > /sys/devices/ocp.*/P9_16_pinmux.*/state  
pinmux 상태 확인 cat /sys/devices/ocp.*/P9_16_pinmux.*/state  
export echo 4 > /sys/class/pwm/export  

export    pin
number, name, pins
 0 EHRPWM0A P9.22,P9.31
 1 EHRPWM0B P9.21,P9.29
 2 ECAPPWM0 P9.42
 3 EHRPWM1A P9.14,P8.36
 4 EHRPWM1B P9.16,P8.34
 5 EHRPWM2A P8.19,P8.45
 6 EHRPWM2B P8.13,P8.46
 7 ECAPPWM2 P9.28
   
 echo 500000 > /sys/class/pwm/pwm4/duty_ns  
 echo 1000000 > /sys/class/pwm/pwm4/period_ns  
 echo 1 > /sys/class/pwm/pwm4/polarity  
 echo 1 > /sys/class/pwm/pwm4/run  
run이 1인 상태에서 polarity 값을 바꿀 수 없다.   

참고사항
cape 해제 : echo -cape번호 > /sys/devices/bone_capemgr.*/slots
부팅시 cape 등록 : uEnv.txt에 적으면 되지 않을까?????

2015/11/26 10:25 2015/11/26 10:25

이 글에는 트랙백을 보낼 수 없습니다