문제

Beglebone이 비글 비폰 블랙을 사용하고 있습니다.

방금 PWM을 출력하려고 시도했으며 이러한 빠른 장치에서 일부 메가 헤르즈의 잠재적 인 주파수를 기대했습니다.
나는 100Hz가 sysfs를 통해 설정할 수있는 정확한 최대 값이라는 것을 알았습니다.
나는 예를 들어 온라인으로 파기를 시작했으며 한계는 언급하지 않았지만, 그들은 또한 100Hz보다 빠른 가치를 나타내지 않았습니다.

예 :

root@beaglebone:/sys/class/pwm/ehrpwm.0:0# echo 10000000 >  period_ns 
root@beaglebone:/sys/class/pwm/ehrpwm.0:0# echo 1000000 >  period_ns 
-sh: echo: write error: Invalid argument
root@beaglebone:/sys/class/pwm/ehrpwm.0:0# echo 200 >  period_freq 
-sh: echo: write error: Invalid argument
root@beaglebone:/sys/class/pwm/ehrpwm.0:0# echo 101 >  period_freq 
-sh: echo: write error: Invalid argument
root@beaglebone:/sys/class/pwm/ehrpwm.0:0# echo 100 >  period_freq 
root@beaglebone:/sys/class/pwm/ehrpwm.0:0#
.

10cent AVR은 그보다 더 빨리 PWM을 수행 할 수 있습니다.
내가 놓친 몇 가지 트릭이 있습니까? 100 Hz보다 빠른 빈도를 원한다면 Manuallz 토글 (GPIO)을 마누냥 토글 (GPIO)으로 만들어야합니까?!

도움이 되었습니까?

해결책

나는 실제로 내 질문을 시작한 직후에 솔루션을 발견했다.
나는 이것이 내가 실제로 나를 궁금해하는 것보다 더 많은 것보다 더 많은 것을 일으킬 수 있다고 생각하는 것처럼 여기에 게시 할 것입니다 :)

PWM 주파수는 물론 1GHz 장치에서 그런 식으로 제한되지 않으며, 커널 드라이버는 기대할 수있는 것과 같은 방식으로 작동하지 않습니다.

듀티 _Percent 값 (1 %)을 입력하면 운전자가 IT에서 듀티 _ns 가치를 계산하고 나중에 퍼센트를 잊어 버린 것처럼 보입니다.
정상적인 사용자는 그가 "퍼센트 모드"라고 생각할 것이지만 실제로 백분율 파일은 랩퍼에 묶여 도움이됩니다.
주파수에 대한 동일한 카운트!
이제 주파수를 더 높은 값으로 변경하면 커널은 듀티 _NS 사이클 기간이 새 TOTER_NS에 맞는지 확인합니다!
실제로 백분율을 설정했음을 무시합니다!

이므로 전체 기간보다 큰 온 기간이 없으므로 실패합니다.

긴 텍스트 짧은 요약 :


항상 DUTED_CYCLE을 설정하기 전에 DUTED_CYCLE을 0으로 설정하십시오. 이전 값이 새 기간에 맞지 않으면 좌절감을 피합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top