我期望s3c2440能够稳定的工作在400M主频上,
查看S3C2440的资料发现:
Input Frequency Output Frequency MDIV PDIV SDIV
48.00 MHz (Note)
12.0000MHz 56(0x38) 2 2
96.00 MHz (Note)
12.0000MHz 56(0x38) 2 1
12.0000MHz 271.50 MHz 173(0xad) 2 2
12.0000MHz 304.00 MHz 68(0x44) 1 1
12.0000MHz 405.00 MHz 127(0x7f) 2 1
12.0000MHz 532.00 MHz 125(0x7d) 1 1
47.98 MHz (Note)
16.9344MHz 60(0x3c) 4 2
95.96 MHz (Note)
16.9344MHz 60(0x3c) 4 1
16.9344MHz 266.72 MHz 118(0x76) 2 2
16.9344MHz 296.35 MHz 97(0x61) 1 2
16.9344MHz 399.65 MHz 110(0x6e) 3 1
16.9344MHz 530.61 MHz 86(0x56) 1 1
16.9344MHz 533.43 MHz 118(0x76) 1 1
比较接近的是: 红色部分, 于是我按照红色部分的值进行设置。
并且 FCLK :HLCK :PCLK = 1:4:8。
然后发现, 开始能够正常工作,但是u-boot中的某些宏开关后,发现程序莫名的死掉了。
非常的不稳定。
后来试着设置: MDIV PDIV SDIV
92 1 1
代码:
#define M_MDIV 92
#define M_PDIV 1
#define M_SDIV 1
/* configure MPLL */
clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); //FCLK=400M.
clk_power->CLKDIVN = 0x05; //P:H:F = 1:4:8
发现,正常了。 开关某些宏也没有问题。
不知道那位高手能解释一下为什么阿? 小弟不甚感激。 为什么官方推荐的值竟然不能用?