JA5WAFさん
JE1RAVさん
こんばんは、JI3RLY/K8RLYです。
ラズパイPicoはCircuitPythonを用いて
pwm = pwmio.PWMOut(GP16, frequency=50550000)
で、41.66MHzです
JA5WAFさんのご丁寧な解説で
>PWMの基本周波数とDuty比をどのように設定されているの
>かわかりませんが、
Dutyは1〜99まで可変させても周波数に影響しないようです。
>RPI Picoのシステムクロックがデフォルトの125MHzでPWM
>の基本周波数も同じということであれば、
>>41.66MHz = 125/3MHzということでシステムクロックを
>>3分周したものということになります。
その通りだと思います。
>PWMの基本周波数はシステムクロックから分周して
>作られますので、分周比が小さい場合には設定周波数と
>実際に設定される周波数に大きな誤差が発生します。
>上記の場合、50.550MHzを設定するとそれに最も近い
>周波数としてシステムクロックを3分周した
>>41.66MHzが設定されたのだと思います。
>RPI Picoの動作としては正しい動作です。
1MHz以上に設定すると、ちぐはぐな周波数を出力
していますが、落ち着いて計算してみると納得です。
CircuitPython自体、1MHz以上を想定していないので
こういった挙動をするのでしょうか?
JE1RAVさんの
>ESP32のI2S用クロック発振器(Audio PLL)も
>使えそうな気がします(未検証)。
>Si5351ほどの分解能はありませんが、分数分周器が
>使えるようです。
更にJA5WAFさんの
> https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
> ↑
> 上記ドキュメントをさらっと見てみましたが、結構細かく周波数設定できるようですね。
> それと送信機のキャリア信号として使用する際に重要なジッタ特性にも優れているとのこと。
>
> https://www.reddit.com/r/esp32/comments/sixqlm/best_way_to_generate_50mhz_clock_signal_output_on/
> ↑
> 既にこんなことを検討されている方もいらっしゃるようです。
> 皆考えることは同じということでしょうか。
I2CでSi5351にdata送るより、マイコンで完結するって
面白いですね。
さらにADコンバータの制度次第ですが、数値演算変調を
手軽に出来ればもっと面白そうです。
私の食い散らかしは、何処へ行くやらHiHi