2016年6月3日金曜日

NucleoシーケンサーとPSoC4 DCOのテスト(その1)

シーケンサーをArduino UnoからNucleo F401REに移行してベース・シンセをつくる方向で考えみた。

しばらくかかりそうなので分割して記事にしていくつもりです。

全体の構成案


アナログ・シンセと同じ様に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シールドが動作するか要テスト。