[[ファームウェア関数一覧>ファームウェア関数一覧#u5cbf254]]
*I2C_PECPositionConfig [#kf381d87]
#contents
**ヘッダ宣言 [#jc7ccda1]

**関数プロトタイプ [#t5a25fc7]
 void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition)
**動作 [#gaca16ed]
I2Cx周辺回路のPECの位置を選択します。&br;

PECはSMBusのNetwork層で提供される機能で、エラー検出を行います。従って、I2C機能をSMBusとして使用するときに有効です。

名前の通りエラー検出だけを行うもので、訂正機能までは入っていません。ベースとなるのはCRC8で、「必要に応じて」付加する事が出来きます。PECのサイズは8bitなので1Byteのデータに1Byteのエラー検出コードが付く形にります。従って転送効率は最悪半分になってしまいます。(1.8KB/sec)

PECは、必ずしも8bitあたり1つという訳ではなく、例えば16bitのデータ転送の場合も、付加されるPECは1つ(8bit)のみでてす。元来CRCは適切な長さを選べばエラー検出と訂正が可能になりますが、元データが不定長でCRCが8bit限定であるため、訂正機能は持ちえません。

**引数 [#a93488fc]
-I2Cx&br;
I2C1又はI2C2を指定します。&br;
&br;
-I2C_PECPosition&br;
PECの位置を以下のマクロから選択します。&br;
&br;
#include(Macro/I2C_PECPosition,notitle)
&br;
**出力値 [#m44c1d92]
-無し
**戻り値 [#h4148181]
-無し
**呼び出し関数 [#we3d05d7]
-無し
**サンプル [#h47b329a]
 /* Configure the PEC bit to indicvates that the next byte in shift
 register is PEC for I2C2 */
 I2C_PECPositionConfig(I2C2, I2C_PECPosition_Next);
**参照 [#e6c75a64]
-

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS