I2Cポートの拡張

Cypress社のCY8CKIT-059に搭載されている、PSOC 5LP (CY8C5888LTI-LP097)には、Universal Digital Block Arrayが

あり、これを使用して、PSOCでI2Cの追加、拡張できます。

専用ハードウェアとしては一つですが、UDBを使用して拡張してみます。

PSoC Creatorから拡張する。

すでに一つ使用しているので、リソースメータ上は1/1で100%となっていますが、追加はできます。

デフォルトの状態だと、リソースが不足するためにエラーになります。回路図エディタ上でI2C_2をクリックして、Configurationを表示させます。

Implementationの部分をUDBに変更します。これで、新たにI2Cが使用できるようになりました。また、同時にUDB clock sourceをInternal clockに変更します。

クロックは400kbpsを設定しても、表示されている通り、375kbpsとなるようです。

特に問題はありません。

RST_1が一緒に追加されますが、ポートは外しても動作します。

次にPin Assignを行います。

Name

SCL_1

SDA_1

Port

P12[4]

P12[5]

ビルドオプションの変更:下記のようにビルドオプションを変更します。 Command LineのCustom Flagsに-std=c99をセットします。

main.cを選択して、右クリック、Build Settings...を選択。

リンカーオプションの変更:下記のようにリンカーオプションを変更します。

メインメニューからProjectを選択、Build Settings..を選択、LinkerのGeneralのAdditional Librariesにmを入れます。