본문 바로가기

[TI]/LM3S2xxx

[LM3S2616 EVM] GLCD(ST7516) 테스트

[LM3S2616 EVM] GLCD(ST7516) 테스트


LM3S2616을 이용하여 GLCD 모듈을 테스트 하는데 CS핀이 PC3으로 JTAG핀과 공용으로 사용된다.
Lunmiary Micro Cortex-M3는 JTAG핀을 GPIO로 사용할수 있지만 GPIO로 사용할 경우 JTAG을 사용할 수 없기 때문에 JTAG로 개발하거나 디버딩할 때 상당히 힘들다.

특정 핀을 이용해 JTAG모드로 사용할것인지 GPIO로 설정할 것인지를 선택할 수 있도록 하거나 리셋직후 일정 시간후 JTAG모드에서 GPIO모드로 전환하도록 하는 방법이 있겠지만... 아무튼 신경 쓰지 않으면 문제가 있을 수 있다.

시리즈마다 설정이 조금씩 다른것 같다. LM8962에서 잘 사용했던 코드를 LM3S2616보드에 그대로 적용해서 테스트 했는데 잘 안되서 예제 코드를 살펴 보니 아래와 같이 다르게 설정이 되어 있었다. 아무래도 최신 Dust Devil제품이라 좀 다른것 같다.
GPIO_LOCK_KEY_DD 로 설정하니 문제 없이 동작한다.

#define LCD_DAT      BIT4
#define LCD_DAT1()      Sbi(PORTA, LCD_DAT)
#define LCD_DAT0()      Cbi(PORTA, LCD_DAT)

#define LCD_DI      BIT6
#define LCD_RSON()     Sbi(PORTC, LCD_DI) 
#define LCD_RSOFF()     Cbi(PORTC, LCD_DI)

#define LCD_CLK      BIT2
#define LCD_CLKON()     Sbi(PORTA, LCD_CLK)
#define LCD_CLKOFF()     Cbi(PORTA, LCD_CLK)

#define LCD_CS1      BIT3
#define LCD_CS1ON()     Sbi(PORTC, LCD_CS1) 
#define LCD_CS1OFF()    Cbi(PORTC, LCD_CS1)

#define GLCD_PORT_INIT()   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);\
         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);\
         SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);\
        HWREG(GPIO_PORTC_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;\
        HWREG(GPIO_PORTC_BASE + GPIO_O_CR) = 0x08;\
        HWREG(GPIO_PORTC_BASE + GPIO_O_AFSEL) &= 0xf7;\
         GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, BIT2|BIT4);\
         GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, BIT3|BIT6);\
         GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, BIT0|BIT1);


ST7516 Glcd 출력 테스트
반응형