SDOTECK HOME

  • ご参考になりましたか?
    SDOTECKブログでは、みなさんからのフィードバックをお待ちしています。 説明が解らなかったり、もっと詳しく解説してほしいポイント・テーマがありましたら、お気軽にsudoteck@gmail.com までメールくださるか、記事にコメントして下さい。
  • -

RF PowerAMP なら

  • RF AMP DESIGN

HEX calc pro 1.00

  • HEX calc pro ver1.00
    エンジニア向けの16進と浮動小数点を混在して入力出来る計算機 。 Version 1.00 高機能な 16進電卓や科学計算電卓はありますが、いちいちモードを切り替えなければならず、最大の問題は16進数と小数点値を同時に使用出来ないことです。
    詳しい説明はここ
    iTunes ではここまで

ATT calc

  • ATT calc ver2.00
    iPhone 用 RF アッテネーター計算ソフトです。  RF開発エンジニアに必要な、 dBm - W 換算機能をはじめ、π型やT型の ATTを 設計する上で、必要な dB値から抵抗値を算出する機能と、 E24系列の抵抗値を 使用したときの減衰量(dB)と整合インピーダンス(Ω) が表示されますので、どの 抵抗値の組み合わせがよいか検討できます。  また、正確な値を必要とする場合に2個のE24系列抵抗を並列接続して理想の値を 求める計算機能も持っています。  操作はピッカーホイールを回すだけですので、実験中でも片手で簡単に操作 できます。

FIL Calc

  •  LPF 計算機
    RFエンジニア向けフィルター計算ソフト LPFやHPFの設計をするときに、いちいちパソコンを起動してフィルタを設計、結果をプリントアウトして、実験室に行ってネットワークアナライザで測定・実験、ちょっと修正したい時にまたパソコンの所にもどって、再計算...というのが結構面倒で、手軽にiPhone で計算できるといいいなと思って作りました。

iPhone APP

  • ATT calc ver2.00
    SDOTECK が開発した iPhone APP の紹介です。 NEWS---SWRproリリース

Amazon

  • AMAZON Books

RAKUTEN

  • RAKUTEN

mujic.jp

  • music.jp
    music.jp

サイト内検索には?

  • -------------------------------
    ◆下の検索機能でこのブログのすべての関連項目を検索出来ます。是非使ってみて下さい。
サイト内検索
ココログ最強検索 by 暴想

SCHEMATICS

BOSE

  • BOSE
    クワイアットコンフォート20
無料ブログはココログ

Google

  • Google

« Ferrariの4人乗りミニクーペ | トップページ | MUSIC MAN Hyblid Guiter AMP回路図追加 »

2011年7月19日 (火)

PIC で I2C

PIC で I2Cをドライブしてみました。 
 PIC では、前回はライブラリがうまく動かなかったので、自前で制御するコードを書いていたのですが、今回再度ライブラリで動作させてみようと挑戦してみました。
使ったCPUは PIC18F4550 ライブラリは、"i2C.h" です。
これは MCC18¥src¥pmc_common¥i2C¥ 以下にあるファイルを使用しています。
通常では動作するのですが...
1つ問題がおこりました。実装されていないデバイスに対して書き込み(コマンド)を送るのですが、当然 ACKが帰ってきません。ソースを見ると、 i2c_write.c には
.....
{
 while( SSPSTATbit.BF) ;
 IdleI2C();
 if(SSPCON2bits.ACKSTAT ) //test for ACK condition
   return(-2);
 else return(0);
}
とあり、ACKが来なければ -2 を返すはずです。
しかしながら、デバッグすると
while( SSPSTATbit.BF) ;
で止まっているのでした。
送信が完了しないで止まっているので、ACKを確認できずにいるようでした。
何度かレジスタの設定を確認しましが、デバイスが繋がっていないとここで止まるようです。
仕方がないので、
 while( SSPSTATbit.BF) ;
の部分を
 n = 100;
 while( SSPSTATbit.BF) {
   --n;
   if( n == 0){
      IdleI2C();
      return(-2);
   }
 }
と変えて、100回ループで脱出するように修正しました。

 この writeI2C() を使っているサンプルを見ても、ACKが無いときの return(-2)の値を利用しているコードは見つかりませんでした。( -1) の場合の バス衝突時 には対応しているコードは見つかりました。私の環境が悪いのか、CPUによってくせがあるのか解りませんが、送信完了しないってことは不思議でした。もうちょっと使い込んで実験してみたいと思います。

« Ferrariの4人乗りミニクーペ | トップページ | MUSIC MAN Hyblid Guiter AMP回路図追加 »

トラブル対策」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/556493/52249647

この記事へのトラックバック一覧です: PIC で I2C:

« Ferrariの4人乗りミニクーペ | トップページ | MUSIC MAN Hyblid Guiter AMP回路図追加 »