2016年10月16日日曜日

ベースマシン UI Controller ダンピング抵抗用シールドの製作


回路図

基板図

ダンピング抵抗はピンソケットを使って差し替えられるようにした。シールドを載せるとNucleoボード上のリセットボタンが押せなくなるので、シールド上にリセットボタンを付けた。

Master側からSlaveにリセットをかけられるようにResetボタンとは別にSlaveのReset端子につなぐGPIOを1本割り当てた。

配線図

UI Controller(SPI Master)

Sequencer(SPI Slave)


SPI信号波形


ダンピング抵抗はすべて33Ωにして測定


MISO

ch1:MISO(ダンピング抵抗のSlave側) ch2:sck


ch1:MISO(ダンピング抵抗のMaster側) ch2:sck

MOSI

ch1:MOSI(ダンピング抵抗のSlave側) ch2:sck

CS

ch1:CS(ダンピング抵抗のSlave側) ch2:sck

Slave->Master Interrupt

ch1:Interupt(ダンピング抵抗のSlave側)


ch1:Interupt(ダンピング抵抗のMaster側)

メモ:


Masterの出力の近くにダンピング抵抗を入れてSCK、MOSI、CSは波形がきれいになったようだ。(参考「ベースマシン UI ControllerとSequencerのSPIの信号線にダンピング抵抗を入れてみる。のSPI信号の波形」

MISOとInterruptはSlaveからの出力なのでMasterの近くに抵抗を入れてもやはりあまり効果がない。Sequencer(Slave)の近くに抵抗を入れるのは少々難しそうなので、波形なまるのを覚悟のうえでもっと抵抗値をあげてみる?ケーブルを加工してダンピング抵抗を入れてみる?

まだときどきSlave->Masterの通信がうまくいかない。オシロスコープのプローブをあてておくと動作することが多い。ノイズや振動の影響で読み取りをミスってるのかなあ??プローブ内のCR類がたまたま、うまい具合に波形を整形してくれているのか。

ToDo:


UI Controller <-> Sequencer間のSPI通信の信頼性をあげる。

Sequencer→DCO、DCF、DCAのSPI信号を補強する(こちらも動作があやしい感じのときがある)。現状でもSlaveが3つあるので(CSがインアクティブの時はSlave側はHiZになってると思うが)余裕をもってドライブできるようにバッファICを入れてみる。

Sequencerのファームウェアを点検して休符時にブツブツ言うのを修正する。Durationが短いときにブツブツ言うようだ。←めんどくさい(TqT;

4x4キーパッドを使ってシーケンスの切り替えができるようにする。

やりたいことはいろいろあるが、安定して使えないと楽器として使えないので安定度を上げるのが最優先だ。