PIC16F1939でI2Cを動かしてみるテスト
2013-02-08



禺画像]

とある案件の検討中でI2Cを使って動かす事になった。暫くI2Cから離れていて、何をどうしたらいいかも忘れていた。何か進めていかねばと思い色々調べる。I2Cスレーブについては、前回I2C LCD互換を作ったが、今回はI2Cマスターの方。

Hitech PICC時代には、サンプルソースコードにI2Cが入っていたがXC8になってからはそれが見つけられなかった。Microchipのサイトを眺めても見つけられなかったので、グーグルで調べて見る。

探したら、一番私がやりたいものに近いサイトが見つかった。
  →PIC microcontroller用I2C汎用ライブラリ

このサイトのSUBVERSION リポジトリ一覧 PIC-I2C-LIBより、ソース・コードを拝借して加工。
SSP1STATなどSSP1とシンボル名が付いたレジスターはPIC16F1939はSSPにすべて置き換える。そしてこれをインクルードに追加。
外付けI2CのEEPROM(24C256)デバイスを使ってまずはテスト。



これをmain.cの先頭で書いてアクセスを確認。あっさりと動作した。これを一から作る労力は結構なもの。使わせて頂きます。作者さんに感謝。


禺画像]

I2C動作クロックを400KHzにするため、PIC動作が8MHzなので、
    SSPADD = 4;                // I2Cバス Baud rate,  8MHz/((SSPADD + 1)*4) = 400kHz

に変更。波形で400KHzになっている事を確認。式を変形すると、SSPADDを求める公式は、

               SSPADD=((freq/I2Cfreq)/4)-1

 8MHzで100KHzなら
 

続きを読む

[電子]
[PIC]
[雑記]
[紹介]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット