Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Homepage
秋月電子で販売されている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構成¶
- 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);