koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

続 Windows と Raspberry Pi の PWM制御 事情

Windows と Raspberry Pi の PWM制御 事情 - koudenpaのブログ で Raspberry Pi のハードウェアPWM制御がどうこうと書いていたけれど、リリースノート にちゃんと事情が書いてあるような気がした。

以下抜粋。

Raspberry Pi audio and direct memory mapped drivers (6678121)

On Raspberry Pi, audio via the 3.5mm jack stops working when the direct memory mapped > > drivers are enabled.

WORKAROUND: After the direct memory mapped drivers have been enabled, run:

reg add HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DeviceIds\ACPI\BCM2844 /v dmap.inf /t REG_BINARY /d 02ff0100
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\enum\ACPI\bcm2844\0 /v ConfigFlags /t REG_DWORD /d 0x20
devcon restart acpi\bcm2844

Verify that the driver for the PWM device node is BCM2836 PWM Controller:

C:\Data>devcon status acpi\bcm2844
ACPI\BCM2844\0
    Name: BCM2836 PWM Controller
    Driver is running.
1 matching device(s) found.

いい感じに音を鳴らすための処理とハードウェアPWMでリソースが食い合っているから、音を無効化指定してやるとSoC? のPWMコントローラが有効になるようだ。

より詳しい事情は、PWMドライバのリポジトリリドミーに書いてあった。

bsp/drivers/pwm/bcm2836 at master · ms-iot/bsp · GitHub

音声殺したり、レジストリを弄ってまで1チャンネルのPWMを試してみるエネルギーはないので、そっとしておくことにした。