はじめまして、TAKAと申します。RX651のGLCDCで京セラのQVGAの液晶を表示しようとしています。先ずはグラフィック画面2のみ表示できればいいと思っていて、バックグラウンド画面もグラフィック2画面も320x240のサイズで矩形アルファブレンドの使用は考えていません。液晶制御に必要なクロック、水平同期、垂直同期、データイネーブルはシンクロで出力を確認できるのですが、LCD_DATA0~LCD_DATA15が出力されません。グラフィック2画面の表示画面制御を背景色を表示にしていてもLCD_DATAが出力される様子はありません。ピンファンクションをI/Oに戻すと出力できるので配線間違いではありません。恐らく設定がどこか悪いと思いますが、それがどこかがわかりません。どなたか教えていただけないでしょうか?コンパイラはCS+です。
// LCD TCG057QVLCE-G00 MSTP_GLCDC = 0; GLCDC.BGEN.BIT.SWRST = 1; // ソフトウェアリセット解除 GLCDC.OUTSET.BIT.FORMAT = 2; // 出力データフォーマット選択 RGB(565) GLCDC.OUTSET.BIT.FRQSEL = 0; // ピクセルクロック分周 分周なし(パラレルRGB) GLCDC.OUTSET.BIT.SWAPON = 0; // ピクセル順序 R-G-B順 GLCDC.PANELCLK.BIT.CLKSEL = 0; // LCD_EXTCLK (外部クロック) GLCDC.PANELCLK.BIT.DCDR = 1; // 分周無し GLCDC.PANELCLK.BIT.CLKEN = 1; // LCD_CLKの出力を許可 GLCDC.OUTSET.BIT.ENDIANON = 0; // リトルエンディアン while( !GLCDC.BGMON.BIT.SWRST ); GLCDC.BGPERI.BIT.FV = 256; // 垂直同期信号周期設定 256line GLCDC.BGPERI.BIT.FH = 384; // 水平同期信号周期設定 384pixel GLCDC.BGSYNC.BIT.VP = 1; // 垂直同期信号アサート位置 1line GLCDC.BGSYNC.BIT.HP = 1; // 水平同期信号アサート位置 1pixel GLCDC.BGVSIZE.BIT.VP = 7; // 垂直有効表示開始位置設定 7line GLCDC.BGVSIZE.BIT.VW = 240; // 垂直有効表示幅設定 240line GLCDC.BGHSIZE.BIT.HP = 62; // 水平有効表示開始位置設定 62pixel GLCDC.BGHSIZE.BIT.HW = 320; // 水平有効表示幅設定 320pixel GLCDC.BGCOLOR.LONG = 0xffffff; // 背景色 白 GLCDC.GR2FLMRD.BIT.RENB = 1; // フレームバッファの読み出し許可 GLCDC.GR2FLM2 = 0x00800000; // フレームバッファの先頭アドレス GLCDC.GR2FLM3.BIT.LNOFF = 384; // マクロラインオフセット設定 384=0x180 下位6bitは0のこと GLCDC.GR2FLM5.BIT.LNNUM = 239; // 1フレームライン数設定 240line-1line GLCDC.GR2FLM5.BIT.DATANUM = 9; // 1ラインデータ転送回数設定 320*2/64-1=9 GLCDC.GR2FLM6.BIT.FORMAT = 0; // フレームバッファカラーフォーマット設定 RGB(565)(16bpp)// GLCDC.GR2AB1.BIT.DISPSEL = 2; // カレント画面を表示 GLCDC.GR2AB1.BIT.DISPSEL = 0; // 背景色を表示 GLCDC.GR2AB2.BIT.GRCVS = 7; // グラフィック領域垂直開始位置設定 7line GLCDC.GR2AB2.BIT.GRCVW = 240; // グラフィック領域垂直幅設定 240line GLCDC.GR2AB3.BIT.GRCHS = 62; // グラフィック領域水平開始位置設定 62pixel GLCDC.GR2AB3.BIT.GRCHW = 320; // グラフィック領域水平幅設定ビット 320pixel GLCDC.GR2BASE.LONG = 0xffffff; // 白 GLCDC.PANELDTHA.BIT.PD = 1; GLCDC.PANELDTHA.BIT.PC = 2; GLCDC.PANELDTHA.BIT.PB = 0; GLCDC.PANELDTHA.BIT.PA = 3; GLCDC.PANELDTHA.BIT.SEL = 0; // 切り捨て GLCDC.PANELDTHA.BIT.FORM = 2; // RGB(565) // STVAは垂直同期信号 GLCDC.TCONSTVA1.BIT.VS = 0; // 遅延無し GLCDC.TCONSTVA1.BIT.VW = 4; // 4line GLCDC.TCONSTVA2.BIT.INV = 1; // STVA極性反転 // STVBは垂直DE GLCDC.TCONSTVB1.BIT.VS = 7; // VSからの遅延line数 GLCDC.TCONSTVB1.BIT.VW = 240; // 240line // STHAは水平同期信号 GLCDC.TCONSTHA1.BIT.HS = 18; // HSからの遅延pixel数 GLCDC.TCONSTHA1.BIT.HW = 20; GLCDC.TCONSTHA2.BIT.INV = 1; // STHA極性反転 // STHBは水平DE GLCDC.TCONSTHB1.BIT.HS = 62; // HSからの遅延pixel数 GLCDC.TCONSTHB1.BIT.HW = 320; // TCON0=HS GLCDC.TCONSTVA2.BIT.SEL = 2; // STHA // TCON1=VS GLCDC.TCONSTVB2.BIT.SEL = 0; // STVA // TCON2=DE GLCDC.TCONSTHA2.BIT.SEL = 7; // LCD_TCON2 = DE // LCD_TCON3 GLCDC.TCONSTHB2.BIT.SEL = 0; // STVA 垂直同期信号 GLCDC.TCONSTHB2.BIT.INV = 1; // 極性反転 GLCDC.DTCTEN.BIT.VPOSDTC = 1; // 指定ライン通知の検出を許可 GLCDC.GR2VEN.BIT.VEN = 1; // VEN セット GRnFLM2 GRnFLM3 GRnFLM5 GRnFLM6 GRnAB1~GRnAB9 GRnBASE GRnCLUTINT while( GLCDC.GR2VEN.BIT.VEN ); GLCDC.OUTVEN.BIT.VEN = 1; // VEN セット BRIGHT1 BRIGHT2 CONTRAST PANELDTHA CLKPHASE while( GLCDC.OUTVEN.BIT.VEN ); GLCDC.BGEN.LONG = 0x10101; // EN VEN セット while( GLCDC.BGEN.BIT.VEN ); while( !GLCDC.STMON.BIT.VPOS ); GLCDC.STCLR.LONG = 7; // フラグクリア GLCDC.DTCTEN.BIT.VPOSDTC = 0; // 指定ライン通知の検出を禁止
ここまでが書いたGKCDC関連のhwsetupです。よろしくお願いします。