EVM RAM관련 정보
- RAM: DDR3L SDRAM (MT41K512M8RH-125)
- SIZE : 4-Gb (512Mb × 8) - 64 Meg x 8 x 8 banks
DRAM-1 Module RAM의 구성과 Type 및 각 용어 설명
DRAM-2 Memory의 성능향상 방법 Bank Interleaving 과 Burst Mode 및 DLL
2. OCP( Open Core Protocol)
OCP는 DRAM의 기능이 아니며, AM437x에서 사용하는 Core 나 Device 간에 통신을 하기위한 Interface이다.
현재 AM437x는 EMIF를 OCP로 연결하여 사용하고 있기에 이부분을 이해를 해야한다.
기본구조는 Master 와 Slave 구조를 가지고 있으며, AM437x도 OMAP과 동일하게 OCP Interface를 제공하며, 기존 다빈치시리즈는 제공하지 않음, (특히 ARM9 시리즈)
https://en.wikipedia.org/wiki/Open_Core_Protocol
https://en.wikipedia.org/wiki/Open_Core_Protocol_International_Partnership_Association
http://read.pudn.com/downloads95/doc/388103/OCPSpecification%202.2.pdf
이에 관련된 Register 설정을 확인을 해주고, 기본 OCP_CONFIG의 BUS WIDTH 및 기타 설정확인한다.
AM437x
- EMIF- One 128-bit OCPIP 2.2 interface
3. EMIF Register 설정
아래의 사이트에서 AC Timing에서 Tool을 제공해주고 있다.
쉽게 설정이 가능하며, 아래절차는 주의사항과 관련내용을 정리해본다.
http://processors.wiki.ti.com/index.php/AM437x_DDR_Configuration_and_Programming_Guide
- MT41K512M8RH-TIMING
DDR-3 (Table-1) |
DDR3 (Table-2) |
SDCONFIG와 SDTIMER TI에서 제공하는 엑셀을 이용하여 쉽게 설정가능하다.
A. EMIF->EMIF4D_SDRAM_CONFIG,2설정
- Table-2에서 CK에 의해 자동결정 CL(CAS Latency)과 CWL(CAS Write Latency) 결정
- CK=1.25ns 값 CL =11 CK와 CWL=8 CK 결정
- Reserved는 허용이 안됨
- SDCONFIG->CL=14(E), CWL=3 (주의: 엑셀이 HEX2BIN사용하므로, 10진수불가)
- 나머지값은 각각 데이타 시트 참고
Table-3 |
Electrical Characteristics and AC Operating Conditions(Table-4) |
B. EMIF->EMIF4D_SDRAM_TIMING_1,2,3설정
- 현재 모델은 DDR3-1600임 확인한다. (Table-1 확인)
- CK=1.25ns 값 ( CL =11 CK와 CWL=8 CK -> SDRAM_CONFIG에서 설정 )
- RCD=13.75ns, RP=13.75ns, RC=48.75ns 공통이며 최소 값으로 설정 (Table-2확인)
- RAS=35ns 최소설정 이는 RCD보다 반드시 커야한다. (Table-2)
- 세부 Timing 설정은 Table-4을 확인
- RRD(x8)=4CK , WR=15ns ,WTR= 4CK , RTP=4CK 으로 설정
- CCD=4CK, RFC-4Gb=260ns (Table-4)
- XS= 5CK , 되지만,RFC+10ns 설정으로 270ns 설정 , XSDLL=512CK
- REFI=7.8us 로 설정 (***** 85C 이하 일 경우에만)
- ZQCS=64CK ,XP=3CK
- ODTLon = CWL(8) +AL(10)-2CK = 16CK(에러발생) (3CK 설정 )
- RASmax=REFIx9
- DQSCK=10ns (DLL을 Disable 사용)
- RASMAX,RTW는자동설정됨
- AL(Additive Latency) = CL(11) -1CK = RCD - 1CK 설정
- RL(Read Latency)=AL(10)+CL(11)
- WL(Write Latency)=AL(10)+CWL(8)
C. EMIF->EMIF4D_SDRAM_REFRESH_CTRL
REFRESH_RATE= 800MHz / (1/tREFI)
ex) 400MHz 일경우, 400/ (1/7.8) = 3120
ex) 400MHz 일경우, 800/ (1/7.8) = 6240