STM32F407VET6 회로도를 보면, PC8~PC11 4 개의 핀이 SDIO-D0~D3 데이터 용도로 연결되어 있고 PC12, PC2 핀은 CLK, CMD 핀으로 사용됩니다. 그리고 PD3 핀은 카드 삽입 여부를 판단하는데 사용됩니다.
PD3 핀을 GPIO_Input으로 설정
USART1
Basic Parameters:
Advanced Parameters:
GPIO Settings
SDIO
Parameter Settings:
User Constants:
GPIO Settings:
DMA Settings:
SDIO에서 DMA(Direct Memory Access) 를 사용하면 CPU가 개입하지 않고 메모리와 SD 카드 간의 데이터 전송을 자동으로 수행할 수 있습니다.
SDIO_TX와 SDIO_RX를 다음과 같이 설정합니다.
Data Width: Word (32bit)
4-bit 모드로 데이터를 전송하기 때문에 "Burst Size = 4" 설정합니다.
4 (Increment by 4) → DMA가 한 번에 4개의 데이터 전송
Peripheral Increment = DISABLE (SDIO 레지스터는 고정된 주소)
Memory Increment = ENABLE (메모리는 연속된 버퍼로 저장 필요)
NVIC Settings: