Compatible with ATM0177B3A

Dependencies:   mbed

秋月電子で販売されているATM0177B3AをNucleo F303K8で動かしました。https://akizukidenshi.com/catalog/g/gK-14032/

フォーク元は以下になります。ピン番号の変更とライブラリの更新のみでも一応動きます。https://os.mbed.com/users/morita/code/DL144128_LCD/file/c0be4e018a09/ili9163lcd.h/

変更点

  • SPIクロックの極性を変更→データシートでは立下りでデータ出力です。

void lcdWriteCommand(uint8_t address)
{
    uint8_t i;

    CS_ = 0;
    A0_ = 0;
    for(i=0;i<8;i++){
        if(address & 128)SDA_= 1; else SDA_ = 0;
        SCK_ = 0;//変更箇所
        address <<= 1;
        SCK_ = 1;//変更箇所
    }
    wait_us(1);
    CS_ = 1;
}
  • RGBの並びを変更→データシートではMSBファーストでRGBの並びです。

inline uint16_t decodeRgbValue(uint8_t r, uint8_t g, uint8_t b)
{
    return (r << 11) | (g << 6) | (b);
}   
  • 画面サイズをdefine

//128x160
#define COL_MAX   0x7f
#define PAGE_MAX  0x9f
  • 画面表示方向のdefine定義名を変更 →LCD_ORIENTATION0 がエラーのため

#define LCD_ORIENTATION0  0//変更前
#define ROT_TOP           0b00000000//変更後

機能追加

  • グラデーション

void grade(void);
  • カラーバー

void colorbar(void);
  • バースト機能→ 1byte転送毎にwait_us(1)が呼び出され、速度低下していました。 wait_us(1)を削除した関数を2つ作成しました。

void lcdWriteData_burst(uint16_t *burst_data,uint16_t length);
void lcdWriteData_sameburst(uint16_t data,uint16_t length);

他省略

  • ガンマカーブ設定のコメントアウト →初期設定で問題なし
  • 画面サイズ設定のコメントアウト →HWで設定済、ballとbatはVRAMを部分的に書き換えているため、毎度caset、rasetの設定が必要です。

HW構成

https://os.mbed.com/media/uploads/gitakichi/img_20210101_231750_2.jpg

  • VFのTYPが3.3Vと精度が疑わしく、電流制限抵抗の設計が難しい→バックライトの実測

負荷抵抗:10Ω、電源電圧:3.276V時 VR=0.335V、従ってVF=2.941V、IF=33.5mA

負荷抵抗:100Ω時 VR=0.621V、従ってVF=2.655V、IF=26.55mA →若干暗いけど問題ないので採用

  • ピン配置

DigitalOut SCK_(A4);
DigitalOut SDA_(A6);
DigitalOut A0_(A2);
DigitalOut RESET_(A1);//10kプルアップ
DigitalOut CS_(A3);

History

SMPTE colorbar modoki and 16bit charactor default tip

2021-01-05, by gitakichi [Tue, 05 Jan 2021 07:10:40 +0000] rev 9

SMPTE colorbar modoki and 16bit charactor


comment outed

2021-01-02, by gitakichi [Sat, 02 Jan 2021 10:36:18 +0000] rev 8

comment outed


bool picture

2021-01-02, by gitakichi [Sat, 02 Jan 2021 08:49:47 +0000] rev 7

bool picture


use burst reduce reload time

2021-01-02, by gitakichi [Sat, 02 Jan 2021 07:29:21 +0000] rev 6

use burst reduce reload time


reduce wait_us to more speed

2021-01-02, by gitakichi [Sat, 02 Jan 2021 06:51:11 +0000] rev 5

reduce wait_us to more speed


delete colorbar comment out

2021-01-02, by gitakichi [Sat, 02 Jan 2021 01:49:33 +0000] rev 4

delete colorbar comment out


add colorbar and grade

2021-01-02, by gitakichi [Sat, 02 Jan 2021 01:42:56 +0000] rev 3

add colorbar and grade


delete redundant code

2021-01-01, by gitakichi [Fri, 01 Jan 2021 13:57:57 +0000] rev 2

delete redundant code


can use akiduki lcd

2021-01-01, by gitakichi [Fri, 01 Jan 2021 11:08:23 +0000] rev 1

can use akiduki lcd


DL144128TF driving Test.

2014-06-14, by morita [Sat, 14 Jun 2014 02:27:06 +0000] rev 0

DL144128TF driving Test.