
現在、HI-TECH SoftWare社製のPICCを使い
PIC16F88のプログラミングを行っています。
I2Cを用いて2つのPIC間の通信を行いたいのですが、
どのようにして行えばいいのかわかりません。
自分で情報収集を行ったのですが
HI-TECH SoftWare社製のPICC及びPIC16F88の情報があまりなく
暗礁に乗り上げてしまいました。
もしどなたかPICCでのI2Cの行い方をご存じの方、
使用方法またはサンプルプログラムをいただけないでしょうか。
どうかよろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
これを16F88用に書き換えるのでは駄目なのですか??
「PIC I2C Master slave」 等で検索すれば、結構出てきますよ。
#2さんも書いているように、16F877とかを使った方が良いかと・・・
PIC間通信する用途が分からないので、これ位しかコメント出来ません。
当方は、ほとんどBASICで書いているので、PICCはあまり分かりません。
No.2
- 回答日時:
期待されている回答ではないと思いますが,経験談を一つ.
私もPIC88でI2C(スレーブ)を実装してみました.でも,会社で部下と一緒に行った部分が多いので,ソースは公開できません.が,様子はお伝えできます.
はっきりいって,I2Cのプロトコルはかなり煩雑です.今まで,RS-232Cや485などで非同期通信を実装したり,SDLCループ,HDLC等のBOPもやってきましたが,良くできているプロトコルだと関心する一方で,実装は相当困難です.アセンブラかCかは大した問題ではありませんが,タイミング取りが難しいのです.HDLCなどのBOPの場合,通常はLSIがプロトコルに合致した命令を実装していて,プログラマはレジスタへの指令書き込みによりプロトコルのかなりの部分がLSIにより相当アシストされます.例えばフラグ(パディング)を出す時なども,通常は機能レジスタの当該のビットを立てるだけです.
ところが,PICでI2Cを実装しようとすると,ベースバンドの意味のある立ち上がりまたは立下り信号を巧みにソフトウエアで操ってあげなければなりません.ですので,複雑な通信シーケンスを実装するには,ステータスカウンタなどを設けて,ステータスイベントマトリクス方式でプロトコルを実装するのがお勧めですが,それでもタイミング問題の可視化はかなり困難であると思います.(すみません,言葉だけでは通じないかもしれません)
デジタルストレージオシロが無いと,相当きついデバッグになるでしょう.私の腕では,デジタルストレージオシロが無いと,到底I2Cの実装には自信がありません.会社等でアナライザを買える状況にあるときは,横河電機から新発売されたI2Cプロトコル翻訳機能付きの多機能オシロを購入されるのが確実だと思います.個人レベルの開発であるのであれば,格安のデジタルストレージオシロを購入することに,わたくしならなると思います.
加えて,PIC88に実装されているのはスレーブモードのみで,ホスト側として動作させるためにはソフトでかなり補ってあげないと実現はできません.(できないという意味ではないです).
私たちも,ホスト側はPIC16F877を使用しました.PIC88はスレーブとして実際に接続することはできています.(PIC16F877は40PのICですが,は,PIC16F88とのソフトウエアコンパチビリティーがかなり高いので,使いやすいです)
一方,SPIは,比較的単純です.これなら,どうにか実機確認レベルでいけるような気がします.
何に使うかにもよりますが,I2Cには相当手を焼いたことだけは,お伝えしたいと思います.(良くできたプロトコルであります.だからこそ,会社で実現してみたのですが)
でも,おもしろいですよね.PICって.がんばりましょう.
I2C
No.1
- 回答日時:
PIC16F88をアセンブラでいじったことがある私からでよろしければ。
だたしI2Cは使ったことがありません。PIC16F88の情報がないとの事ですが、PIC毎のI2C制御の仕組みの差は少ないはずですので、他のPICの情報は参考になると思います。
アセンブラでPIC16F88じゃないですが、この本に例が出ています。
http://www.gihyo.co.jp/books/syoseki-contents.ph …
それとPICCはライブラリが充実していないので、アセンブラの要領で地道に全てのレジスタを設定してやる必要があるはずです。アセンブラのコードを参考にすれば、さほど難しくないと思います。
CCS Cならば、ライブラリにI2Cのライブラリもありますので、楽をするならこちらが良いかと。上で紹介した本もCCS Cで書かれています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- スーパー・コンビニ 最近私が信頼しているスーパーで買い物すると、ポイントカードのポイントが減っています。ここ1ヶ月近く続 2 2022/11/04 22:24
- バイク車検・修理・メンテナンス バイクのヘッドライトの球をLEDに交換した場合のユーザー車検 2 2022/10/10 05:45
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) Excel2010 VBAが特定動作で実行出来なくなる 7 2022/12/29 14:26
- スピーカー・コンポ・ステレオ オーディオ用途で音質の良いハンダを教えて下さい。 10 2023/02/04 22:36
- 教育・文化 高校生です。将来政治家になって犯罪率を0.0%代にしたいのですが、可能だと思いますか? ㅤ 大まかな 8 2022/08/27 18:51
- 格安スマホ・SIMフリースマホ FEETEL Priori5 からの機種変更 2 2022/11/13 15:54
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
PICC(HI-TECH SoftWare)によるI...
-
アセンブリ言語について
-
CASIOのポケコンZ-1GRのアセン...
-
【H8マイコン】HEWで埋め込みア...
-
アセンブラからC言語に変換する...
-
アセンブラのコマンドについて
-
アセンブラ言語で質問です。
-
【PICマイコン】一般製品にPIC...
-
どうのような命令をしているの...
-
言語
-
アセンブラ言語がわかりません。
-
アセンブラで割り算
-
構造体について
-
[C言語→アセンブリ言語]はどう...
-
アセンブラのマニュアルを入手...
-
アセンブリー言語
-
高級言語がアセンブリ言語に比...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
実行ファイルからソースはみれる?
-
アセンブラ言語がわかりません。
-
[C言語→アセンブリ言語]はどう...
-
アセンブラの配列処理
-
素朴な疑問 (C言語とアセン...
-
アセンブラwordという単位
-
PowerPC用逆アセンブラを知りま...
-
アセンブラエディタ
-
このアセンブラの意味を教えて...
-
PICはアセンブラとC言語のどち...
-
MPLAB IDE v8.92アセンブラにつ...
-
x86系でリアル←→プロテクトモー...
-
メモリアドレスについて
-
素数を求めるプログラム(アセン...
-
アセンブラで割り算
-
アセンブラのリンカのダウンロ...
-
【H8マイコン】HEWで埋め込みア...
-
アセンブラーのプログラムに関して
おすすめ情報