8ビット双方向ロジックレベル変換モジュールを試してみた! [Arduino]
I2Cに続いて8ビット双方向ロジックレベル変換モジュールも試してみました。Amazonで入手したノーブランド品です。当然、何も説明書がついていません。まぁなんとなかなるだろうと思いましたが、それが甘かった。
接続するセンサーはSPI対応の加速度センサーです。こちらは完成後ですが、こんな感じで接続しました。
加速度センサーの詳細や使用したスケッチは次の記事を参照してください。
Arduino で3軸加速度センサーを試してみた!
http://makers-with-myson.blog.so-net.ne.jp/2014-03-08
さて、今回はこのモジュールのOE端子の話です。なんの説明書もないので、負論理なのか正論理なのかよく分かりません。
OEなのできっと負論理なのだろうと、最初はGNDに接続してみました。
スケッチを動かしてみました。
どうやら負論理ではないようです。では正論理なのだろうとセンサー側の電源(3.3V)につないでみました。
出力を確認します。
値は出ているものの、Xの値だけがなぜかおかしい。
OEの正負のタイミングで挙動がどう変わるか調べるために、Arduinoの9ピンに接続してみることにしました。説明書がないので適正な電圧レベルがよく分かりませんが、ブランド品のモジュールでは大丈夫なので恐らく問題ないでしょう。
いろいろ試行錯誤した結果、Arduino のSPIの初期化中にロジックレベル変換モジュールのOE(出力)をONにしておくと値がおかしくなる ということが分かりました。
つまり、SPIの初期化コード中はロジックレベル変換モジュールをOFFにして、初期化後にONにする必要があるということです。
再掲になりますが、加速度センサーの駆動やスケッチについてはこちらを参照ください。
Arduino で3軸加速度センサーを試してみた!
http://makers-with-myson.blog.so-net.ne.jp/2014-03-08
あらためて調べてみると、8ビット双方向ロジックレベル変換モジュールはVA側とVB側で対応電圧が違ったり、OEの論理が正負逆だったり、色々なバリエーションがあるようです。
無駄な時間を費やさないよう、説明書付きのものを購入されることをお勧めします。
( ̄▽ ̄;)
接続するセンサーはSPI対応の加速度センサーです。こちらは完成後ですが、こんな感じで接続しました。
加速度センサーの詳細や使用したスケッチは次の記事を参照してください。
Arduino で3軸加速度センサーを試してみた!
http://makers-with-myson.blog.so-net.ne.jp/2014-03-08
さて、今回はこのモジュールのOE端子の話です。なんの説明書もないので、負論理なのか正論理なのかよく分かりません。
OEなのできっと負論理なのだろうと、最初はGNDに接続してみました。
スケッチを動かしてみました。
どうやら負論理ではないようです。では正論理なのだろうとセンサー側の電源(3.3V)につないでみました。
出力を確認します。
値は出ているものの、Xの値だけがなぜかおかしい。
OEの正負のタイミングで挙動がどう変わるか調べるために、Arduinoの9ピンに接続してみることにしました。説明書がないので適正な電圧レベルがよく分かりませんが、ブランド品のモジュールでは大丈夫なので恐らく問題ないでしょう。
いろいろ試行錯誤した結果、Arduino のSPIの初期化中にロジックレベル変換モジュールのOE(出力)をONにしておくと値がおかしくなる ということが分かりました。
つまり、SPIの初期化コード中はロジックレベル変換モジュールをOFFにして、初期化後にONにする必要があるということです。
void setup() { unsigned int res = 0; pinMode(CS, OUTPUT); pinMode(OE, OUTPUT); digitalWrite(OE, LOW); // ロジックレベルコンバータの出力を止める Serial.begin(9600); SPI.begin(); SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE3); SPI.setClockDivider(SPI_CLOCK_DIV2); digitalWrite(OE, HIGH); // ロジックレベルコンバータの出力を開始(SPIでデバイスと通信開始) writeRegister(0x20, 0x27); res = readRegister(0x0F); Serial.println(res); }
再掲になりますが、加速度センサーの駆動やスケッチについてはこちらを参照ください。
Arduino で3軸加速度センサーを試してみた!
http://makers-with-myson.blog.so-net.ne.jp/2014-03-08
あらためて調べてみると、8ビット双方向ロジックレベル変換モジュールはVA側とVB側で対応電圧が違ったり、OEの論理が正負逆だったり、色々なバリエーションがあるようです。
無駄な時間を費やさないよう、説明書付きのものを購入されることをお勧めします。
( ̄▽ ̄;)
【ノーブランド品】TXS0108E 高速 全二重 8チャンネル ロジック レベル コンバーター モジュール
- 出版社/メーカー: ノーブランド品
- メディア: その他
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit
- 出版社/メーカー: vership
- メディア: おもちゃ&ホビー
コメント 0