Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support PCF8814-based Nokla 1110i LCD #12

Open
powerbroker opened this issue Jun 22, 2023 · 0 comments
Open

Support PCF8814-based Nokla 1110i LCD #12

powerbroker opened this issue Jun 22, 2023 · 0 comments

Comments

@powerbroker
Copy link

powerbroker commented Jun 22, 2023

Nokla 1110i LCD connected as following:
n1100_ATm328p

code compiled with 'WITH_LCD_ST7565 = 8814' and 'LCD_INTERFACE_MODE=3'.

to force the LCD to work finally, void lcd_init() in lcd-routines.c muzz be patched(changes marked with 'Nokla-1110i support' comment):

#elif (LCD_ST_TYPE == 8814)
   uint8_t volume;

   //Nokla-1110i support
   HW_LCD_CE_PORT &=~(1<<HW_LCD_CE_PIN); 		// CS => 0
   HW_LCD_RES_PORT &=~(1<<HW_LCD_RES_PIN);	// RST => 0
   wait_about10ms();							// wait 5ms or may fail
   HW_LCD_RES_PORT|=(1<<HW_LCD_RES_PIN);		// RST => 1

   lcd_command(0xE2);							// CMD_INTERNAL_RESET
   wait_about50ms();
   //END-OF Nokla-1110i support
	
   volume = eeprom_read_byte(&EE_Volume_Value);		// read Vop
   lcd_command(CMD_SET_VOP_UPPER | ((volume >> 5) & 0x07));	// set upper Vop
   lcd_command(CMD_SET_VOP_LOWER | (volume & 0x1f));	// set lower Vop
   lcd_command(CMD_SET_START_LINE | (LCD_ST7565_Y_START & 0x3f));       // Set the Start line 0
   lcd_command(CMD_SET_ALLPTS_NORMAL);		// 0xa4 set display to normal
   
   //Nokla-1110i support
   //lcd_command(CMD_SET_POWER_CONTROL | 4);	// 0x28|4 Charge Pump ON
   lcd_command(CMD_SET_POWER_CONTROL | 7);	// 0x2F !!! Charge Pump ON
   lcd_command(CMD_SET_START_LINE | (LCD_ST7565_Y_START & 0x3f));       // 0x40 Set the Start line 0
   //END-OF Nokla-1110i support
   
   lcd_command(CMD_SET_COM_REVERSE);		// 0xc8
   lcd_command(CMD_SET_COM_NORMAL);		// 0xc0 set normal Y orientation
   lcd_command(0xa1);				// set MX, X orientation, is pad selectet!
   lcd_command(0xaa);				// set horizontal mode
   lcd_command(0xac);				// set initial row
   lcd_command(0x08);				// initial row = 8  (0-7)
   lcd_clear();
   lcd_command(CMD_DISPLAY_ON);			// 0xaf Display on
   lcd_set_cursor(0,0);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant