
現在PIC18F2550同士で、I2C通信を行いたくアセンブラでプログラミングをしておりますが、教えていただきたい点があります。
・マスターとスレーブは動作中に入れ替えることはできないのでしょうか?
RS等から任意の信号を与えると、マスタとスレーブが切り替わるようなことがしたいのですが、どの書籍をみてもそのような事ができるとは書いてなく困っております。
・PICだけでなくI2C通信を行うことのできるマイコンorCPU(プログラミングが簡単で高速動作できる)はあるのでしょうか?あればお教えいただきたいです。
以上よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>4つぐらいのPICを全てRS232CでPCと繋ぎ、また各PICをI2Cで繋ぎたいと考えております。
そして、PICメモリ内のデータをI2Cで4つの PICとやり取りしたいと考えた時、I2Cではマスタとマスタのデータ送受信はできないと思いました。そのため、マスタとスレーブの入れ替えが必要かと思いました。たしかにマスタ間は通信できません。通信できるのはマスタとスレーブ間だけです。しかし、この仕様だと4つが同時にマスタ要求する可能性があることを考えるとかなり難易度が高いですが大丈夫ですか?
マスタがスレーブ間のデータをマスタ経由で再転送仕組みにするほうが圧倒的に楽です。速度的に許されるなら検討してみてください。
スレーブA→マスタ→スレーブBって感じでデータを受け渡します。スレーブ間は必ずマスタを経由するので、効率は悪いですが制御は圧倒的に楽です。
>お完全に知識不足および情報不足で申し訳ありません。PIC18Fシリーズより高速であればよいのですが・・・。8bitや16bitなどのbitの違いが私にはわかっていません。もっと学習する必要がありますね。
簡単にプログラムを組むならC言語でI2Cライブラリを使ったほうが圧倒的に楽です。C18というコンパイラを検討してみてはどうでしょうか?
http://www.picfun.com/mccframe.html
とりあえず高速化なら環境のさほど変わらない同じマイクロチップ社のPIC24FかdSPICを使えばC言語とI2Cのライブラリもあるので楽に組めると思います。
速度的には、コンパイラの最適化なしでもPIC18Fの数倍は楽に出ると思いますが、コンパイラの最適化が期限付きなので、必要ならコンパイラのライセンスを購入してください。
http://www.picfun.com/
でPIC(16bit)を参照のこと。
>マスタがスレーブ間のデータをマスタ経由で再転送仕組みにするほうが圧倒的に楽です。速度的に許されるなら検討してみてください。
的確なアドバイス本島にありがとうございます。まずはマスタ経由でデータの送受信を試みたいと思います。
>とりあえず高速化なら環境のさほど変わらない同じマイクロチップ社のPIC24FかdSPICを使えばC言語とI2Cのライブラリもあるので楽に組めると思います。
今現在PIC16Fを使用していまして、それをPIC18f等におきかえようとしております。PIC以外でも様々なマイコンがあるみたいですが、初心者の私にはやはりPICが一番使いやすそうに感じます。
ありがとうございました。
No.1
- 回答日時:
>・マスターとスレーブは動作中に入れ替えることはできないのでしょうか?
何のために入れ替える必要があるかは疑問ですが、マスタがスレーブに対して入れ替えを要求する形にすれば大丈夫じゃないでしょうか?
マスタとスレーブがSTOP状態にあるときに入れ替えれると思います。
>RS等から任意の信号を与えると、マスタとスレーブが切り替わるようなことがしたいのですが、どの書籍をみてもそのような事ができるとは書いてなく困っております。
RSって何の略号でしょう?RS232Cですかね?
結線を考える限りどちらがマスタでもかまわないハード仕様ですので、同時にマスタ化やスレーブ化しないように制御が出来れば問題ないと思いますので可能だと思いますが、RS232Cに接続されいていない側のマイコンをマスタにするとマスタとスレーブの入れ変えは面倒な手続きになると思いますが。
>・PICだけでなくI2C通信を行うことのできるマイコンorCPU(プログラミングが簡単で高速動作できる)はあるのでしょうか?あればお教えいただきたいです。
たいていのワンチップマイコンは、全てのバリエーションではないですがI2Cをサポートしています。
8bitならAVR、16bitならdSPICやR8C、32bitならARM7のLPC2214やSH2の7144Fなどです。
16bitや32biのマイコンを使えば、高速でC言語とライブラリでI2Cのプログラムは楽に組めると思いますが、どこまでの速度を出したいのか?コストパフォーマンスは気にしなくて良いのか?消費電力は何mWまで良いのか?コンパイラの値段は有料でも良いのか?など条件を決めないと推薦のしようが無いです。
この回答への補足
非常に丁寧な御解答ありがとうございます。
なにぶんマイコン初心者なもので、質問があやふやですいません。
4つぐらいのPICを全てRS232CでPCと繋ぎ、また各PICをI2Cで繋ぎたいと考えております。そして、PICメモリ内のデータをI2Cで4つのPICとやり取りしたいと考えた時、I2Cではマスタとマスタのデータ送受信はできないと思いました。そのため、マスタとスレーブの入れ替えが必要かと思いました。
>マスタがスレーブに対して入れ替えを要求する形にすれば大丈夫じゃないでしょうか?
そのようなプログラムを作成すればできるのですね。頑張ってやってみます。
>条件を決めないと推薦のしようが無いです。
完全に知識不足および情報不足で申し訳ありません。PIC18Fシリーズより高速であればよいのですが・・・。8bitや16bitなどのbit
の違いが私にはわかっていません。もっと学習する必要がありますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- モニター・ディスプレイ Dell G2422HSのディスプレイの入力信号の切替器やリモコンを教えてください 4 2023/05/30 17:56
- 格安スマホ・SIMフリースマホ 【楽天モバイル】楽天モバイルはパケット通信料が減らない低速モードに切り替えられる公式 3 2022/12/21 07:48
- 格安スマホ・SIMフリースマホ 日本通信の格安 SIM で 5 Gが提供になりましたが、 5G に切り替えると3G が使えなくなると 3 2023/01/20 00:18
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 住民税 一般事務に務めているのですが、給与だけでは足りず副業をしようと思っています。 配信者を昔していて、そ 5 2022/05/22 21:44
- カスタマイズ(車) いわゆる「テレビキャンセラー」について・・・・・ 7 2022/11/01 20:57
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- 賃貸マンション・賃貸アパート 現在JCOMを導入してるアパートに住んでおり自分で契約したj:COMネットサービスを使っています。通 5 2023/08/18 12:40
- 固定IP スマホやPCのIPアドレスについて教えてください。 5 2023/07/07 19:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
unsigned long long 型のフォー...
-
MPI プログラム
-
sprintfの書式について
-
COBOLの論理演算子について質問...
-
COBOL計算式の中間ワーク桁数に...
-
未使用引数の注意文出力を回避...
-
Linux用のC/C++のツール
-
パーサとコンパイラの違いって?
-
Out Of Near Heap Space?
-
ソフトの開発言語を調べる方法
-
リリースモードとデバッグモー...
-
AIXとCOBOLについて
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
外部シンボル "_main"は未解決です
-
” OS ビルド ” の意味が分か...
-
デバッグとビルドは何が違うの...
-
HANDLEの宣言でのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
C++でデスクトップGUIアプリ開...
-
COBOLの論理演算子について質問...
-
組み込みソフト。ROM領域にデータ
-
printfなど、標準関数のソース...
-
cc と gcc の違い
-
リリースモードとデバッグモー...
-
パーサとコンパイラの違いって?
-
AIXとCOBOLについて
-
<conio.h>?
-
COBOLのALPHABET...
-
VC++の/Zm オプションについて
-
C++Builder → Visual C++ 移植...
-
C言語の規格
-
COBOLの論理演算子について
-
変数の内容がコロコロ変わる、...
-
Macで使えるC言語のコンパイラ...
-
PICでのI2C通信でのマスタ、ス...
-
最初に使う変数のゼロクリアに...
おすすめ情報