しばらくかかりそうなので分割して記事にしていくつもりです。
全体の構成案
アナログ・シンセと同じ様にVCO→VCF→VCAとアナログ波形を流して加工する(オレンジ色の部分)。音階やモジュレーションは、Nucleo SequencerからSPIで制御する。
Nucleo SequencerとPSoC4 DCOは現在テスト中のもの。SPI Digi POT + VCVS LPFはAruduinoのシールドとして製作した。
OTAはNJM13600/13700である程度テストしたがDACによるコントロールのテストはまだ。
NucleoシーケンサーとPSoC4 DCOのテスト
配線図
Nucleoシーケンサー
UI系は省いてプログラムに直書きしたパラメータを送るようにしてテスト中。
mbed repogitory:
https://developer.mbed.org/users/ryood/code/SpiSequenceSender_Test/
PSoC4 DCO
Arduino用に作ったもの(「Arduino UnoをシーケンサーにしてPSoC 4 DCOを制御する。」)を多少改変した。
矩形波、ノコギリ波を切り替えて出力できて、矩形波はPulth Widthが可変。
PSoC CreatorのTopDesign
Github:
https://github.com/ryood/PSoC4_DCO/tree/master/PSoC/PSoC4_DCO_for_NucleoF401RE.cydsn
問題点
出力波形がたまに遅れるようだ。
範囲選択したあたりで、シーケンス1周のうち1回か2回。UARTとLCDは無効化しても出るので、タイマー割り込みとSPI通信の絡みかな?地味にテストしていくしかないか(^q^;
NucleoはArduinoのシールドが載せられるが、VCVS LPFシールドが動作するか要テスト。
0 件のコメント:
コメントを投稿