2017年7月1日土曜日

キックマシン KIK01の作戦検討

サンプリング周波数を48kHzとすると、1周期は1/48kHz≒20.83us。

このサンプリング間隔で処理を終わらせる必要がある。

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でコンパクトにまとめられればかっこいいけど、制約が多いなあ。