1. Pull-up/Pull-down 저항
플로팅(Floating) 현상
- 의미
- 디지털 입력 회로에서 입력 핀이 High 또는 Low 상태로 명확하게 결정되지 않고 불안정한 전압 레벨을 갖는 현상을 플로팅
- 외부 노이즈에 취약하며 오작동의 원인
Pull-up/Pull-down 저항의 역할
- Pull-up 저항
- 입력 핀을 VCC(High)에 연결하여 기본적으로 High 상태를 유지
- 외부에서 Low 신호가 입력되면 Low 상태로 변경
- Pull-down 저항
- 입력 핀을 GND(Low)에 연결하여 기본적으로 Low 상태를 유지
- 외부에서 High 신호가 입력되면 High 상태로 변경
BCM2711 GPIO Pull-up/Pull-down 제어
- BCM2711은 GPIO 핀의 Pull-up/Pull-down 상태를 소프트웨어적으로 제어할 수 있는 기능
- 외부 회로 구성을 간소화하고 입력 신호를 안정적으로 처리

2. BCM2711 ARM Peripherals
GPIO(General Purpose Input/Output)
- 범용 입출력 핀으로 디지털 입출력, 인터럽트, PWM 등 다양한 용도로 사용 가능
- 핀의 기능은 "Alternative Function" 설정을 통해 변경
SPI(Serial Peripheral Interface)
- 동기식 직렬 통신 인터페이스로, 센서, 메모리, 디스플레이 등 다양한 주변 장치와 통신하는 데 사용
- Master/Slave 모드, 데이터 전송 속도, 클럭 폴라리티(CPOL), 클럭 위상(CPHA) 등을 설정

UART(Universal Asynchronous Receiver/Transmitter)
- 비동기식 직렬 통신 인터페이스로, 주로 PC와의 시리얼 통신, GPS 모듈, 블루투스 모듈 등과의 통신에 사용
- 전송 속도(Baud Rate), 데이터 비트, 패리티 비트, 정지 비트 등을 설정
TIMER
- 시스템 클럭을 기반으로 정밀한 시간 측정 및 주기적인 인터럽트 생성이 가능
- PWM(Pulse Width Modulation) 신호 생성, 시간 기반 이벤트 처리 등에 활용
3. GPIO & Alternative Function Assignments
GPIO 핀의 다기능성
- BCM2711의 GPIO 핀은 단순 입출력 외에도 SPI, I2C, UART 다양한 대체 기능(Alternative Function) 을 수행
Alternative Function 설정
- GPIO 핀의 기능은 GPIO Function Select Registers (GPFSELn) 를 통해 설정
- 핀은 ALT0 ~ ALT5 까지 최대 6개의 기능을 가질 수 있으며 GPFSELn 레지스터의 해당 비트를 설정하여 원하는 기능을 선택
GPIO Pull-up/Pull-down 설정
- GPIO Pull-up/down Enable Registers(GPPUD)
- Pull-up/Pull-down 활성화 여부를 설정
- GPIO Pull-up/down Clock Registers(GPPUDCLKn)
4. Interrupts
인터럽트의 역할
- 인터럽트는 외부 이벤트 발생 시 현재 실행 중인 작업을 중단하고 해당 이벤트에 대한 처리 루틴(인터럽트 핸들러)을 실행하도록 하는 메커니즘
BCM2711 인터럽트 컨트롤러
- BCM2711은 ARM Core에서 발생하는 인터럽트와 Peripheral에서 발생하는 인터럽트를 관리하는 인터럽트 컨트롤러를 내장
인터럽트 설정
- 인터럽트 소스 활성화
- Peripheral의 인터럽트 활성화 레지스터를 설정
- 인터럽트 우선순위 설정
- 인터럽트 핸들러 등록
- ARM Core의 인터럽트 벡터 테이블에 해당 인터럽트 핸들러의 주소를 등록

5. 인터페이스 & 레지스터
인터페이스
- BCM2711은 GPIO, SPI, UART, TIMER 외에도 I2C, PWM, DMA 등 다양한 인터페이스를 제공
- 데이터시트에는 인터페이스의 동작 방식, 레지스터 설정, 타이밍 다이어그램 등이 상세히 기술
레지스터
- BCM2711의 모든 Peripheral 및 기능은 메모리 맵에 맵핑된 레지스터를 통해 제어
- 데이터시트에는 레지스터의 주소, 비트 필드, 기능, 설정 방법 등이 상세히 기술
6. 결론
Raspberry Pi 4B의 BCM2711 SoC 데이터시트를 기반으로 임베디드 시스템 개발에 필수적인 하드웨어 정보입니다. Pull-up/Pull-down 저항, 주요 Peripheral (GPIO, SPI, UART, TIMER), GPIO 핀 기능 설정, 인터럽트 처리 그리고 인터페이스 및 레지스터에 대한 분석을 통해 BCM2711의 기능을 이해하고자 했습니다.