LPC2138 и 128x64 LCD F-51553GNBJ-LW-AEN дисплей. http://mmarm.narod.ru/LCD.JPG
http://www.bipom.com/armdev.php
Подключил F-51553GNBJ-LW-AEN LCD дисплей к SPI1 LPC2138. Все работает.
Контроллер дисплея S1D15605
Но яркость отдельных пикселей зависит от изображаемой картинки. См. ссылку на картинку.
При отображении текста нет никаких проблем. Думаю из-за того, что пиксели ( включенные и выключенные) чередуются.
Похоже, что большие зоны включенных пикселей ( например, линии как на рисунке)
вызывают этот эффект.
Не пойму в чем может быть проблема :(
static const UBYTE LCD_F51553_INIT_SEQUENCE[21] = {
DISP_RST, // soft reset
CMD_DELAY, // delay
DISP_ADC, // normal column dir
DISP_COM, // normal common mode
DISP_BIA, // bias
DISP_NRM, // normal video
DISP_VRR+6, // evolume resistor ratio
DISP_EVS, // set evolume
0x20, // arbitrary initial contrast
DISP_PWR+4, // charge pumps on
CMD_DELAY, // delay
DISP_PWR+6, // voltage reg on
CMD_DELAY, // delay
DISP_PWR+7, // follower on
CMD_DELAY, // delay
DISP_ON, // display on
DISP_LIN, // set starting line
DISP_PAG, // set page 0
DISP_COLL, // set column 0
DISP_COLH,
INIT_END
};
/********************************************************************************************
; Function: InitDisplay_Hard
;
; Description: Initializes LCD F51553
;
; Inputs: Nothing
;
; Returns: Nothing
**********************************************************************************************/
void InitDisplay_Hard(void)
{
const UBYTE *bp;
// Initialize CONTROL lines
LCD_F51553_RES_CLR_LOW();
LCD_F51553_A0_CLR_LOW();
LCD_F51553_RES_LOW();
LCD_F51553_A0_LOW();
// Initialize SERIAL interafce
Initialize_SPI1();
// 1-ms RESET pulse
LCD_F51553_DELAY(1);
// de-assert reset
LCD_F51553_RES_HIGH();
// point to init table
bp = LCD_F51553_INIT_SEQUENCE;
//
while (*bp != INIT_END) // check for end of list
{
if (*bp == CMD_DELAY)
{
LCD_F51553_DELAY(10000);
}
else
{
WrCmd_LCD_F51553_Hard(*bp);
}
bp++;
}
//
LCD_F51553_DELAY(10000); // let voltage charge pump settle
WrCmd_LCD_F51553_Hard(DISP_EVS);
WrCmd_LCD_F51553_Hard(CONTRAST); // set user contrast value
}
Это инициализация контроллера.
Все напряжения в норме ( +5В, -10В отностельно +5V, ....)
Используется внутренний booster.
Примечание. Все исходники примера и графической библиотеки можно найти,
если установить бесплатный релиз ARM development system
http://www.bipom.com/armdev.php
Драйвер дисплея -> C:\bipom\devtools\GCC\LPC2000\Src\lcd_128x64x1.prj
Пример -> C:\bipom\devtools\GCC\LPC2000\examples\GL\LCD_Demo_GL\LCD.prj