2016年10月20日木曜日

ベースマシン UI ControllerとSequencerのSPI通信でSequencer(Slave)の近くにダンピング抵抗を入れてみる。

UI Controller(Master)側のシールド上で抵抗を入れたり、コンデンサを入れたりいろいろしてみたが、長時間動作させたりRESETしたりすると通信がうまくいかなくなる場合がある。

オシロのプローブを当てるとほとんどの場合動作するので原因特定が難しい。思いつきだが、Sequencer(Slave)の出力ピンの近くにダンピング抵抗を入れてようすをみることにした。

Nucleo BoardのMorphoヘッダはオスなので、オス - <メス-抵抗-オス> - メスという風になるように抵抗を加工した。


QIピンのオスとメスを抵抗に直に圧着して、熱圧縮チューブで絶縁した。

ピンヘッダとピンソケットを1Pinに分割してはんだ付けすれば同じようにできるが、QIピンのメリットは
ピンヘッダやピンソケット(のプラスチック部分)に比べて細いのでピンが混み合っているところでも挿せる。
デメリットは
値段が高い。
慣れないととうまく圧着できないし、慣れてもたまにミスるので結構な出費になります。
QIピンは専用?のカバーが売っているので使ってるが、1Pの場合は熱圧縮チューブでカバーしたほうが扱いやすいと思う。

Sequencer(Slave)のMorpho Headerに挿したようす


Sequencer(Slave)のSPIのMISOとSlave->Masterへの割り込み線にだけダンピング抵抗を入れた。

MISO信号波形


Master側の入力部分で測定した。

ダンピング抵抗なし


ch1:MISO ch2:SCK

ダンピング抵抗 47Ω


ダンピング抵抗 100Ω


ダンピング抵抗 220Ω


MISO信号波形(拡大)


ダンピング抵抗なし

ch1:MISO ch2:SCK

ダンピング抵抗 47Ω

ダンピング抵抗 100Ω

ダンピング抵抗 220Ω

Slave->Master割り込み線


ファームウェアを変更してH/Lの間にwait_us(1)を入れてみた。波形の幅が広くなったので適当でよさそう。

ダンピング抵抗なし

ch1:Interrupt(Slave->Master)

ダンピング抵抗47Ω