Banana Pi Zero M2의 "문서"는 혼란스럽고 심지어 재미있습니다. 목표: PWM이 제대로 작동하도록 합니다.
그래서 를 설치하고 armbian
USB OTG 케이블이 올 때까지 일주일을 기다렸다가(기본 SSH가 실패하므로) SSH를 구성하고 다음 단계를 따랐습니다.여기 있어요수정된 배선 pi --utility 를 설치합니다 gpio
. L/H 설정 핀이 유효한 것을 확인할 수 있습니다.
다음 단계는 PWM이 어떻게 작동하는지 확인하는 것이므로 여기서부터 재미가 시작됩니다. 핀아웃은 Raspberry Pi와 동일해 보이며 다음과 같이 주장합니다.
나는 마지막 RPI 0으로 보드를 설계하고 핀 GPIO 12(wiringPi 1)를 사용하여 다음과 같이 했습니다.
# gpio mode 1 pwm
the pin you choose is not surport hardware PWM
you can select PA6 for PWM pin
or you can use it in softPwm mode
따라서 읽으신 것처럼 이것은 "울트라"가 아니며 PA6을 사용해 봐야 합니다.
PA6이 뭔지 잘 몰라서 검색하다가 발견했어요이 주제 주제.
그래서 다음과 같이 설정했습니다.
# gpio mode 7 pwm
you choose the hardware PWM:1
이는 내가 PWM:1을 선택했다는 의미입니다. (1 on?) 물론 듀티 사이클을 설정하고 LED가 켜질 때까지 기다렸지만 앞서 언급한 스레드의 신사처럼 다음과 같은 결과를 얻었습니다.
# gpio pwm 7 100
val pwmWrite 0 <= X <= 1024
Or you can set new range by yourself by pwmSetRange(range
입력한 듀티 사이클 값에 따라 오류가 변경되지 않습니다.
내가 찾은 차선책PWM 오버레이를 추가하고, PWM을 활성화하고, 기간과 듀티 사이클을 설정하겠습니다. 명령이 오류 없이 통과했지만 LED가 켜지지 않습니다. 제한 시작 부분에서 제안한 대로 이제 PWM 라인이 GPIO 15(UART_TXD)에 연결되었습니다.- 맞나요? ?.
이 내 꺼야armbianEnv.txt
# cat /boot/armbianEnv.txt
verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60
overlay_prefix=sun8i-h3
rootdev=UUID=986b3dcb-01f8-4965-8a16-03b55c7341fd
rootfstype=ext4
overlays=i2c0 pwm w1-gpio
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
방금 알아차렸고 i2c0
유틸리티에 의해 추가될 수 있으니 w1-gpio
괜찮을 것입니다.overlays
armbian-config
하지만 나에게 묻는다면:
root@bananapim2zero:~# ls /boot/dtb/ | grep pwm
root@bananapim2zero:~# ls /boot/dtb-6.1.11-sunxi/ | grep pwm
그러한 재정의가 표시되지 않으므로 모르겠습니다.
마지막으로 모든 약어를 이해하고 싶습니다 PA
.GPIO 핀 이름은 여기에 나열되어 있습니다.CON2-
내 말은, 거기에 몇 가지 논리가 있는 것 같지만 왜 이러한 이름 앞에 두 개의 별도 테이블이 있고 두 개의 서로 다른 GPIO CON3-
가 있는지 모르겠습니다 . P{0-24}
UART가 무엇이며 왜스웨터?
주로: PWM을 작동시키는 방법은 무엇입니까? i2c와 w1이 그 뒤를 바짝 따르고 있습니다.
나는 그 대답이 RPI의 대안을 찾는 더 많은 잃어버린 영혼들에게 영감을 줄 것이라고 믿습니다.
감사해요!
답변1
그래 알았어.
어젯밤 늦게 나는 GPIO 40핀 헤더 외부에 공급업체에서 UART라는 라벨을 붙인 3개의 개별 핀이 있다는 사실을 알아차리지 못했습니다.
gpio
유틸리티는 다음 중 하나를 알려줍니다.
그러나 이것은 시각적일 뿐이며, PWM: 7로 설정한 핀에는 레이블이 지정되어 있지 않습니다. 적어도 출력에는 없습니다. 그리고 그것은 작동하지 않습니다. 그래서 시가는 없습니다. 저는 단지 그것이 왜 일어나는지 알고 싶습니다. 왜냐하면 제가 볼 수 있기 때문입니다.dev bontago는 이 보드 목적에 맞게 이 유틸리티를 특별히 조정했습니다..
핀아웃 혼란을 없애기 위해 카드 측면의 Rx UART 핀은 첫 번째 그림과 같이 PWM입니다.
여기에서 OS 수준에서 PWM을 활성화하고 사용하는 방법을 확인할 수 있습니다.
# activate the PWM. On H3 only 1 PWM is supported, so exporting PWM 0
echo 0 > /sys/class/pwm/pwmchip0/export
# set period to 10ms
echo 10000000 > /sys/class/pwm/pwmchip0/pwm0/period
# set normal polarity. needs to be reset explicitly. Bug?
echo "inversed" > /sys/class/pwm/pwmchip0/pwm0/polarity
echo "normal" > /sys/class/pwm/pwmchip0/pwm0/polarity
# enable the PWM
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
# set duty cycle to 1ms
echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
- 예, PWM은 1에서 시작하므로 이를 내보내고 "일반" 극성을 먼저 설정한 다음 익숙한 방식으로 수행할 수 있습니다.
# uname -a Linux bananapim2zero 6.1.11-sunxi #23.02.2 SMP Sat Feb 18 05:52:53 UTC 2023 armv7l GNU/Linux