エンジニアの電気屋さん

現役エンジニアが電気のトピックについて現物交えてご紹介します。

どうもミソジです。
今回は筆者が持っているラズベリーパイとI2C複数デバイスをつなげてアナライザを使い「I2Cで複数スレーブ接続の波形を見てみた」を紹介します

CPUは1本のI2Cで複数デバイス接続している際でもしっかり何処にデバイスがあるか見つけてくれます。実際にどうやっているかをアナライザで確認してみました


目次
1.ラズベリーパイとI2Cデバイスを複数つなげてみる
2.i2cdetectが何を行っているのか確認する
3.隣接するアドレス間の周期を確認してみる
4.離れたアドレス間の周期を確認してみる
5.まとめ・感想

1.ラズベリーパイとI2Cデバイスを複数つなげてみる
環境構築は前回記事と同じになります。詳細はこちらをご確認ください
実際につなげた写真がこちらとなります。
「ラズベリーパイ」「I2Cデバイスを2つ(EEPROMと加速度センサ)」接続しています
sP_20180512_095551.jpg

回路図的には下記の形になります。「3.3V」「GND」「SDA」「SCL」ブレッドボードにジャンパー接続するだけで簡単に可能です。
※ラズベリーパイのGPIOピン配置は新しい型に合わせています
i2c100.PNG 

そしてラズベリーパイを設定・起動してI2C先にデバイスがいるか「i2cdetect」のコマンドで確認できます。
赤字の50,58がEEPROM青字の68が加速度センサのアドレスになります
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi ~ $ sudo i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- 58 -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --      
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

そしてアナライザをSCL、SDAの箇所に接続して「i2cdetect」しているときの波形を確認します。
sP_20180401_135924.jpg

2.i2cdetectが何を行っているのか確認する
それではi2cdetectで実際どのようにしてデバイスを検知しているのかを確認してみました

i2cdetectのコマンドのデフォルトでは0x03~0x77のアドレスにすべてRead命令してACKが返ってきたものに関してデバイスがあると認識しているようです。
i2c108.PNG
上記のように「0x1*」で各ブロックになっています


「スポンサーリンク」

3.隣接するアドレス間の周期を確認してみる
今回はI2CのクロックのSCLは100kbps(100kHz)ですので1周期10μsになっていることが波形からも分かります
i2c103.PNG


i2cdetectでの各アドレス間の周期はどうなっているのか確認してみます
まず連続でデータを取りにいっている0x20~0x2Fのアドレス周辺の周期を見てみました
i2c110.PNG

5周期ほど確認しましたが結果は「290us,264us,221us,217us,230us」と一定ではありませんでした。
ラズベリーパイ内(Linux)でのデータのやり取り時間があるのですかね?もし今度機会があればRTOSでも確認してみたいと思います
i2c109.PNG


4.離れたアドレス間の周期を確認してみる
あと離れたアドレスのブロックごとの周期を確認してみました。
下記のように「0x2*」~[0x3*]などの各ブロック周期を見てきます
i2c108.PNG

こちらも5周期ほど確認しましたが、やはりこちらも「963us,797us,804us,822us,809us」とバラつきが多くありました。
i2c111.PNG


5.まとめ・感想
「I2Cは指定の周期でほぼずれなくデータやり取りしているんだろうな」と考えていましたがいざ実際に測定してみると、意外にバラつきなどがあり新たな発見でした。

データシート見て確認するのもいいですが、やはり実物の波形見て今一度現実と認識のずれを把握する重要ですね

今日はここまでにしたいと思います
どうもありがとうございました


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






ラズベリーパイで簡単にI2C通信ができます。

EEPROMの詳細は下記となります。

どうもミソジです。
今回は筆者が持っているラズベリーパイとI2Cデバイスをつなげてアナライザを使いI2CのACKとNACKの波形を見てみる」を紹介します

簡単にI2C通信でのACK,NACKを確認するまでの手順を紹介しています。
「自分でI2Cを色々解析してみたい!」という方におススメな記事となっています

目次
1.ラズベリーパイとI2Cデバイスをつなげてみる
2.アナライザを用意する
3.アナライザを使ってI2Cの波形を確認する
4.I2Cの解析してACK/NACKを見てみる
5.まとめ・感想

1.ラズベリーパイとI2Cデバイスをつなげてみる
まずはI2C通信の環境をラズベリーパイを使って作っていきます
ラズベリーパイでのI2Cの動かし方は既に先人たちにより多くの記事がありますので省略したいと思います。「ラズベリーパイ I2C」とググれば多くの参考になる記事がありますので、そちらを参考にしてください

実際につなげた写真がこちらとなります。
「ラズベリーパイ」「I2Cデバイスを2つ(EEPROMと加速度センサ)」接続しています
sP_20180512_095551.jpg

筆者のは少し型が古いラズベリーパイですが、I2Cをつなぐのは新旧ともに簡単にできます。

EEPROMの詳細は下記となります。
EasyWordMall AT24C256 I2C インターフェースEEPROMメモリモジュール
Apple Trees E-commerce co., LT






