はじめに
Zynq PSのI2Cモジュールを使用して,I2Cキャラクタ液晶を制御してみました.
開発環境
OS | Microsoft Windows 7 Professional x64 Service Pack 1 |
---|---|
Vivado | Vivado 2014.4 WebPACK Edition (Windows) |
SDK | Xilinx SDK 2014.4 |
I2Cキャラクタ液晶
AitendoのI2C低電圧キャラクタ液晶モジュール(16x2行) [SPLC792-I2C-M]を使用しました. バックライトユニットも搭載されていて375円です.安いですね…. LCDモジュール単体でも取扱いがあります.
接続方法については,下記の記事が大変参考になりました. 私も,ピンヘッダを変換基板に取り付けて接続しています. 変換基板の短辺側にあるランド(SHL, DIRC)にもピンヘッダを取り付け,ジャンパピンでショートさせることで,液晶モジュールの表示方向を変更できるようにしました. バックライトユニットの電源(BL+)には,330Ωの抵抗を直列接続して3.3Vを印加しました.
Vivadoでの作業メモ
- Zynq Block Designの設定変更
- MIO Configurationの設定変更
- Diagramの変更
- I/O Portsの変更
ZYBO Base System Designを流用しました. Block Design上のZYNQ7 Processing SystemをダブルクリックしてRe-customize IPウィンドウを開き,Zynq Block Designで「I2C 1」にチェックを入れました. なお,下図ではTTCにもチェックを入れていますが,I2Cキャラクタ液晶の制御には必要ありません.
Re-customize IPウィンドウでMIO Configurationに表示を切り替え,I2C 1のIOを「EMIO」に設定しました. なお,下図ではTTCについても設定していますが,I2Cキャラクタ液晶の制御には必要ありません.
Re-customize IPウィンドウを閉じ,Diagram上で右クリックしました. 右クリックメニューのCreate Interface PortをクリックしてI2C 1用のインタフェースポート「IIC_1」を作成し,ZYNQ7 Processing SystemのIIC_1と接続しました.
「Run Synthesis」後,「Open Synthesized Design」し,IIC_1関連のI/Oポートをアサインするためにツールバーの「Window」 - 「I/O Ports」を開きました. 私は,ZYBOのPmod JBコネクタのJB1 (T20)にiic_1_scl_ioを,JB2 (U20)にiic_1_sda_ioをアサインしました.
プログラム
今更ながらGitHubのアカウントを作成しましたので,GitHubにて公開します.
Xilinx SDKで作成したプロジェクト内には「system.mss」というファイルがあります. このファイル内に,Zynq PSのI2Cモジュール「iicps」のドキュメントとサンプルプロジェクトのリンクがあり,大変参考になりました. このI2Cキャラクタ液晶のテストプログラムは,サンプルプロジェクト「xiicps_polled_master_example」を基に作成したものです.
また,I2Cキャラクタ液晶の制御方法の理解には,下記の記事が大変参考になりました.
製品紹介
売り上げランキング: 54,493
0 件のコメント:
コメントを投稿