Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90087
  • 博文数量: 22
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 240
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-03 11:02
文章分类

全部博文(22)

文章存档

2011年(1)

2010年(21)

我的朋友

分类: LINUX

2010-02-20 23:28:07

我期望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


发现,正常了。 开关某些宏也没有问题。
不知道那位高手能解释一下为什么阿? 小弟不甚感激。 为什么官方推荐的值竟然不能用?




阅读(1582) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

waderwang2010-03-26 11:11:57

没有人回答. 我今天突然略有所悟. 12.0000MHz 405.00 MHz 127(0x7f) 2 1 其中是405M. 但是S3C2440的datasheet上面写到: MPLL generates the clock to operate MCU at maximum 400Mhz @ 1.3V. 也就是说405M超出了400M,造成系统不稳定. 既然最大是400M,为什么datasheet里不给一个400M的推荐值? 搞不懂啊.