iwanof
それではi2c通信ついて書きます。
i2c通信とは、フィリップス社が提唱しているシリアル・バスで、 2本の信号(SDA,SCL)により複数の機器の間でデータをやり取りをサポートしています。通信速度は標準、ファスト、高速の3タイプがあり、それぞれ100k,400k,3.4M(bit/s)となっています。
i2cにはマスタ、スレーブ、マルチマスタなどのモードがあります。基本的にはマスタからスレーブへ送信や受信の要求を行います。またスレーブにはそれぞれアドレスが設定されておりマスタがスレーブのアドレスを送信することによって決められたスレーブのみと通信することが出来ます。
具体的な通信方法を語ると結構長くなるので、省略します。i2cに関する記事はweb上や文献がたくさん存在するのでそちらを参照ください。
PSoCを使うとi2c通信はとても簡単に実現できます。その例を今から示します。
project name,language,deviceなどはいつも通り選んでください。
<master mode>
まずはマスタモードから説明していきます。'config'の'selection'は'I2CHW'を選んでください。そのあとに出てくるウインドウの'multi usermodule selection'はマルチマスタを選択しました。他のmodeでも実現可能だと思いますが、今回はこのmodeで成功したのでその結果をupします。(他のモードはRAMなどの消費率が低いかも?)
'interconnect'を示します。I2Cmoduleの他にdebug用のLCDをつけました。その以外のmoduleは使ってないので気にしないでください。
PSoC Designerのブロックによると、CY8C29466では12種類、CY8C27443では11種類のAD変換ブロックが存在する。それぞれ特徴がありどれを使うのかは悩むところである。ここでは、その指針について紹介する。