임베디드/임베디드 레시피

Device Interface의 CS, address 이용 - LCD

twoweeks-within 2025. 1. 14. 07:27

LCD Memory Map

 

Address      Target               Size
0x00000000 SDRAM_CS0_N    32MB
0x08000000 SDRAM_CS1_N    32MB

//0x0~80000000 SDRAM1  > LOW active 

//0x80000 ~~       SDRAM2 >  "

.....................중략......................
0x20000000 LCD_CS_N          3MB

// Chip Select : LOW active

// 3MB 사이의 주소를 Access
.....................생략......................

 

 

LCD controller : 3 Input

 ( CS/, ADS, DATA )

ADS : Command or Data 구분

DATA : command or Data

 

MCU 입장)

0x20000000~ 0x 202FFFFF : Access

  > LCD_CS_N : LOW 

  > Command : ADS > HIGH

     or  DATA : ADS > LOW

 

ex) Assembly

 

; Command Issue
LDR R0, #0x20000080 // A[7] : HIGH
LDR R1, #0xABCD
STR R1, [R0]
 
; Data Issue
LDR R0, #0x20000000  // A[7] : LOW
LDR R1, #0x1234
STR R1, [R0]

>>

STR R1, [R0, #OFFSET_LOW] ; LCD_CS_N 신호를 Low로 설정 // LCD_CS_N가 Low로 떨어지도록..

STR R2, [R0, #OFFSET_HIGH] ; ADS 신호를 High로 설정  //   ADS에 High 넣어서 Command가 날아갈 걸 알려줌                         

or

STR R1, [R0, #OFFSET_LOW]  

STR R2, [R0, #OFFSET_HIGH]  ; ADS에 Low를 넣어서 Data가 날아갈 걸 알려줌

  >> 이게 없는 이유

 

A[7] > ADS 에 연결되어있음

: A[7] High > ADS High <> LOW >LOW

  = 2^7 자리      1           <>     0

  > 2^7 = 128 = 0x80 

   // 1000 0000

>> 0x20000080 에 DATA 작성 

        > LCD_CS_N 도 LOW Active 

          + A[7] HIGH

 

ex) ADS가 A[0] 이라면?

  command  > LDR R0, #0x20000001
 Data Issue  >LDR R0, #0x20000000

>> C language

#define Main_LCD_Write_cmd (cmd)   (*(volatile word *)(0x200000080) = cmd
#define Main_LCD_Write_data (data)   (*(volatile word *)(0x200000000) = data
 
Main_LCD_Write_cmd (0xABCD);
Main_LCD_Write_data (0x1234);

 

volatile:

  • 컴파일러 최적화 방지 키워드
  • 메모리 맵 I/O : 외부 하드웨어가 값을 변경 가능, 컴파일러가 이를 최적화하지 못하도록 보장

word:

  • 데이터 타입, 32비트를 나타냄
  •  ARM 코어)  word: 4바이트 크기의 정수형 타입

>>

(*(volatile word *)(0x200000080) = 0xABCD);

(*(volatile word *)(0x200000000) = 0x1234);

 

 GRAM - Graphic Data를 넣어두는 LCD Controller 내부의 RAM 

'임베디드 > 임베디드 레시피' 카테고리의 다른 글

MACRO Technics  (0) 2025.01.14
shadow, Bit operation  (0) 2025.01.14
MCU의 외부통신, 컨트롤  (0) 2025.01.14
Memory Device Control  (0) 2025.01.13
Register Setting  (0) 2025.01.13