最近在配置omapl138的mDDR内存控制器。关于 SDTIMR2 寄存器的 T_RASMAX 值计算,有疑问如下:
假如 mDDR datasheet里有此参数 70us;mDDR时钟132MHz
1:按照StarterWare里提供的gel文件里的计算方式为(((unsigned int) ((70000 * freq / 1000) – 1)) << 27) | // tRASMAX。这样计算得出的结果已经超出了范围。而且和omapl138 datasheet里357页提供参考示例也对不上。357页的计算方式貌似是 70us/7.8us得到的参数。
2:StarterWare里bl_platform.c文件中提供的有关mDDR的是直接赋值的,关于DDR2的计算方式如下
(((unsigned int) ((70000 / 7800) – 1)) << 27) | // tRASMAX (original 3400),这也和第1中里面的不一致。感觉这种算法应该是合理的。
刚刚开始接触DDR,希望百忙之中抽出时间给予答复,谢谢!
Tony Tang:
Weihua,
(((unsigned int) ((70000 / 7800) – 1)) << 27)是对的。最开始搞错了,看来是有的地方改过来了,有的地方遗漏了。