s3c2410与s3c2440的全方位对比

来源:互联网 发布:java设计模式详解pdf 编辑:程序博客网 时间:2024/05/25 18:09

细节是魔鬼,只有在细节上充分积累的工程师才会在技术上有成长的空间!
*****************************************************************************************************
  1. 最高主频不相同:2410为200M,2440为400M。
      我们在用这两款处理器时,一般使用的主频是不相同的,而这个不相同,不仅影响是的运行的速度,最主要的是会影响一些外设(如串口)的时钟,这些外设的时钟如果不正确,就会出现问题。
      又比如内存总线设置,2410 和 2440 主频不一样,总线定时所要求的时钟数也会不一样。
----------------------------------------------------------------------------

  2. MPLL和UPLL的计算公式不相同:2440的MPLL是2410的两倍;2440的MPLL计算与UPLL的计算不相同。
       2410输出时钟频率 Mpll/Upll 相对于参考输入时钟频率 Fin 如以下公式所示:
PLL Control Register (MPLLCON and UPLLCON)
  (M/U) pll = (m * Fin) / (p * 2s)
   m = (MDIV + 8), p = (PDIV + 2), s = SDIV
      2440输出时钟频率 Mpll 相对于参考输入时钟频率 Fin 如以下公式所示:
MPLL Control Register
   Mpll = (2 * m * Fin) / (p * 2^S)
   m = (MDIV + 8), p = (PDIV + 2), s = SDIV
      2440输出时钟频率 Upll 相对于参考输入时钟频率 Fin 如以下公式所示:
UPLL Control Register
   Upll = (m * Fin) / (p * 2^S)
   m = (MDIV + 8), p = (PDIV + 2), s = SDIV
----------------------------------------------------------------------------

    3. 时钟寄存器设置:2410 需设置 clkdivn、clkcon、upllcon、mpllcon 共 4 个寄存器,2440则多一个寄存器 camdivn 需要设置。 2410 设置完 mpllcon 后可以立即设置 upllcon,  2440则需要在两者中间插入 7 条 nop 指令。
        时钟分频寄存器也有很大的区别:2440的CLKDIVN比2410多了一个字段DIVN_UPLL;而且字段DIVN比2410多了几种选择,并且和 CAMDIVN有关,如下所示:
2440 DIVN_UPLL:
UCLK select register(UCLK must be 48MHz for USB) 0
0: UCLK = UPLL clock
1: UCLK = UPLL clock / 2
Set to 0, when UPLL clock is set as 48MHz
Set to 1. when UPLL clock is set as 96MHz.
2440 HDIVN:
00 : HCLK = FCLK/1.                     00
01 : HCLK = FCLK/2.
10 : HCLK = FCLK/4 when CAMDIVN[9] = 0.
       HCLK= FCLK/8 when CAMDIVN[9] = 1.
11 : HCLK = FCLK/3 when CAMDIVN[8] = 0.
       HCLK = FCLK/6 when CAMDIVN[8] = 1.
----------------------------------------------------------------------------

    4. CPU需从快速总线模式转变为异步模式的条件不同,如下所示:
2410:
     If HDIVN=1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus
    mode using following instructions.
       MMU_SetAsyncBusMode
           mrc p15,0,r0,c1,c0,0
           orr r0,r0,#R1_nF:OR:R1_iA
           mcr p15,0,r0,c1,c0,0
2440:
      If HDIVN is not 0, the CPU bus mode has to be changed from the fast bus mode to the asynchronous
bus mode using following instructions(S3C2440 does not support synchronous bus mode).
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
----------------------------------------------------------------------------

    5.   2410 和 2440 的 nand 驱动也非常相似,主要区别在于:
       (1)2410 仅支持小块 nandflash,2440 则同时支持大块 nandflash。
       (2)为支持大块 nandflash,2440 增加了许多寄存器。
       (3)2440 增加了一个控制寄存器 NFCONT,原 2410 中 config 寄存器 NFCONF 中的部分功能被转移到 NFCONT 中。
   
         两者代码的主要不同,体现在 nand.h 文件中,差异点:
        (1)struct nand_reg 结构的定义不同。
        (2) 两者 NFCONF 寄存器中对 talcs 的定义不同,在 nand.h 中:
                  #define cn_talcs          0 //1clk(10ns)------for2410
                  #define cn_talcs          1 //1clk(10ns)------for2440
         (3) 2410 中,片选控制在 NFCONF 寄存器的 bit.11 中,2440 则在 NFCONT 的 bit.1 中,使下列两个宏的定义不同。
   2410 中:
        #define ce_active()     (pg_nand_reg->NFCONF &= ~(1<<11))
        #define ce_inactive()  (pg_nand_reg->NFCONF |= (1<<11))
    2440 中:
        #define ce_active()     (pg_nand_reg->NFCONT &= ~(1<<1))
        #define ce_inactive()  (pg_nand_reg->NFCONT |= (1<<1))
---------------------------------------------------------------------------------------

    6. 2440比2410新增加AC'97编解码器接口。

    7. 2440比2410新增加Camera interface,摄像头的接口。

    8. 2440比2410具有更多可用的I/O口,主要增加了DPJ端口组,其13个。

    9. 2410 和 2440 的串口结构几乎一样,不同点在于:
      (1)、2410 的串口 fifo 是 16 字节,而 2440 是 64 字节。
      (2)、由于 fifo 深度不同,导致 UFSTAT 寄存器中个位的定义不一致。
        这种相似性使得两者驱动程序的差异也非常小,读者可以直接比较两者的 uart.c 文件。

    10. 支持更多分辨率液晶屏;无需外围电路的触摸屏接口。

    11. 引脚:2440和2410不是pin-to-pin compatible,引脚功能相差很大。

    12. 封装:2410为 272-FBGA;2440 为289-FBGA。

    13. 具有工业级温度范围。

    14. 更低的内核电压,支持低电压存储器。


本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_liweikui_22409.html