Raspberry Pi トライ日記

Raspberry Pi トライ日記

Pythonで液晶コントロール

2014-03-22 09:26:07 | 日記

aitendoのM018C7735SPIを制御するプログラムをRasp piに書き込むことが必要です。ここではPythonで制御プログラムを作成してみようと思います。画面に単純な画像を表示するプログラムがこちらのサイトに掲載されていました。(http://raspberrylife.wordpress.com/2013/12/03/color-lcd2/)  ←Raspberry pi Lifeさんより引用

 

液晶コントローラマイコン ST7735の仕様書(http://aitendo3.sakura.ne.jp/aitendo_data/product_img/lcd/tft2/M018C7735SPI/1.8-ST7735R_V0.2.pdf)を読んでコードの内容を読解してみました。仕様書を見なければ分からない部分のみしか掲載していません。

 


 

GPIO.setup(24, GPIO.OUT)  #端子A0を出力に割り当て
GPIO.setup(25, GPIO.OUT)  #端子RESETを出力に割り当て
self.write_cmd(0x11)      #コマンドsleep out , boosteron をST7735に送信    
 
### フレームレートを設定しています。###########################################
 
self.write((0xB1, 0x01, 0x2C, 0x2D))    仕様書P123参照
self.write((0xB2, 0x01, 0x2C, 0x2D))    仕様書P124参照
self.write((0xB3, 0x01, 0x2C, 0x2D, 0x01, 0x2C, 0x2D))  仕様書P125を参照
 
###########################################################################
 
self.write((0xB4, 0x07))  #diaplay inversion control 仕様書P126を設定
 
############# pover control を設定しています。##########
 
self.write((0xC0, 0xA2, 0x02, 0x84))
self.write((0xC1, 0xC5))
self.write((0xC2, 0x0A, 0x00))
self.write((0xC3, 0x8A, 0x2A))
self.write((0xC4, 0x8A, 0xEE))
self.write((0xC5, 0x0E))
 
######################################################
 
self.write((0x36, 0xC8))  #Memoy data access control
 
#######################################################
 
 
############## ガンマ補正の設定 #######################
 
self.write((0xE0, 0x02, 0x1C, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2D, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10))    #仕様書 P122参照
self.write((0xE1, 0x03, 0x1D, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10))    #仕様書 P122参照
 
######################################################
 
################ Column address set  ################
 
self.write((0x2A, 0x00, 0x02, 0x00, 0x81))   #Column address set P78参照
self.write((0x2B, 0x00, 0x01, 0x00, 0xA0))   #Row address set P78参照
 
#####################################################
 
self.write((0x3A, 0x05))  #Interface pixel format(12bit,16bit,18bit) P115参照
self.write_cmd(0x29)    #Display on を送信 P77
 
#####################################################
 

 ちなみに、Raspberry lifeさんのサイトに掲載されていたコードでは、16bit/pixel設定となっております。(→ self.write_cmd(0x29) を見ると分かります。)

 

仕様書P42を見ると Rは5bit , Gは6bit , Bは5bit でピクセルの色を表現しています。コードを見ると lcd.write_rgb(0x**,0x**,0x**)と記述がありました。 R,G,Bともそれぞれ上位5bit,6bit,5bitを抽出し、ST7735に転送しているようです。

 

 

 


最新の画像もっと見る

コメントを投稿