2011-11-14 12 views
0

'byte paradigm' I2C expressデバイスにI2C Cライブラリを使用したいと思います。これはbyte paradigmのWebサイトにあるサンプルAPIでした。バイトパラダイムcライブラリの使用

// 
// Executing I2C write transfer  
// 
pDataWr[0] = 0x12; 
pDataWr[1] = 0x34; 
printf("\nWriting 0x%02X to address 0x%02x...\n", pDataWr[1], pDataWr[0]); 
i2c_CmdBufAppend(2, 0x50, 1, 2, (char *)pDataWr, true, true); // Cmd = 2  : I2C write 
                  // Address = 0x50 
                  // AddrType = 1 : 7-bit address 
                  // Length = 2 : 2 byte payload 
                  // pDataWr  : buffer with 2 bytes payload (0x1234) 
                  // STA = true : generate start 
                  // STO = true : generate stop 

i2c_RunMaster(); 
i2c_CmdBufDeleteAll(); 

これはどういう意味ですか?何をどこに書いていますか?下記のAPIとどのように異なるのですか?

// 
// Executing dummy write to set EEPROM address 
// 
printf("\nExecuting dummy write to set EEPROM address...\n"); 
pDataWr[0] = 0x12; 
i2c_CmdBufAppend(2, 0x50, 1, 1, (char *)pDataWr, true, true); // Cmd = 2  : I2C write 
                  // Address = 0x50 
                  // AddrType = 1 : 7-bit address 
                  // Length = 1 : 1 byte payload 
                  // pDataWr  : buffer with 1 byte payload (0x12) 
                  // STA = true : generate start 
                  // STO = true : generate stop 
i2c_RunMaster(); 
i2c_CmdBufDeleteAll(); 

私はバイト・パラダイム・ライブラリのドキュメントを読んでいますが、情報は非常に限られています。親切に、事前に感謝:)

答えて

2

I2C仕様の迅速なGoogle検索は、この中に結果を助ける: http://i2c2p.twibright.com/spec/i2c.pdf

(私は自分のドライバを書かなければならなかった私は、I2Cデバイスでプレイしたので、長い時間それをされています特殊なチップセットの場合)。

コードを実行しているチップはI2Cマスタです。

i2c_CmdBufAppend(2, 0x50, 1, 2, (char *)pDataWr, true, true); // Cmd = 2  : I2C write 
                 // Address = 0x50 
                 // AddrType = 1 : 7-bit address 
                 // Length = 2 : 2 byte payload 
                 // pDataWr  : buffer with 2 bytes payload (0x1234) 
                 // STA = true : generate start 
                 // STO = true : generate stop 

私はあなたが使用しているライブラリについて何も知りませんが、コメントは完全にあなたがアドレス0x50を(アドレス指定の7ビットを使用して)で、デバイスのアドレス指定され、データの2つのバイトを書き込み、また、生成されていることを説明します開始条件と停止条件。

対話しているI2C仕様とEEPROMを参照する必要があります。

仕様を理解したら、それほど難しいことではありません。 I2Cデバイスにデータを読み書きする例が満載です。

デバイスには、レジスタやコマンド値などの特殊な値を書き込んだり、データを読み取ったりする必要があるデバイスもあります。これは、書き込みコマンドを送信し、次にコマンド間でSTOPを行わずに読み出しコマンドを送信することによって設定されます。

あなたとやりとりするデバイスには、特別なコマンドなどの詳細が必要です。 ライブラリI2Cライブラリにはこれらの詳細はありません。 Fredsに追加する

1

は、I2C仕様は、あなたの物理層、スタートを与え、パターン、ACKの土地やワイヤーに何を駆動を停止する予定です

を投稿してください。

このプロトコルを理解するには、通常、デバイス自体のドキュメント(物理層の図面も含むことが多い)を参照する必要があります。

elsesのI2Cコードを理解するには、デバイスのドキュメントが必要です。独自のI2Cコードを作成するには、デバイスのマニュアルが必要です。デバイスがeepromのような一般的なものである場合(たとえば、多くのベンダーが互換性のある部品を作っているなど)は、ベンダー固有のものがいくつかある場合に備えて、いくつかのデバイスのドキュメントを手前に置くことをお勧めしますサポートするか、または避けてください。

関連する問題