ARM 보드와 LCD 연결 및 소스 작성
⇒ PA16 - PIN.1(VSS-GND)
⇒ PA17 - PIN.2(VDD) / PIN.3(V0)
⇒ PA18 ~ PA23 - PIN.7~14(BUS)
⇒ PA24 - PIN.15(LEDK)
⇒ PA25 - PIN.16(LEDA)
PIN DESCRIPTION
No. |
Symbol |
Function |
|
1 |
VSS |
GND(0V) |
전원에 연결 |
2 |
VDD |
Power supply for Logic(+5.0V) | |
3 |
V0 |
Power supply for LCD drive | |
4 |
RS |
Register selection (H: Data register , L :Instruction register) |
arm에 연결 |
5 |
R/W |
Read/write selection (H: Read(CPU ← LCM) , L: Write(CPU → LCM)) |
arm에 연결 |
6 |
E |
Enable signal for LCM (Enable 신호가 들어오면 LCD가 켜진다.) |
전원 or arm |
7~14 |
DB0~DB7 |
Data Bus lines |
arm에 연결 |
15 |
LEDK |
Power supply for Backlight(0V) - LED Cathode |
전원 or arm |
16 |
LEDA |
Power supply for Backlight(+5.0V) - LED Anode |
전원 or arm |
- LCD PIN 납땜
- 브레드 보드에 연결
- PIN4(RS), PIN5(R/W), PIN6(E) 결선 - 각각 PA8, PA9, PA10
- source insight 실행 순서
⇒ New project → Browser 선택 → Add and Remove에서 파일선택 추가 → close
⇒ 추가파일
→ AT91SAN7S256.h(include)
→ cstartup.s
→ elf32_littlearm.lds
→ main.c
→ lowlevel.c
→ makefile
→ project.h(include)
- LED PIN 번호와 ARM 보드 연결 과정
32 24 |
23 BUS 16 |
15 |
제어 8 |
7 0 | |||||||||
|
|
|
10 |
9 |
8 |
| |||||||
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
E N |
TW |
R S |
↑ 11111111 << 16 |
RS 1 0000 0000 (0x100)
RW 10 0000 0000 (0x200)
EN 100 0000 0000 (0x400)
BS 1111 1111 0000 0000 0000 0000 (FF0000)
#define PIOA_PER (*(volatile unsigned int *)0xFFFFF400)
#define PIOA_OER (*(volatile unsigned int *)0xFFFFF410)
#define PIOA_PPUDR (*(volatile unsigned int *)0xFFFFF460)
#define PIOA_CODR (*(volatile unsigned int *)0xFFFFF434)
#define PIOA_SODR (*(volatile unsigned int *)0xFFFFF430)
#define CLCD_RS (1 << 8) // 0x100 (PA8)
#define CLCD_RW (1 << 9) // 0x200 (PA9)
#define CLCD_EN (1 << 10) // 0x400 (PA10)
#define CLCD_BS (0xFF << 16) // FF0000 (PA16~23)
void OUT_INIT(void)
{
// Configure the pin in output
PIOA_OER = CLCD_BS || CLCD_RS || CLCD_RW || CLCD_EN;
// 11가닥의 선이 활성화(PIN을 출력용으로)
// Set the PIO controller in PIO mode instead of peripheral mode
PIOA_PER = CLCD_BS || CLCD_RS || CLCD_RW || CLCD_EN;
// PIN enable
// Disable pull-up
PIOA_PPUDR = CLCD_BS || CLCD_RS || CLCD_RW || CLCD_EN;
// 해당하는 PIN의 불이 꺼진다.
}
int main(void)
{
volatile unsigned int iCount = 0;
OUT_INIT();
while (1)
{
PIOA_CODR = 0x00000001;
for(iCount=0;1000000 >= iCount; ++iCount);
PIOA_SODR = 0x00000001;
for(iCount=0;1000000 >= iCount; ++iCount);
}
return 0;
}
'내장형 하드웨어 > ARM' 카테고리의 다른 글
ADS v1.2 설치방법 (0) | 2011.09.05 |
---|---|
ARM - PIN DESCRIPOTION (0) | 2011.07.11 |