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 |