[IF] I2CのGeneral Callとは?どんなICでも使える?


I2CのGeneral Callって?

I2C通信に対応しているICなどのデータシートを見ると、General Call(ジェネラルコール、ゼネラルコール)という言葉を見ることがちょくちょくある。このGeneral Callとは何か簡単にまとめた。

General Callはmasterから複数のslaveに対して同時にデータを送信すること

まず、I2Cの通信では、データを送信する側をmaster(マスタ、マスター)、データを受信する側のslave(スレーブ、スレイブ)と呼ぶ。

slaveにはそれぞれaddress(アドレス)が割り振られており、masterがslaveにデータを送信するときには、基本的にはどれか一つのslaveのアドレスを指定してデータを送信する。



※I2Cではslaveのアドレスの長さは色々あるが、ここでは7bitで表現している。

ただし、masterがデータの送信先アドレスを000 0000としてデータを送信すると、接続されている全てのslaveにデータを送信することができる。この送信方法をGeneral Callといい、このアドレス0をGeneral Call Addressと呼ぶ。




I2Cに対応しているICなら必ず使える?

結論から言うと、I2Cで通信できるICがすべてGeneral Callに対応しているわけではない。例えば、以下のマキシムの電源ICはI2C通信に対応しているが、General Callには対応していないとデータシートに明言してある。

https://www.maximintegrated.com/jp/products/power/switching-regulators/MAX77801.html

私の経験ではGeneral Callを使わないといけないというケースはそんなに無い気がするが、General Callで通信する必要がある場合には、slaveとなるICが対応しているか確認しておく必要がある。


0 件のコメント :

コメントを投稿