mbedのライブラリ
MCP3208用のライブラリをMCP3008用に書き換えてみた。
mbed repository:
Library:
https://developer.mbed.org/users/ryood/code/mcp3008/
Test Program:
https://developer.mbed.org/users/ryood/code/Nucleo_MCP3008_Test/
ライブラリのA/Dコンバーターの差動入力はテストしていないのでコメントアウトしている。
ブレッドボード配線図
MCP3008に送る電源は5Vでも3.3Vでもよい。
5V電源のほうがSPIのクロックを上げられるが、Nucleoに載っているMPUが3.3V駆動なので、Nucleo→MCP3008のSPI信号が3.3Vになり、一応はMCP3008の仕様外になる。Nucleoの方は3.3V駆動だが、5VトレラントなのでMCP3008→Nucleoの信号レベルが5Vでも問題はない。
3.3V電源だとSPIのクロックの最大値が低くなる(1.35MHz@2.7V)が、3.3V系同士なので信号レベル的には安心。
UART出力
ダンピング抵抗を入れてみる。
出力の近くにダンピング抵抗を入れるとオーバーシュートや振動が抑えられるので入れてみた。
mbed repository:
https://developer.mbed.org/users/ryood/code/Nucleo_MCP3008_Ticker_Test/
配線図
NucleoにArduino互換のシールドを載せている。(参考:「ベースマシン UI Controller ダンピング抵抗用シールドの製作」)シールド上でピンソケットを使ってダンピング抵抗を入れられるようにしている。SCK、MOSI、CSに33Ωの抵抗を挿入、MISOはジャンパでショート。
また、SPI通信用のケーブルは、30cm程度のものを2本コネクタでつないでわざと状態を悪くしている。
ダンピング抵抗なし
MOSI
ch1:MOSI ch2:SCK
MISO
ch1:MISO ch2:SCK
SCK、MOSIはNucleoが出力している信号で、オーバーシュートや振動がかなり出ている。
33Ωダンピング抵抗あり
MOSI
ch1:MOSI ch2:SCK
MISO
ch1:MISO ch2:SCK
33Ωだと多少整形されている感じ。ようすを見ながら差し替えられるようにしておいた方が良さそう。
0 件のコメント:
コメントを投稿