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 件のコメント :
コメントを投稿