YS電子工作ラボ
  第81回PICクラブ 情報交換会 (開催日 2021.10.02)
<紹介作品

MSP2807 by Legato
    グラフィック デモ
以下、 第81回情報交換会報告(後閑さん、FaceBook Picfun.club.より)
  ■ 講評 …… 後閑さん
   
■ HarmonyとLegatoを使ったグラフィック :斎藤さん
 PIC32MZにQVGAのカラーグラフィック液晶表示器を接続した環境で、HarmonyとLegatoと呼ばれるグラフィック環境で動かしたという報告。
http://ys-labo.shop-pro.jp
 なかなか手強いツールのようでしたが、この液晶表示器用のドライバの作成ができたということで、公開されています。

以下、紹介に際し使用した資料
 
  MSP2807 by Legato
    グラフィック デモ
  2021.10.02 PIC情報交換会資料 
  YS電子工作デザイン http://www.ys-labo.com/  斎藤
  YS電子工作ショップ http://ys-labo.shop-pro.jp/
1.  概要
  1.1 要約
 ・PIC32MZでグラフィック液晶MSP2807(2.8インチ、QVGA 240x320 pixel、グラフィック 及びタッチ共にSPIインターフェース)を制御
 ・グラフィックライブラリ: Harmony Ver.3 Legato(レガート)
 ・マイコン: PIC32MZ2048EFH100
 ・デモ内容:
  1. ビットマップファイル画像表示、 ASCII文字列の表示、 ボタンウィジェットへのタッチによる表示スクリーンの切り替え
  2. LED用ボタンで キバン上のLEDを ON/OFF
  3. 円、直線、矩形の表示をターマーで 切り替え表示するスライドショー
  4. タッチ位置座標をキャラクタ液晶に表示
 
1.2. システム構成
           
2.  外観
全体 MSP2807部 拡大

3.  回路図(→PDFファイル
4.
  開発環境
 ・ Harmony v.3 XC32 v2.40 、グラフィックライブラリ: Legato
 ・ PIC: PIC32MZ2048EFH100
5.   動作結果
  1. 動画   →  YouTube (1080pのHD動画)       
2.. 画面抜粋
  1. TOP画面 2. LED ON/OFF 3. 円、直線、矩形のスライドショー
 
  4. タッチ座標表示 5. キャリブレーション  
   


6.  プログラムの作成プロセス 及び内容
 
1. マイクロチップ の サンプルプログラム 及び評価ボード
 ・Lgato技術情報:
   MPLAB Harmony Graphics Suite:(→URL)
   Display Driver Support(Github) : (→URL )
   玉城さんがfacebookのPicfun.club.GにアップロードしてくれたATSAMD51G18A_GRAPHICS.pdf(SAMによるHarmony3+Legato Graphics)
 ・サンプルプログラム: Legato_Quickstart( legato_qs_mzef_cu_tm4301b_ssd1963.X) 
 ・ボード: Curiosity PIC32MZ EF 2.0 Development Board
       SSD1963 LCD Adapter Graphics Card(16 bit EBIパラレルI/F用 AC320214)
       4.3" 480 x 272 WQVGA Display Module with maXTouch(AC320005-4)
 ・Curiosity PIC32MZボードのmikroBusに 自作ボードからキャラクタ液晶、LEDなどを接続して実験(動画→ URL)
 
2. Legatoなしでも描画できるMSP2807のライブリ関数を作成 (動画→ URL
   MSP2807_lib_XC32.h
   MSP2807_lib_XC32.c

・MSP2807ライブラリ関数をプロジェクトにインクルードして、タッチ位置座標やタッチタイミングなどをこの関数から取得。 また、タッチ位置のキャリブレーションでも利用
3. プロジェクトの作成
 ・Project Graphに 所要のコンポーネントの配置して、設定 及び結線を行う。
 ・グラフィック関係は MSP2807ライブラリ関数、ドライバーIC ILI9341のデータシートなどから設定

   


4. Graphic Composer によるScreen作成
 ・Screenに ラベルウィジェット、ボタンウィジェット、ピクチャーウィジェットなどドラッグで配置して、レイアウトを行う
 ・配置したウィジェットの設定を行う。
 ・Screenのソースコードの生成を行う。
 ・プロジェクト全体のソースコード生成を行う。
  注意: Screenのソースコードを生成しないで、プロジェクト全体ソースコードを生成、ビルトすると以下のコンパイルエラーがでる。
../src/config/default/gfx/legato/common/legato_common.h:59:10: fatal error: gfx/legato/legato_config.h: No such file or directory
 #include "gfx/legato/legato_config.h"
5. タッチ情報をプロジェクトにインポート
void SYS_Tasks ( void )
{   
    /* Maintain Device Drivers */
        DRV_ExternalController_Update();

        ys_DRV_TOUCH_MSP2807(); //タッチ検出、タッチ種類、タッチ位置とシステムに注入

    /* Maintain Middleware & Other Libraries */    
    Legato_Tasks();
    SYS_INP_Tasks();

    /* Maintain the application's state machine. */
        /* Call Application task APP. */
    APP_Tasks();
}

<備考>
app.c
drv_gfx_external_controller.c
le_gen_screen_Screen1.c
     
7. 参考
1. YS電子工作ラボHP での紹介/プロジェクトファイル
 
     
PIC32MZ Harmony v3版   → URL