單片機(jī)以太網(wǎng)控制芯片W7100A數(shù)據(jù)手冊(一)
1.4.7
注:當(dāng)用戶利用標(biāo)準(zhǔn)的8051接口使用外部存儲(chǔ)器時(shí),用戶可以利用ALE引腳控制,在P0[7:0]傳輸數(shù)據(jù)[7:0]或地址[7:0]。
1.4.8
為了獲得最佳性能,
1.盡可能使RXIP/RXIN信號(hào)對的長度(RX)相等。
2.盡可能使TXOP/TXON信號(hào)對(TX)的長度相等。
3.盡可能使RXIP和RXIN的信號(hào)靠近。
4.盡可能使TXOP和TXON的信號(hào)靠近。
5.盡可能使RX和TX的信號(hào)對遠(yuǎn)離一些如偏置電阻或晶振的噪聲信號(hào)。
6.使TX/RX的信號(hào)對保持正常。
欲了解更多詳情,請參閱”W5100 Layout Guide.pdf.”
1.4.9
1.4.10
1.5 64引腳封裝說明
1.5.1
注:在64引腳封裝的情況下,PHY模式必須由PHYCONF SFR設(shè)置。因此,用戶必須設(shè)置MODE_EN位以啟動(dòng)MODE2~0位的配置。然后設(shè)置MODE2~0的值和控制PHY_RSTn位以至PHY復(fù)位。復(fù)位后,64引腳封裝的芯片將被初始化和正常運(yùn)作。當(dāng)用戶使用64引腳封裝芯片時(shí),下面的代碼必須在芯片初始化程序中執(zhí)行。
如需了解更多詳細(xì)PHYCONF SFR的資訊,請參閱第2.5.10"新的和擴(kuò)展的SFR"。
W7100A的存儲(chǔ)器分為兩種類型:“代碼存儲(chǔ)器”和“數(shù)據(jù)存儲(chǔ)器”。每個(gè)存儲(chǔ)器可以使用內(nèi)存鎖定功能。如果存儲(chǔ)器被鎖定,從外部訪問內(nèi)部存儲(chǔ)器將會(huì)被拒絕,也不能使用W7100A的調(diào)試器。如需詳細(xì)地了解更多有關(guān)內(nèi)存鎖定功能的資訊,請參閱"WizISP程序指南"。
圖2.1展示了W7100A存儲(chǔ)器的大致結(jié)構(gòu)。
圖2.1 代碼/數(shù)據(jù)存儲(chǔ)器連接
注意:
我們推薦使用一個(gè)外部低壓電源探測器以預(yù)防電源電壓供給不足時(shí)的系統(tǒng)故障。
這將有效避免數(shù)據(jù)flash和代碼flash數(shù)據(jù)丟失,SPAM數(shù)據(jù)丟失和CPU寄存器數(shù)據(jù)丟失。
請參考WIZnet網(wǎng)站上的iMCU W7100A的電路圖
(集成電路例如:MAX811,MIC811,DS1811)
2.1 程序存儲(chǔ)器
“程序存儲(chǔ)器”包括從0x0000到0x07FF的啟動(dòng)ROM和從0x0000到0xFFFF的用戶代碼flash。系統(tǒng)重啟之后,W7100A通常執(zhí)行”程序存儲(chǔ)器”中的啟動(dòng)代碼。根據(jù)BOOTEN引腳(高低電平的不同),所執(zhí)行的啟動(dòng)代碼也不同。圖2.2顯示了啟動(dòng)代碼的流程。啟動(dòng)之后,根據(jù)BOOTEN的電平,系統(tǒng)執(zhí)行ISP進(jìn)程或APP入口程序。當(dāng)選擇了ISP進(jìn)程后(BOOTEN=1),啟動(dòng)ROM中的ISP代碼將會(huì)運(yùn)行,否則(BOOTEN=0),系統(tǒng)跳到APP入口處而不執(zhí)行ISP程序。
ISP程序用于WizISP編程(當(dāng)用戶往代碼FLASH中寫代碼時(shí))。APP入口用于運(yùn)行用戶的應(yīng)用程序代碼。APP入口包括”存儲(chǔ)映射轉(zhuǎn)換代碼”和跳轉(zhuǎn)代碼(能跳到用戶應(yīng)用程序代碼FLASH存儲(chǔ)器的起始地址0x0000)。存儲(chǔ)映射轉(zhuǎn)換圖如下所示:
圖2.2 啟動(dòng)順序流程圖
W7100A有兩種初始狀態(tài) - “BOOT ROM/APP入口”和”FLASH存儲(chǔ)器”,如圖2.3所示。但是因?yàn)閱?dòng)ROM/APP入口和FLASH存儲(chǔ)器的地址是重疊的,它們都使用相同的地址(0x0000 ~ 0x07FF / 0xFFF7 ~ 0xFFFF),因此W7100A分別將”啟動(dòng)ROM/APP入口”和FLASH(64K)映射到代碼和數(shù)據(jù)存儲(chǔ)器。
用戶應(yīng)用程序代碼可以寫到FLASH中(映射為數(shù)據(jù)存儲(chǔ)器)。但在這種狀態(tài)下,FLASH不能作為程序存儲(chǔ)器,因?yàn)檫@種狀態(tài)是應(yīng)用于寫入應(yīng)用程序代碼。要將FLASH作程序存儲(chǔ)器使用,需要進(jìn)行存儲(chǔ)器映射的切換。為了達(dá)到這個(gè)要求,用戶需要設(shè)置BOOTEN為’0’,以選擇用戶應(yīng)用程序模式,啟動(dòng)代碼立即跳到應(yīng)用程序入口,然后應(yīng)用程序入口將禁止BOOT ROM,且將
FLASH存儲(chǔ)器映射為程序代碼存儲(chǔ)器,如圖2.3所示。改變程序代碼存儲(chǔ)器映射后,應(yīng)用程序入口跳轉(zhuǎn)到程序代碼的起始地址(0x0000),工作過程如下:
圖2.3 應(yīng)用程序入口(APP ENTRY)處理
如果選擇APP模式,整個(gè)64K的FLASH都將作為程序存儲(chǔ)器,但兩個(gè)FLASH和APP入口的地址都是重疊的。因此,為了完整使用64K的FLASH,”APP入口”必須從代碼存儲(chǔ)器中解除映射,為了達(dá)到這個(gè)目的,用戶應(yīng)該在啟動(dòng)代碼中將WCONF(0xFF)中的RB位置為0。這一過程如下所示:
圖2.4 RB=0時(shí)改變程序存儲(chǔ)器狀態(tài)
WCONF(0xFF)
當(dāng)FLASH區(qū)域超過0xFFF7時(shí),下面的代碼必須加入到啟動(dòng)代碼中。如果使用這種方法,W7100A在系統(tǒng)復(fù)位后將立即禁止APP入口地址。
在啟動(dòng)代碼中設(shè)置引腳BOOTEN為0,且清WCONF的RB位,那么W7100A內(nèi)部的64K FLASH將全部作為程序存儲(chǔ)器使用。
2.1.1
程序存儲(chǔ)器的等待狀態(tài)是由內(nèi)部WTST(0x92)進(jìn)行管理的,等待狀態(tài)的周期是由WTST寄存器確定的。詳細(xì)內(nèi)容請參考2.5.10節(jié)’新的 & 擴(kuò)展的SFR’。
W7100A內(nèi)部有64K字節(jié)的RAM、64K字節(jié)的TCPIP內(nèi)核和255字節(jié)的數(shù)據(jù)FLASH。數(shù)據(jù)FLASH用于存儲(chǔ)用戶IP地址、MAC地址、子網(wǎng)掩碼、端口號(hào)等。另外W7100A有16M的數(shù)據(jù)存儲(chǔ)外擴(kuò)能力,下圖是數(shù)據(jù)存儲(chǔ)映射圖。這個(gè)存儲(chǔ)器只能通過MOVX指令訪問,外部存儲(chǔ)器可以由用戶自己擴(kuò)展。
圖2.5 數(shù)據(jù)存儲(chǔ)映射
2.2.1
數(shù)據(jù)存儲(chǔ)器的等待狀態(tài)由CKCON(0x8E)進(jìn)行管理。等待狀態(tài)的周期是由是由CKCON中的值確定的。請參考2.5.10節(jié)’新的&擴(kuò)展的SFR’的內(nèi)容。
2.3 外部數(shù)據(jù)存儲(chǔ)器訪問
外部地址引腳和數(shù)據(jù)引腳有兩種訪問模式。第一種模式是用標(biāo)準(zhǔn)8051的地址鎖存方式,第二種是直接將所有引腳作為地址線。用戶也可以用地址引腳和數(shù)據(jù)引腳作為GPIO。請參考第10節(jié)’電氣特性’中關(guān)于外部存儲(chǔ)器訪問速度的內(nèi)容。
表2.1 外部存儲(chǔ)器訪問模式
2.3.1
這種方法的外部接口與通用8051一樣。但是地址范圍可以通過設(shè)置EM[2:0](外部存儲(chǔ)器模式,在WCONF(0xFF)中)來設(shè)置可訪問的地址范圍。當(dāng)用戶設(shè)置EM[2:0]到”001”,P0用于地址/數(shù)據(jù)總線,P2用于高位地址(A[15:8])。P1和P3用于GPIO。如下圖所示:
圖2.6 標(biāo)準(zhǔn)8051外部引腳訪問模式(EM[2:0]=“001”)
當(dāng)用戶設(shè)置EM[2:0]為”011”,就像上面的情形一樣,P0用于地址/數(shù)據(jù)總線,P2用于較高位的地址線(A[15:8])。但是P3用于最高位的地址總線(A[23:16]),地址總線被擴(kuò)展了。剩下的P1用作GPIO,如下圖所示:
圖2.7 標(biāo)準(zhǔn)8051外部引腳訪問模式(EM[2:0]=“011”)
在標(biāo)準(zhǔn)8051外部引腳的訪問模式下,MCU控制著ALE(地址鎖存使能)信號(hào)來區(qū)分地址和數(shù)據(jù)信號(hào)。用戶可以通過ALECON(0x9F)來設(shè)置ALE信號(hào)的持續(xù)長度,對于ALECON的詳細(xì)信息,參考2.5.10節(jié)’新的&擴(kuò)展的SFR’。
這種方法直接將端口與地址線相連,當(dāng)用戶設(shè)置EM[2:0]為”101”,P0用于數(shù)據(jù)線(D[7:0],P1作為低地址線(A[7:0]),P2用于較高地址線(A[15:8])。剩下的P3用于GPIO。用這種方法,用戶能將端口連向地址線而不用地址鎖存,如下圖所示。
圖2.8 直接8051外部引腳訪問模式(EM[2:0]=“101”)
當(dāng)用戶設(shè)置EM[2:0]為”111”,P0,P1,P2與上一種情況的功能一樣,P3用于高端地址(A[23:16])。在這種模式下,沒有端口可用于GPIO,如下圖所示。
圖2.9 直接8051外部引腳訪問模式(EM[2:0]=“111”)
2.4 內(nèi)部數(shù)據(jù)存儲(chǔ)器和特殊功能寄存器
內(nèi)部存儲(chǔ)器和特殊功能寄存器的地址映射如下圖表示:
圖2.10 內(nèi)部存儲(chǔ)器映射
內(nèi)部RAM的最低地址有4組分區(qū),每個(gè)分區(qū)包含8個(gè)寄存器;還有一個(gè)可以位尋址的字節(jié)段,地址范圍在0x20~0x2F,共128位,一個(gè)208字節(jié)的緩存區(qū)(0x30~0xFF),非直接地址模式范圍是:0x80~0xFF,最高128字節(jié)可以作為內(nèi)部存儲(chǔ)器訪問。但直接地址總線模式下的0x80~0xFF,這個(gè)區(qū)域作為SFR來訪問的。
圖2.11 SFR存儲(chǔ)器映射圖
新的SFR
擴(kuò)展的SFR –在標(biāo)準(zhǔn)8051基礎(chǔ)上擴(kuò)展的寄存器,在本節(jié)將詳細(xì)描述這些寄存器。
標(biāo)準(zhǔn) – 標(biāo)準(zhǔn)8051特殊功能寄存器,也將在本節(jié)描述。
最左邊那些地址的尾數(shù)為0或8的特殊功能寄存器都算可以位尋址的。
2.1 特殊功能寄存器(SFR)定義
下面將描述W7100A內(nèi)核的特殊功能寄存器及其他們的功能。請參考2.5.11”外設(shè)特殊功能寄存器”章節(jié),了解標(biāo)準(zhǔn)的特殊功能寄存器和外設(shè)特殊功能寄存器。
2.5.1
在PCON寄存器內(nèi)有一個(gè)程序存儲(chǔ)器”寫”允許位(PWE),它禁止或允許使用MOVX指令對程序存儲(chǔ)器進(jìn)行寫操作。
當(dāng)PWE設(shè)置”1”時(shí),”MOVX @DPTR,A”指令將數(shù)據(jù)從累加器A寫到程序存儲(chǔ)器中,地址由DPTR寄存器(DPH:DPL)確定。
“MOVX @Rx, A”指令將數(shù)據(jù)從累加器A寫入到程序存儲(chǔ)器中,地址由P2寄存器(bits 15:8)和Rx寄存器決定(bits 7:0)。
PCON(0x87)
圖2.12 PCON寄存器的PWE位
注意:
1.
2.5.2
等待狀態(tài)寄存器提供程序存儲(chǔ)器訪問時(shí)間信息。
WTST(0x92)
圖2.13 程序存儲(chǔ)器等待狀態(tài)寄存器
注意:
1.
2.
表2.2 WTST寄存器的值
取指令時(shí),程序存儲(chǔ)器只能由MOVC指令訪問,程序存儲(chǔ)器可以最小4個(gè)時(shí)鐘等待狀態(tài)進(jìn)行讀操作,時(shí)序圖如下。
圖2.14 最少等待狀態(tài)(WTST=‘4’)時(shí),對程序存儲(chǔ)器同步讀的波形圖
說明:
1.Clk
2.ADDRESS
3.CODE_RD
4.CODE
程序存儲(chǔ)器可以用MOVX指令以最小4個(gè)時(shí)鐘周期寫入,它可以使W7100A內(nèi)核對高速和低速程序存儲(chǔ)器操作,時(shí)序圖如下:
圖2.15 最小等待狀態(tài)(WTST=‘4’)程序存儲(chǔ)器寫時(shí)序圖
注意:
1. Clk
2. ADDRESS
3. CODE
4. CODE_WR
5. PRG
評論