2016年6月12日日曜日

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

以前やった「Nucleo F401RE(mbed)でシーケンサーを作るつもりで入出力デバイスのテスト。」にSPIでDCOにシーケンスを送信するSpiSequenceSenderクラスを組み込んでみた。

配線図


mbed repository:
https://developer.mbed.org/users/ryood/code/Nucleo_SPI_Sequencer/

Github(PSoC4 DCO):
https://github.com/ryood/PSoC4_DCO/tree/master/PSoC/PSoC4_DCO_for_NucleoF401RE_Interrupt_Test.cydsn

LCDの表示は文字のみだが、pitch、octave、tie、waveShape、BPM、pulse widthはリアルタイムに変更できた。

メモ:


LCDを表示させてロータリーエンコーダを回すとシーケンスが遅れる。LCDをオフにすると大丈夫なようだ。
→どこに原因があるか特定する。SPI信号を受け取ってダンプする、なんちゃってLogic AnalizerをArduinoあたりで作ってみる?

RTOSTimer::stop()が効かない
→単体テストしてみる。

シーケンスの組み方でたまに異音がする。どこかの計算を間違えていると思う。

再生中に現在位置をLCDに表示するために、SequenceSenderクラスにコールバック関数を作ってみる?

DCFやVCAにどのクラス/関数でSPI出力するかもう一度整理。