こんにちは。 よろしくお願いいたします。
マザーボードを介した基板間通信にI2Cは利用できますか?
マスタとスレーブ11枚でマスタから最終スレーブまで50cm程度です。
I2CはCPU直で、いけますでしょうか?
何かドライバを双方に入れる必要ありますか?
安価な通信を実現したく。
漠とした質問ですみませんがよろしくご教示お願いいたします。
I2Cは信号線のインピーダンスが高いのでノイズに弱いし、負荷容量が大きいいと通信速度を落とすなど面倒なことが多いのでやめた方がいいです。「1:N」通信の基板間通信の物理層はRS485が良いと思います。UART(SCI)+RS485トランシーバICで実現できます。DEピンの操作はTXDを使用後に自分のメッセージの受信に伴うRXI割り込み連動のDTCでGPIOを直接操作することでCPUの忙しさの影響を受けずにDEをLowにすることが可能です。遠くにあるI2Cタイプのデバイスにアクセスする目的なら専用ICとしてLTC4331があります。ただ、このICはP2P用途むけで基板が複数の場合には向かないです(LTC4331を2つで経由が必要)。
みなさま
ご回答ありがとうありがとうございます。
I2Cが不適切である事理解しました。
RS485 がいいとは思いますが、コスト削減を言われており
それで思いついたのがカレントループです。
9600bps以下でも良いので、どうでしょうか?
コストが485より高いならダメですが。
バスというか右から左に送るような構成とすると
費用や開発工数増えるかとも考えます。
初心者ですので、ご意見頂けたら幸いです。
zundaさん NAKAといいます。
遊びならいけるかもです。こんな感じですがGreenPAKのI2Cなら1Mbpsでもいけました。(^_-)-☆
仕事ならやめといたほうが無難ですけど!
チョコです。
>それで思いついたのがカレントループです。
カレントループと調歩同期通信は、テレタイプとの通信でよく使っていました。基本は1対1通信でしたが、信号線は10m近くまで引っ張って使ったこともあります。I/Fはトランジスタと負荷抵抗くらいでやっていましたね。
10枚のスレーブとのやり方としては、マスタからのデータは全てのスレーブに、スレーブからのデータはワイヤードオアしてマスタの入力に接続することになるかと思います。後は、マスターがスレーブを選択して通信を行うプロトコルを使うことになるかと思います。
具体的な方法は考えてみてください。
以上
チョコさま
ご教示ありがとうございます。
カレントループ・プロトコルはRS485と考え方は同じですね。
あとはアナログ的な観点はハードですね。
検討してみます。またご連絡します。
ありがとうございます。
NAKAさん
情報ありがとうございます。
1.2Mとは驚きです。
ただご指摘の通り仕事で使うのはリスキーな様です。
基板内通信として参考にします。
今後ともよろしくお願いします。