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

Device Control

twoweeks-within 2025. 1. 13. 02:10

Device : MCU 외부에 달려있는 외부 IC

  > Interface 

      CS/ (CE/)  pin // Chip selection (MCU 입장), Chip Enable ( Chip 입장)

// ' / ' : bar : NOT > Low Active

      DATA pins ( 묶음 ) // 병렬, I2C,SPI...

// OE/ ,AWD/  : 부가 pin

      CLK pin

 

외부 IC(intergrated Chip : 집적회로) 에 명령을 내린다는건?

1. CE/ : LOW

2. Device에 binary sequence 를 data line을 통해 보냄

3. 확인차 잠시대기

4. 잘 처리했는지 상태 전달받음

5. CE/ : HIGH

 

                                                          

1.        MCLK : HIGH 

 >  CS/  : LOW 로 떨어짐

 

2. OE_N : t(ard) 시간만큼 HIGH > t(a) 만큼 대기

 

3. t(rdsl) 만큼 DATA가 유지되어야 MCU가 DATA capture 가능

-----------------------------------------------------------

 -<>- : 그때 해당하는 값이 HIGH, LOW이든 상관 X

 

Port : pin들의 묶음 

ex) USB통신 

     :USB TX, RX pin등이 필요  > 한번에 묶음 (HW)

      :  그런 pin들의 논리적인 구멍 (SW)

 

Memory Mapped I/O : Memory Address 를 I/O 에 직접 할당 > Memory Access >  pin들에 접근

   Memory 에 I/O 를 위한 Regi 할당

    > Meomory에 DATA 를 쓰면 외부 I/O 로 직접 신호 전달 

    <> 외부에서 I/O 에서 Data를 읽을 수 있음

>>ex) Key pad sensing을 위한 주소 : 0x68000050의 3번 bit에 에 할당되어 있으면 (Register가 있으면)

       #define read(port)       (*((volatile dword *)(port)))
       #define KEYSENSE_RD_ADDR                                      0x68000050
       if(!(read(KEYSENSE_RD_ADDR) & 0x08))  // 0x08 == 00000100 : 3번핀

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

Memory Device Control  (0) 2025.01.13
Register Setting  (0) 2025.01.13
Kernel Porting  (0) 2025.01.11
Bootup 중 kernel로 진입 - main()  (0) 2025.01.11
Watch dog  (0) 2025.01.11