Saturday, December 6, 2014

Truly Semiconductors MCG2305-A1-E Graphic LCD

192x64  Wide형 Graphic LCD입니다 (Graphic LCD에서 Wide형이라는 말을 붙이는지 모르지만 편의상). 
특별한 내용은 없습니다, 기존  KS0108B를 사용하는 Code에서 Chip Select 기능만  조금 수정하면 사용가능합니다.

Truly Semiconductors MCG2305-A1-E


Feature:

  1. Power : DC +5V  (3.8V까지 동작)
  2. LCD Type : STN (사진은 실물보다 진하게 나오더군요, 참고하세요)
  3. Resolution : 192 x 64
  4. SAMSUNG KS0108B 64CH Segment Driver x 3
  5. 8-Bit Parallel, 68-family MPU Interface.
  6. Backlight : LED Backlight (Yellow Green)
  7. 부실한 Datasheet(NOT RECOMMENDED).
  8. 판매자정보
Outline

Interface


제조사  Datasheet(NOT RECOMMENDED)는 내용이 부실,  동일 사양 다른 제조사 Datasheet(Recommended)를 참고 하였습니다.

  1. Pin No. 13(VDD) 3.8V ~ 5V 까지 동작됩니다.                                                                      
  2. Pin No. 12(V0), 17(VOUT) 3(VEE) Datasheet에는 Contrast  정보가 없습니다 Schematic 참고하세요 .
  3. Pin No. 15(CSA), 16(CSB)  Datasheet에는 Chip Select 정보가 없습니다 Chip Select 를 참고하세요.
  4. Pin 19,20(LED Backlight)은 1/4W 10R 저항  2개 병렬(5R) 연결하시면 됩니다  Schematic 참고하세요.
  5. MCU fOSC 4MHz ~ 25MHz 까지 코드 수정없이 동작됩니다.                                                       
MCG2305-A1-E Pin Assigment

Chip Select


화면은  3개의 Chip이 각  영역을 담당합니다, Datasheet에서는 표시 영역에 따라 Left, Middle,  Right로 표현하고 있으며 CHIP_0는Left , CHIP_1는 Middle, 마지막 CHIP_2가 Right 입니다 

어떤 칩에 신호를 줘야 할지는 (현재 x축 좌표 / 64) 값으로 알수 있으며 아래 그림은 해당 영역별로  CSB, CSA 설정값을 보여주고 있습니다.


Segment Driver Allocation
// 현재 x 좌표가 담당할 Chip No. 번호 가져오기

#define _chip_get_no(x) ((x/LCD_CHIP_WIDTH)) // get current Chip No. 

// Chip No.에 따른 CSB, CSA 설정
/* Specify a controller between  0 and LCD_X_PIXEL-1  */
static void _chip_select(uint8_t device)
{
 /*
   LCD_CHIP0    0 ~   63
   LCD_CHIP1   64 ~  127
   LCD_CHIP2  128 ~  191

    CSB CSA Function
      0   0 Enable access to the Left Side      (64 column) of the LCD module   // LCD_CHIP_1
      0   1 Enable access to the Middle Section (64 column) of the LCD module   // LCD_CHIP_2
      1   0 Enable access to the Right Side     (64 column) of the LCD module   // LCD_CHIP_3
      1   1 Disable all the access to LCD module                                // UNSELECT
 */
  switch(device)
  {
    case(LCD_CHIP_0):
     LCD_CTRL_PORT   &=  ~(_BV(LCD_CSB_PIN) |_BV(LCD_CSA_PIN));
     break;
    case(LCD_CHIP_1):
      {
        LCD_CTRL_PORT &=  ~(_BV(LCD_CSB_PIN));
        LCD_CTRL_PORT |=    _BV(LCD_CSA_PIN);
       break;
      }
    case(LCD_CHIP_2):
      {
        LCD_CTRL_PORT  |=   _BV(LCD_CSB_PIN);
        LCD_CTRL_PORT  &= ~(_BV(LCD_CSA_PIN));
        break;
      }
   default:
     break;
  }
#ifdef _FAST_MCU_
  _delay_us(LCD_tASU);
#endif
}

Schematic

Atmega328p 20MHz


Download

Source code Schematic(Eagle cad, pdf, jpg) Datasheet

Useful Links

Universal Graphics Library for 8 Bit Embedded Systems KS0108 Graphics LCD library(Arduino) If you have any questions, please feel free to ask. Enjoy!

No comments:

Post a Comment