加速度センサの詳細は下記となります







回路図的には下記の形になります。「3.3V」「GND」「SDA」「SCL」ブレッドボードにジャンパー接続するだけで簡単に可能です。
※ラズベリーパイのGPIOピン配置は新しい型に合わせています
i2c100.PNG

そしてラズベリーパイを設定・起動してI2C先にデバイスがいるかを確認してみましょう
「i2cdetect」のコマンドで確認できました。
赤字の50,58がEEPROM青字の68が加速度センサのアドレスになります

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi ~ $ sudo i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- 58 -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --      
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


アナライザを使って波形を確認したのを次章から紹介してきたいと思います

2.アナライザを用意する
I2Cの波形を見たいと思いますが、今回はACKとNACKを見ますのでアナライザを使って確認していきます。最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。

筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。(値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
sP_20171104_120005.jpg

本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です



但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。PCとUSB接続してI2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします





「スポンサーリンク」

3.アナライザを使ってI2Cの波形を確認する
アナライザをSCL、SDAの箇所に接続して「i2cdetect」しているときの波形を確認します。
実際行ったときの写真が下記です
sP_20180401_135924.jpg

回路ベースですと下記箇所「SDA」「SCL」をアナライザに繋げています。
i2c100.PNG

そして実際にとれた波形の一部が下記です。無事SDA、SCLの波形を取れました
i2c102.PNG

今回はI2CのクロックのSCLは100kbps(100kHz)ですので1周期10μsになっていることが波形からも分かります
i2c103.PNG


これでアナライザで無事波形取ることができました。

4.I2Cの解析してACK/NACKを見てみる
それではI2Cのデータの解析を行っていきます。解析する設定をI2Cに設定します
i2c101.PNG


解析設定するだけでI2Cのビット情報、そしてデータの「アドレス」「R/W」「ACK/NACK」が確認できました。
i2c104.PNG


これでACK,NACKが確認できるようになりました。
それではACK,NACK時のSDA,SCLの波形を確認していきたいと思います

先ほども記載しましたが、デバイスのアドレスがある箇所はi2cdetectで読み取れている(ACKが返ってきている)ということなので、今回の例では下記2例を見ていきたいと思います
①ACKが出てると思われるアドレス「50」
②NACKになっているアドレス「03」

赤字の50,58がEEPROM青字の68が加速度センサのアドレスになっています
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pi@raspberrypi ~ $ sudo i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- 58 -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --      
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

①ACKが出てると思われるアドレス「50」
狙い通りEEPROMから「ACK」が返ってきてデバイスがあることを確認できました。
i2c105.PNG

ACKの箇所のアップが下記となります。
Readの後にデバイス側からSDAをLow(1⇒0)に出力していて、ACKが返ってきている形となっています
i2c106.PNG


②NACKが出ているアドレス「03」
やはり何もデバイスが無いためReadしても何も反応がなくNACKと判断しています
i2c104.PNG

NACK箇所のアップは下記となります。
Read後にデバイス側から何も出力がされずHi(1)のままとなっておりNACKという形になっています
i2c107.PNG


5.まとめ・感想
どうでしたでしょうか、最近では1000円足らずでI2Cを測定・解析することができます。
今回はi2cdetect時のACKとNACKに焦点を当てていましたが、応用すればR/W時のI2Cのスタートからストップまでのデータも詳細に確認できます。

データシート見て確認するのもいいですが、やはり実物の波形見ることでよりI2Cの理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください

今日はここまでにしたいと思います
どうもありがとうございました


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






ラズベリーパイで簡単にI2C通信ができます。

EEPROMの詳細は下記となります。

どうもミソジです。

今回は筆者が持っている「実用的」かつ「使える」おすすめ工具の紹介で「ニチフの圧着端子 使用頻度が多いサイズ(品番)を確認してみた! 使用レビューを紹介します

目次
1.ニチフの圧着端子
2.Y端子と丸端子
3.品番構成
4.実際に使用頻度が多いサイズ(品番)
5.圧着工具
6.圧着工具(参考扱い・余談ネタ)
7.まとめ・感想

1.ニチフの圧着端子
圧着端子のメーカは国内・国外含めると数多くありますが、筆者が一番お世話になっているのがこの「ニチフ」の圧着端子です。
sP_20180401_062154.jpg

日本の老舗メーカで安心して使用することができます。またラインナップも豊富で用途にあった端子を選択することが可能です。下記写真は筆者の持っている圧着端子を載せただけの一例です。
(他にも多くの種類の圧着端子がありますので詳細はニチフのサイトで確認お願いします)

sP_20180401_062351.jpg


アマゾンでの製品・詳細ページは上記リンク先となります




今回はニチフの圧着端子を簡単に紹介すると共に、(筆者の)一番使用頻度の多いサイズ(品番)が何処に使われているかを次章から紹介してきたいと思います

2.Y端子と丸端子
圧着端子で一番目の違いで出てくるのはY端子と丸端子ですね。
ニチフの正式の呼び方としてはY端が「銅線用裸圧着端子(Y形)先開形」、丸端が「銅線用裸圧着端子(R形)丸形」ということらしいです

サイズ一緒でY端子か丸端子だけ違うものが下記写真です
左がY端子の「1.25Y-3」、右が丸端子の「R1.25-3」
sP_20180401_062523.jpg

sP_20180401_062719.jpg

Y端子と丸端子の違いは見てのとおりで取り付ける端子形状が異なっています
コメントするまでもないと思いますがY端子のメリットは取り付けが容易。丸端子のメリットは簡単に外れないことがよく挙げられます。
sP_20180401_071420.jpg

sP_20180401_071637.jpg

 


「スポンサーリンク」

3.品番構成
品番構成については、筆者が説明するよりニチフのサイトで確認してもらった方が分かりやすいのでリンク先を貼っておきます。Y端子がこちら。丸端子がこちらです
ここでは一例をあげて品番構成がどのようにサイズに影響してくるかを紹介します

「1.25Y-3」を例とすると「1.25」が圧着する電線に影響して、「Y-3」が取り付ける端子台に影響してきます
sP_20180401_075707.jpg

sP_20180401_075453.jpg

例えば取り付ける端子台がM3のネジならば「1.25Y-3」はOKで「1.25Y-4M」はNGとなります
下記写真のようにM3の端子台に対して1.25Y-4Mはスタッド径が大きすぎて取り付けることができません。
sP_20180401_084624.jpg


4.実際に使用頻度が多いサイズ(品番)
そして(筆者の)使用頻度が多いサイズ(品番)は「1.25Y-3」です。
この使用頻度に関しては人によって様々だと思いますが、結構な人が1.25Y-3が多いのではと思っています。(AC100V・200Vで大電流扱っている方はもっと大きいサイズになっていしまうと思いますが…)
sP_20180401_062933.jpg

アマゾンでの製品・詳細ページは上記リンク先となります




理由としては、筆者はDC24V,DC12V系の装置・機器を使うのですが端子台形状がM3対応品が多いためです。筆者のブログで良く出てくる「24V電源」「シーケンサ(PLC)」「リレー」「タイマー」「端子台」は全て1.25Y-3で対応しています。

おそらくDC24V,DC12V系を使う方で「圧着端子の型番どうしよう?」と考えた方は「1.25Y-3」をおススメしときます
sP_20180401_063251.jpg

5.圧着工具
圧着工具に関してですが、仕事として使う場合は正式な圧着工具はメーカ純正品を使うべきですね。
例えば今回紹介した「1.25Y-3」の圧着端子にはニチフの「NH1」が純正品となっています

アマゾンでの製品・詳細ページは上記リンク先となります


但し、個人・プライベートで使う場合には他工具メーカから対応した圧着工具が売られていますのでそちらも探してもいいと思います。圧着工具などは規格で決めれらているので、対応した圧着工具ならば基本問題ないと考えています

アマゾンでの製品・詳細ページは上記リンク先となります



6.圧着工具(参考扱い・余談ネタ)
ここからはあくまで参考扱い・余談ネタ。

筆者も圧着工具を持っていますが、1.25Y-3に対応した圧着工具をまだ持っていません。
(こんなに偉そうに紹介しているのにすみません…m(-_-)m。工具はそれなりに値段がかかるのでプライベートの財布には結構厳しいです)

筆者が持っているのは、どちらかというと1.25Y-3よりもう少し大き目に対応したホーザン製P737です。以前の紹介した記事にもあった非常にコストパフォーマンスが高い「電気工事士技能試験工具セット」のセットに入ってきたものです。
sP_20180304_104751.jpg 

ホーザン(HOZAN) 電気工事士技能試験工具セット P-958VVFストリッパー P-737リングスリーブ用圧着工具入組 DK-18
ホーザン

アマゾンの詳細・製品ページは上記リンク先です




本来はリングスリーブといった圧着工具で複数の電線をまとめて圧着する用途が多いのかもしれませんが、1.25Y-3にも一応(?)圧着できています。
(本当に一応ですので、お金に余裕がある方は対応した圧着工具をおススメします)

sP_20180304_104804.jpg 

sP_20180304_104922.jpg 

多くの人がプライベートで持てる工具には限りがあると思いますので対応した圧着工具が無くてもあきらめず一度試してみるのもいいかもしれません。(あくまで個人・プライベートでの自己責任扱いでお願いします)

6.まとめ・感想
圧着端子は細かいもの含めると本当に数多くの種類がありますが、やはり仕事・プライベートでも「1.25Y-3」が使われるケースが多いと思います。

圧着端子は電気工作・DIYでも使い道は多々ありますので一つ持っておくと何かと便利です。

今日はここまでにしたいと思います
どうもありがとうございました


アマゾンでの製品・詳細ページは上記リンク先となります




アマゾンでの製品・詳細ページは上記リンク先となります






↑このページのトップヘ