このサンプリング間隔で処理を終わらせる必要がある。
ICの仕様クロック内で処理時間を比較してみた。
1 | F446内蔵DAC | 0.7us | OK |
2 | F303内蔵DAC | 2.8us | OK |
3 | F446+MCP4922(11.29MHz駆動) | 7.36us | OK |
4 | F303+MCP4922(16MHz駆動) | 21.04us | NG |
5 | F446+AD8403(5.63MHz駆動) | 7.82us×2 | OK |
6 | F303+AD8403(8MHz駆動) | 20.8us×2 | NG? |
サイン波VCO(周波数変調)
1~4はマイコン内で波形生成+周波数変調を行い、DACを発振器の出力として使う。
5、6はアナログ正弦波発生器のRをデジタル・ポテンショメータで制御する。この場合出力は周波数変調用のエンベロープを出力すれば良いから、サンプリング周波数はもっと低くてもいいかもしれない。
F446を使えばどれも使えそうだが、F303は内蔵DACでないと処理が間に合わない。
VCA(振幅変調)
1~4はDACの出力値を電圧→電流変換し、OTAのNJM13600をVCAとして使う。
一旦アナログ信号に変換するので、エンベロープはリニア波形でいいかも?サンプリング周波数ももっと低くていいかも?
5、6はOPAMPの増幅回路と組み合わせてVCAとして使うことができそう。
UI系の処理
UI系の処理は波形生成よりプライオリティを下げて、干渉しないようにする。
POT+ADC
POTの分圧値の読み取りはF446は入力数を絞れば内蔵ADCで間に合うかも。F303は外付けADCが必要になりそう。ADCが8chでDACに1ch取られる。
RotaryEncoder
RotaryEncoderを使うと必要な端子数は増える(1操作子あたり2Pin)が、処理時間は短縮できるかも?←要確認。
状態を確認するために表示器(LCD、LEDなど)が必要になるかも?
Nucleo F303K8でコンパクトにまとめられればかっこいいけど、制約が多いなあ。
0 件のコメント:
コメントを投稿