STM32F746G-DISCO 보드에서 사용되는 STM32F746NG 에는 외부 메모리와의 인터페이스를 위해 Flexible Memory Controller (FMC)가 있는데 아래 3가지 컨트롤러를 지원합니다.
• NOR/PSRAM 메모리 컨트롤러
• NAND 메모리 컨트롤러
• 동기식(Synchronous) DRAM(SDRAM/Mobile LPSDR SDRAM) 컨트롤러
STM32F746NG의 FMC는 아래와 같은 특징을 가지고 있습니다.
• Interface with static-memory mapped devices including:
– Static random access memory (SRAM)
– NOR Flash memory/OneNAND Flash memory
– PSRAM (4 memory banks)
– NAND Flash memory with ECC hardware to check up to 8 Kbytes of data
• Interface with synchronous DRAM (SDRAM/Mobile LPSDR SDRAM) memories
• 8-,16-,32-bit data bus width
• Independent Chip Select control for each memory bank
• Independent configuration for each memory bank
• Write FIFO
• Read FIFO for SDRAM controller
• The Maximum FMC_CLK/FMC_SDCLK frequency for synchronous accesses is HCLK/2.
아래는 FMC의 블록다이어그램입니다.
위에서 설명한 바와 같이 3개의 컨트롤러가 들어가 있으며 각 컨트롤러별 시그널 라인은 개별적으로 가지고 있으나 어드레스와 데이터 라인은 공유하는 형태로 사용되어 동시 사용은 안되며 한 시점에 CS에 의해 선택된 하나의 외부 메모리만 동작됩니다.
FMC 메모리 뱅크는 각 뱅크 별로 256MB씩 할당되어져 있는데 Bank1은 NOR 플래시 메모리 또는 PSRAM의 어드레스를 최대 4개까지 서브 뱅크로 사용할 수 있으며, Bank3는 NAND 플래시용으로, Bank4와 Bank5는 SDRAM용으로 사용될 수 있습니다.
아래는 SDRAM address mapping관련 내용인데 HADDR[28]에 의해 SDRAM bank를 선택할 수 있으며 bank/row/col은 memory width별로 address가 지정되어 있습니다.
STM32F746NG의 FMC의 컨트롤러 중 STM32F746G-DISCO보드에서 사용해 볼 수 있는 SDRAM 컨트롤러의 특징은 아래와 같습니다.
• Two SDRAM banks with independent configuration
• 8-bit, 16-bit, 32-bit data bus width
• 13-bits Address Row, 11-bits Address Column,
4 internal banks: 4x16Mx32bit(256 MB), 4x16Mx16bit (128 MB), 4x16Mx8bit (64 MB)
• Word, half-word, byte access
• SDRAM clock can be HCLK/2 or HCLK/3
• Automatic row and bank boundary management
• Multibank ping-pong access
• Programmable timing parameters
• Automatic Refresh operation with programmable Refresh rate
• Self-refresh mode
• Power-down mode
• SDRAM power-up initialization by software
• CAS latency of 1,2,3
• Cacheable Read FIFO with depth of 6 lines x32-bit (6 x14-bit address tag)
STM32F746G-DISCO보드에서 사용하는 SDRAM은 Micron사의 MT48LC4M32B2를 사용하는데 실제 128Mbit 가 지원되지만 하위 16bit만 사용하기 때문에 실제적으로는 64Mbit만 액세스가 가능합니다. 아래는 en.DM00190424.pdf의 SDRAM관련 내용입니다.
위 내용대로 아래 회로도를 살펴보면 상위 데이터 16bit는 풀다운 저항으로 연결되어 미사용으로 설정된 것을 확인할 수 있습니다.
아래는 SDRAM을 access 하기 위한 signal을 보여 주고 있는데 CLK(1bit), CKE(2bit), NE(2bit), Addr(13bit), Data(32bit), BA(2bit), RAS(1bit), CAS(1bit), WE(1bit), NBL(4bit)등의 시그널 라인을 가지고 있습니다.
위 회로도를 보시면 DQM[1:0]만 사용되므로 하위 16bit 데이터만 사용하는 것을 알 수 있습니다.
'Hardware > STM32' 카테고리의 다른 글
[STM32F746G-DISCO] LTDC 사용하기 (0) | 2024.07.09 |
---|---|
[STM32F746G-DISCO] SDRAM 사용하기 (0) | 2024.07.08 |
[STM32F746G-DISCO] ADC 사용하기 (0) | 2024.07.07 |
[STM32F746G-DISCO] RCC (Reset and Clock Control) (0) | 2024.07.07 |
[STM32F746G-DISCO] SPI 사용하기 (feat. OLED) (0) | 2024.07.06 |
댓글