1. 最高主頻不相同:2410為200M,2440為400M。
我們在用這兩款處理器時,一般使用的主頻是不相同的,而這個不相同,不僅影響是的運行的速度,最主要的是會影響一些外設(shè)(如串口)的時鐘,這些外設(shè)的時鐘如果不正確,就會出現(xiàn)問題。
又比如內(nèi)存總線設(shè)置,2410 和 2440 主頻不一樣,總線定時所要求的時鐘數(shù)也會不一樣。
----------------------------------------------------------------------------
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. 時鐘寄存器設(shè)置:2410 需設(shè)置 clkdivn、clkcon、upllcon、mpllcon 共 4 個寄存器,2440則多一個寄存器 camdivn 需要設(shè)置。 2410 設(shè)置完 mpllcon 后可以立即設(shè)置 upllcon, 2440則需要在兩者中間插入 7 條 nop 指令。
時鐘分頻寄存器也有很大的區(qū)別:2440的CLKDIVN比2410多了一個字段DIVN_UPLL;而且字段DIVN比2410多了幾種選擇,并且和 CAMDIVN有關(guān),如下所示:
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需從快速總線模式轉(zhuǎn)變?yōu)楫惒侥J降臈l件不同,如下所示:
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 驅(qū)動也非常相似,主要區(qū)別在于:
(1)2410 僅支持小塊 nandflash,2440 則同時支持大塊 nandflash。
(2)為支持大塊 nandflash,2440 增加了許多寄存器。
(3)2440 增加了一個控制寄存器 NFCONT,原 2410 中 config 寄存器 NFCONF 中的部分功能被轉(zhuǎn)移到 NFCONT 中。
兩者代碼的主要不同,體現(xiàn)在 nand.h 文件中,差異點:
(1)struct nand_reg 結(jié)構(gòu)的定義不同。
(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 的串口結(jié)構(gòu)幾乎一樣,不同點在于:
(1)、2410 的串口 fifo 是 16 字節(jié),而 2440 是 64 字節(jié)。
(2)、由于 fifo 深度不同,導(dǎo)致 UFSTAT 寄存器中個位的定義不一致。
這種相似性使得兩者驅(qū)動程序的差異也非常小,讀者可以直接比較兩者的 uart.c 文件。
10. 支持更多分辨率液晶屏;無需外圍電路的觸摸屏接口。
11. 引腳:2440和2410不是pin-to-pin compatible,引腳功能相差很大。
12. 封裝:2410為 272-FBGA;2440 為289-FBGA。
13. 具有工業(yè)級溫度范圍。
14. 更低的內(nèi)核電壓,支持低電壓存儲器。
(肯定還有很多的區(qū)別,以后隨著實踐的增加,再繼續(xù)完善添加)