I2Cコントローラ制御用ライブラリ
本モジュールは、以下の機能を提供します。
本モジュールのハンドル数、キュー数は次の定義で設定します。
ハンドル数: AG903_I2C_HANDLE_NUM
キュー数: AG903_I2C_QUENUM
「AG903_I2C_HANDLE_NUM <= AG903_I2C_QUENUM」として、ハンドル数に対して十分なキュー数を設定して下さい。
I2Cコントローラ入力クロック(CLK_FTP)の周波数は AG903_I2C_CLK で設定します。
本モジュールはシステムレジスタへのアクセスはサポートしません。
コントローラに対するクロックの供給については『AX51903仕様書』を参照して下さい。
本モジュールが動作するために次のライブラリが必要です。
初期化シーケンス(画像をクリックして拡大)
<説明>
1. モジュール初期化。「AG903_I2CMgrInit」
SCLは右の定義に従って設定されます。 AG903_I2C_DFLT_SCL , AG903_I2C_DFLT_GSR , AG903_I2C_DFLT_TSR
2. クロック設定。「AG903_I2CMgrSetClock」 ※上記初期値から変更しない場合は省略可能。
3. スレーブアドレス設定。「AG903_I2CMgrSetSlaveAddress」 ※自身がMasterである場合は省略可能。
注:コントローラに対するクロックの供給を予めシステムレジスタで設定しておく必要があります。詳細は『AX51903仕様書』参照。
Master Writeシーケンス(画像をクリックして拡大)
<説明>
1. ハンドル取得。「AG903_I2CMgrGetHandle」
2. コールバック関数登録。「AG903_I2CMgrSetCallback」
3. Write処理開始。「AG903_I2CMgrMasterWrite」 ※実行中であった場合はキューイングされます。
4. 指定サイズ分のWriteをし終えるまで、割込み要因に応じた処理を実行。
5. 指定サイズ分のWrite完了でコールバック。コールバック後にキューを確認。(空なら終了)
6. ハンドル解放。「AG903_I2CMgrReleaseHandle」
※Read処理について
送信シーケンスと同様です。使用する関数が AG903_I2CMgrMasterWrite から AG903_I2CMgrMasterRead に変わります。
Slave Writeシーケンス(画像をクリックして拡大)
<説明>
1. ハンドル取得。「AG903_I2CMgrGetHandle」
2. コールバック関数登録。「AG903_I2CMgrSetCallback」
3. Write処理開始。「AG903_I2CMgrSlaveWrite」 ※キューイングされます。
4. Masterからのクロック入力及びスレーブアドレスの一致でデータをWriteします。
5. 指定サイズ分のWriteをし終えるまで、割込み要因に応じた処理を実施。
6. 指定サイズ分のWrite完了でコールバック。コールバック後にキューを確認。(空なら終了)
7. ハンドル解放。「AG903_I2CMgrReleaseHandle」
※Read処理について
送信シーケンスと同様です。使用する関数が AG903_I2CMgrSlaveWrite から AG903_I2CMgrSlaveRead に変わります。
名前 |
説明 |
アプリケーションにI2Cコントローラ制御の為のインタフェースを提供します。 | |
マネージャにI2Cコントローラレジスタアクセスの為のインタフェースを提供します。 | |
| |
|