版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C8051F020/1/2/3
混合信號ISPFLASH微控制器C8051F020/1/2/3
混合信號ISPFLASH1、概述2、交叉開關(guān)配置3、系統(tǒng)時鐘源
4、系統(tǒng)復位5、JTAG接口的在系統(tǒng)調(diào)試
6、單片機的初始化設(shè)置1、概述1、概述C8051F020器件是完全集成的混合信號系統(tǒng)級MCU芯片,具有64個數(shù)字I/O引腳(C8051F020/2)或32個數(shù)字I/O引腳(C8051F021/3)。下面列出了一些主要特性:高速、流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(可達25MIPS)全速、非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi))真正12位(C8051F020/1)或10位(C8051F022/3)、100ksps的8通道ADC,帶PGA和模擬多路開關(guān)真正8位500ksps的ADC,帶PGA和8通道模擬多路開關(guān)兩個12位DAC,具有可編程數(shù)據(jù)更新方式64K字節(jié)可在系統(tǒng)編程的FLASH存儲器4352(4096+256)字節(jié)的片內(nèi)RAM1、概述C8051F020器件是完全集成的混合信號
可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲器接口硬件實現(xiàn)的SPI、SMBus/I2C和兩個UART串行接口5個通用的16位定時器具有5個捕捉/比較模塊的可編程計數(shù)器/定時器陣列片內(nèi)看門狗定時器、VDD監(jiān)視器和溫度傳感器可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲器接口C8051F020入門指導解讀課件1.1CIP-51TMCPU1.1.1與8051完全兼容C8051F020系列器件使用SiliconLabs的專利CIP-51微控制器內(nèi)核。CIP-51與MCS-51TM指令集完全兼容,可以使用標準803x/805x的匯編器和編譯器進行軟件開發(fā)。
CIP-51內(nèi)核具有標準8052的所有外設(shè)部件,包括:5個16位的計數(shù)器/定時器、兩個全雙工UART、256字節(jié)內(nèi)部RAM、128字節(jié)特殊功能寄存器(SFR)地址空間、8/4個字節(jié)寬的I/O端口。1.1CIP-51TMCPU1.1.1與8051完全CIP-51采用流水線結(jié)構(gòu),與標準的8051結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高。1.1.2速度提高
在一個標準的8051中,除MUL和DIV以外所有指令都需要12或24個系統(tǒng)時鐘周期,最大系統(tǒng)時鐘頻率為12-24MHz。而對于CIP-51內(nèi)核,70%的指令的執(zhí)行時間為1或2個系統(tǒng)時鐘周期,只有4條指令的執(zhí)行時間大于4個系統(tǒng)時鐘周期。CIP-51采用流水線結(jié)構(gòu),與標準的80511.1.3增加的功能擴展的中斷系統(tǒng)向CIP-51提供22個中斷源(標準8051只有7個中斷源),允許大量的模擬和數(shù)字外設(shè)中斷微控制器。MCU可有多達7個復位源:一個片內(nèi)VDD監(jiān)視器、一個看門狗定時器、一個時鐘丟失檢測器、一個由比較器0提供的電壓檢測器、一個軟件強制復位、CNVSTR引腳及/RST引腳。MCU內(nèi)部有一個獨立運行的時鐘發(fā)生器,在復位后被默認為系統(tǒng)時鐘。如果需要,時鐘源可以在運行時切換到外部振蕩器,外部振蕩器可以使用晶體、陶瓷諧振器、電容、RC或外部時鐘源產(chǎn)生系統(tǒng)時鐘。1.1.3增加的功能擴展的中斷系統(tǒng)向CIP-51提供22C8051F020入門指導解讀課件1.2片內(nèi)存儲器CIP-51有標準的8051程序和數(shù)據(jù)地址配置。C8051F020中的CIP-51還另有位于外部數(shù)據(jù)存儲器地址空間的4K字節(jié)的RAM塊和一個可用于訪問外部數(shù)據(jù)存儲器的外部存儲器接口(EMIF)。這個片內(nèi)的4K字節(jié)RAM塊可以在整個64K外部數(shù)據(jù)存儲器地址空間中被尋址(以4K為邊界重疊)。外部數(shù)據(jù)存儲器地址空間可以只映射到片內(nèi)存儲器、只映射到片外存儲器、或兩者的組合(4K以下的地址指向片內(nèi),4K以上的地址指向EMIF)。EMIF可以被配置為地址/數(shù)據(jù)線復用方式或非復用方式。MCU的程序存儲器包含64K字節(jié)的FLASH。該存儲器以512字節(jié)為一個扇區(qū),可以在系統(tǒng)編程,且不需特別的外部編程電壓。1.2片內(nèi)存儲器CIP-51有標準的8051程序和數(shù)據(jù)C8051F020入門指導解讀課件1.3JTAG調(diào)試和邊界掃描C8051F020系列具有片內(nèi)JTAG邊界掃描和調(diào)試電路,通過4腳JTAG接口并使用安裝在最終應(yīng)用系統(tǒng)中的產(chǎn)品器件就可以進行非侵入式、全速的在系統(tǒng)調(diào)試。該JTAG接口完全符合IEEE1149.1規(guī)范,為生產(chǎn)和測試提供完全的邊界掃描功能。SiliconLabs的調(diào)試系統(tǒng)支持觀察和修改存儲器和寄存器,支持斷點、觀察點、堆棧指示器和單步執(zhí)行。1.3JTAG調(diào)試和邊界掃描C8051FC8051F020入門指導解讀課件1.4可編程數(shù)字I/O和交叉開關(guān)
可通過設(shè)置交叉開關(guān)控制寄存器將片內(nèi)的計數(shù)器/定時器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動輸入、比較器輸出以及微控制器內(nèi)部的其它數(shù)字信號配置為出現(xiàn)在端口I/O引腳。這一特性允許用戶根據(jù)自己的特定應(yīng)用選擇通用端口I/O和所需數(shù)字資源的組合。
該系列MCU具有標準8051的端口(0、1、2和3)。在F020/2中有4個附加的端口(4、5、6和7),因此共有64個通用端口I/O。每個端口I/O引腳都可以被配置為推挽或漏極開路輸出。數(shù)字交叉開關(guān)。
這是一個大的數(shù)字開關(guān)網(wǎng)絡(luò),允許將內(nèi)部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口I/O引腳。1.4可編程數(shù)字I/O和交叉開關(guān)可通過C8051F020入門指導解讀課件1.5可編程計數(shù)器陣列
除了5個16位的通用計數(shù)器/定時器之外,C8051F020MCU系列還有一個片內(nèi)可編程計數(shù)器/定時器陣列(PCA)。
PCA包括一個專用的16位計數(shù)器/定時器時間基準和5個可編程的捕捉/比較模塊。時間基準的時鐘可以是下面的六個時鐘源之一:系統(tǒng)時鐘/12、系統(tǒng)時鐘/4、定時器0溢出、外部時鐘輸入(ECI)、系統(tǒng)時鐘和外部振蕩源頻率/8。
每個捕捉/比較模塊都有六種工作方式:邊沿觸發(fā)捕捉、軟件定時器、高速輸出、頻率輸出、8位脈沖寬度調(diào)制器和16位脈沖寬度調(diào)制器。
PCA捕捉/比較模塊的I/O和外部時鐘輸入可以通過數(shù)字交叉開關(guān)連到MCU的端口I/O引腳。1.5可編程計數(shù)器陣列除了5個16位的通C8051F020入門指導解讀課件1.6串行端口C8051F020系列MCU內(nèi)部有兩個增強型全雙工UART、SPI總線和SMBus/I2C。每種串行總線都完全用硬件實現(xiàn),都能向CIP-51產(chǎn)生中斷,因此需要很少的CPU干預。這些串行總線不“共享”定時器、中斷或端口I/O等資源,所以可以使用任何一個或全部同時使用。1.6串行端口C8051F020系列MCU內(nèi)部有兩個增強型1.712位模/數(shù)轉(zhuǎn)換器C8051F020/1有一個片內(nèi)12位SARADC(ADC0),一個9通道輸入多路選擇開關(guān)和可編程增益放大器。該ADC工作在100ksps的最大采樣速率時可提供真正的12位精度,INL為±1LSB。1.712位模/數(shù)轉(zhuǎn)換器C8051F020ADC完全由CIP-51通過特殊功能寄存器控制。有一個輸入通道被連到內(nèi)部溫度傳感器,其它8個通道接外部輸入。8個外部輸入通道的每一對都可被配置為兩個單端輸入或一個差分輸入。可編程增益放大器接在模擬多路選擇器之后,增益可以用軟件設(shè)置,從0.5到16以2的整數(shù)次冪遞增。A/D轉(zhuǎn)換有4種啟動方式:軟件命令、定時器2溢出、定時器3溢出和外部信號輸入。這種靈活性允許用軟件事件、外部硬件信號或周期性的定時器溢出信號觸發(fā)轉(zhuǎn)換。轉(zhuǎn)換結(jié)束由一個狀態(tài)位指示,或者產(chǎn)生中斷(如果中斷被使能)。在轉(zhuǎn)換完成后,10或12位轉(zhuǎn)換結(jié)果數(shù)據(jù)字被鎖存到兩個特殊功能寄存器中。這些數(shù)據(jù)字可以用軟件控制為左對齊或右對齊。ADC完全由CIP-51通過特殊功能寄存器控制。有一個輸入通1.88位模/數(shù)轉(zhuǎn)換器C8051F020有一個片內(nèi)8位SARADC(ADC1),帶有一個8通道輸入多路選擇器和可編程增益放大器。該ADC工作在500ksps的最大采樣速率時可提供真正的8位精度,INL為±1LSB。有8個用于測量的輸入端。ADC1完全由CIP-51通過特殊功能寄存器控制。ADC0的電壓基準可以在模擬電源電壓(AV+)和一個外部VREF引腳之間選擇。1.88位模/數(shù)轉(zhuǎn)換器C8051F021.9比較器和DACC8051F020/1/2/3系列MCU內(nèi)部有兩個12位DAC和兩個比較器。MCU與每個比較器和DAC之間的數(shù)據(jù)和控制接口通過特殊功能寄存器實現(xiàn)。MCU可以將任何一個DAC或比較器置于低功耗關(guān)斷方式。
比較器的回差電壓可以用軟件編程。每個比較器都能在上升沿、下降沿或在兩個邊沿都產(chǎn)生中斷。這些中斷能將MCU從休眠方式喚醒。比較器的輸出狀態(tài)可以用軟件查詢。可通過設(shè)置交叉開關(guān)將比較器的輸出接到端口I/O引腳。
DAC為電壓輸出方式,有靈活的輸出更新機制。這一機制允許用軟件寫和定時器2、定時器3及定時器4的溢出信號更新DAC輸出。C8051F020/2的DAC之電壓基準由專用的VREFD輸入引腳提供,而C8051F021/3的DAC之電壓基準由器件內(nèi)部的電壓基準提供。DAC在作為比較器的參考電壓或為ADC差分輸入提供偏移電壓時非常有用。1.9比較器和DACC8051F020/1/C8051F020入門指導解讀課件2、交叉開關(guān)配置2.1端口輸入/輸出
低端口(P0、P1、P2和P3)既可以按位尋址也可以按字節(jié)尋址。高端口(P4、P5、P6和P7)只能按字節(jié)尋址。所有引腳都耐5V電壓,都可以被配置為漏極開路或推挽輸出方式和弱上拉。2、交叉開關(guān)配置2.1端口輸入/輸出低C8051F020入門指導解讀課件C8051F020/1/2/3器件有大量的數(shù)字資源需要通過4個低端I/O端口P0、P1、P2和P3才能使用。
P0、P1、P2和P3中的每個引腳既可定義為通用的端口I/O(GPIO)引腳,又可以分配給一個數(shù)字外設(shè)或功能(例如:UART0或/INT1),如圖17.2所示。
系統(tǒng)設(shè)計者控制數(shù)字功能的引腳分配,只受可用引腳數(shù)的限制。這種資源分配的靈活性是通過使用優(yōu)先權(quán)交叉開關(guān)譯碼器實現(xiàn)的。
注意,不管引腳被分配給一個數(shù)字外設(shè)或是作為通用I/O,總是可以通過讀相應(yīng)的數(shù)據(jù)寄存器得到端口I/O引腳的狀態(tài)。端口1的引腳可以用做ADC1的模擬輸入。C8051F020/1/2/3器件有大量C8051F020入門指導解讀課件2.2端口0–3和優(yōu)先權(quán)交叉開關(guān)譯碼器1、優(yōu)先權(quán)交叉開關(guān)譯碼器(“交叉開關(guān)”)
為數(shù)字外設(shè)分配端口引腳的優(yōu)先權(quán)順序列于圖17.3,UART0具有最高優(yōu)先權(quán),而CNVSTR
具有最低優(yōu)先權(quán)。
按優(yōu)先權(quán)順序?qū)⒍丝?–3的引腳分配給器件上的數(shù)字外設(shè)(UART、SMBus、PCA、定時器等)。端口引腳的分配順序是從P0.0開始,可以一直分配到P3.7。2、優(yōu)先權(quán)順序2.2端口0–3和優(yōu)先權(quán)交叉開關(guān)譯碼器1、優(yōu)先權(quán)交C8051F020入門指導解讀課件2.1.1交叉開關(guān)引腳分配
當交叉開關(guān)配置寄存器XBR0、XBR1
和XBR2中外設(shè)的對應(yīng)使能位被設(shè)置為邏輯‘1’時,交叉開關(guān)將端口引腳分配給外設(shè)。2.1.1交叉開關(guān)引腳分配當交叉開關(guān)配置寄
端口0–3中所有未被交叉開關(guān)分配的引腳都可以作為通用I/O(GPI/O)引腳,通過讀或?qū)懴鄳?yīng)的端口數(shù)據(jù)寄存器訪問。
被交叉開關(guān)分配的那些端口引腳的輸出狀態(tài)受使用這些引腳的數(shù)字外設(shè)的控制。
不管交叉開關(guān)是否將引腳分配給外設(shè),讀一個端口數(shù)據(jù)寄存器(或端口位)將總是返回引腳本身的邏輯狀態(tài)。端口0–3中所有未被交叉開關(guān)分配的引
交叉開關(guān)寄存器被正確配置后,通過將XBARE(XBR2.6)設(shè)置為邏輯‘1’來使能交叉開關(guān)。在XBARE被設(shè)置為邏輯‘1’之前,端口0-3的輸出驅(qū)動器被明確禁止,以防止對交叉開關(guān)寄存器和其它寄存器寫入時在端口引腳上產(chǎn)生爭用。
被交叉開關(guān)分配給輸入信號(例如RX0)的引腳所對應(yīng)的輸出驅(qū)動器應(yīng)被明確禁止;以保證端口數(shù)據(jù)寄存器和PnMDOUT寄存器的值不影響這些引腳的狀態(tài)。交叉開關(guān)寄存器被正確配置后,通2.1.2配置端口引腳的輸出方式
在XBARE(XBR2.6)被設(shè)置為邏輯‘1’之前,端口0-3的輸出驅(qū)動器保持禁止狀態(tài)。
每個端口引腳的輸出方式都可被配置為漏極開路或推挽方式,缺省狀態(tài)為漏極開路。1、推挽方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳被驅(qū)動到VDD。2、漏極開路方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳處于高阻狀態(tài)。2.1.2配置端口引腳的輸出方式在XBA3、端口0-3引腳的輸出方式由PnMDOUT寄存器中的對應(yīng)位決定。為邏輯‘1’時,配置為推挽方式;為邏輯‘0’時,配置為漏極開路方式。
不管交叉開關(guān)是否將端口引腳分配給某個數(shù)字外設(shè),端口引腳的輸出方式都受PnMDOUT寄存器控制。3、端口0-3引腳的輸出方式由PnMDOUT寄存器中的對2.1.3配置端口引腳為數(shù)字輸入1、通過設(shè)置輸出方式為“漏極開路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫‘1’將端口引腳配置為數(shù)字輸入。例:設(shè)置P3MDOUT.7為邏輯‘0’并設(shè)置P3.7為邏輯‘1’即可將P3.7配置為數(shù)字輸入。2、如果一個端口引腳被交叉開關(guān)分配給某個數(shù)字外設(shè),并且該引腳的功能為輸入(例如UART0的接收引腳RX0),則該引腳的輸出驅(qū)動器被自動禁止。2.1.3配置端口引腳為數(shù)字輸入1、通過設(shè)置輸出方式為“漏2.1.4外部中斷(IE6和IE7)
除了外部中斷/INT0和/INT1(其引腳由交叉開關(guān)分配)之外,P3.6和P3.7可被配置為邊沿觸發(fā)的中斷源,用IE6CF(P3IF.2)和IE7CF(P3IF.3)位可以將這兩個中斷源配置為下降沿或上升沿觸發(fā)。2.1.5弱上拉
每個端口引腳都有一個內(nèi)部弱上拉部件,在引腳與VDD之間提供阻性連接(約100kΩ),在缺省情況下該上拉器件被使能。
弱上拉部件可以被總體禁止,通過向弱上拉禁止位(WEAKPUD,XBR2.7)寫‘1’實現(xiàn)。
當任何引腳被驅(qū)動為邏輯‘0’時,弱上拉自動取消;即輸出引腳不能與其自身的上拉部件沖突。2.1.4外部中斷(IE6和IE7)除了2.1.6配置端口1的引腳為模擬輸入(AIN.[7:0])
端口1的引腳可以用作ADC1模擬多路開關(guān)的模擬輸入。通過向P1MDIN寄存器中的對應(yīng)位寫‘0’即可將端口引腳配置為模擬輸入。將一個端口引腳配置為模擬輸入的過程如下:1.禁止引腳的數(shù)字輸入路徑。這可以防止在引腳上的電壓接近VDD/2時消耗額外的電源電流。讀端口數(shù)據(jù)位將返回邏輯‘0’,與加在引腳上的電壓無關(guān)。2.
禁止引腳的弱上拉部件。3.使交叉開關(guān)在為數(shù)字外設(shè)分配引腳時跳過該引腳。2.1.6配置端口1的引腳為模擬輸入(AIN.[7:0]1、被配置為模擬輸入的引腳的輸出驅(qū)動器并沒有被明確地禁止。因此
輸出驅(qū)動器禁止的設(shè)置方式:被配置為模擬輸入的引腳所對應(yīng)的P1MDOUT位應(yīng)被設(shè)置為邏輯‘0’(漏極開路方式);對應(yīng)的端口數(shù)據(jù)位應(yīng)被設(shè)置為邏輯‘1’(高阻態(tài))。注意:2、將一個端口引腳用作ADC1模擬多路開關(guān)的輸入時并不要求將其配置為模擬輸入,但強烈建議這樣做。1、被配置為模擬輸入的引腳的輸出驅(qū)動器并沒有被明確地禁止。注2.1.8交叉開關(guān)引腳分配示例要求:1、將配置交叉開關(guān),為UART0、SMBus、UART1、/INT0和/INT1分配端口引腳(共8個引腳)。2、將外部存儲器接口配置為復用方式并使用低端口。3、將P1.2、P1.3和P1.4配置為模擬輸入,以便用ADC1測量加在這些引腳上的電壓。2.1.8交叉開關(guān)引腳分配示例要求:配置步驟如下:1、按UART0EN=1、UART1E=1、SMB0EN=1、INT0E=1、INT1E=1和EMIFLE=1。設(shè)置XBR0、XBR1和XBR2,則有:
XBR0=0x05,XBR1=0x14,XBR2=0x06。2、將外部存儲器接口配置為復用方式并使用低端口,有:
PRTSEL=0,EMD2=0。3、將作為模擬輸入的端口1引腳配置為模擬輸入方式:設(shè)置P1MDIN為0xE3(P1.4、P1.3和P1.2為模擬輸入,所以它們的對應(yīng)P1MDIN被設(shè)置為邏輯‘0’)。4、設(shè)置XBARE=1
以使能交叉開關(guān):XBR2=0x46。配置步驟如下:1、按UART0EN=1、UART1E=-UART0有最高優(yōu)先權(quán),所以P0.0
被分配給TX0,P0.1
被分配給RX0。-SMBus
的優(yōu)先權(quán)次之,所以P0.2
被分配給SDA,P0.3被分配給SCL。-接下來是UART1,所以P0.4被分配給TX1。-由于外部存儲器接口選在低端口(EMIFLE=1),所以交叉開關(guān)跳過P0.6(/RD)和P0.7(/WR)。又因為外部存儲器接口被配置為復用方式,所以交叉開關(guān)也跳過P0.5(ALE)。-下一個未被跳過的引腳P1.0被分配給RX1。-/INT0,被分配到引腳P1.1。-將P1MDIN設(shè)置為0xE3,使P1.2、P1.3和P1.4被配置為模擬輸入,導致交叉開關(guān)跳過這些引腳。-優(yōu)先權(quán)高的是/INT1,所以下一個未跳過的引腳P1.5被分配給/INT1。5、配置結(jié)果。-UART0有最高優(yōu)先權(quán),所以P0.0被分配給TX0,C8051F020入門指導解讀課件6、我們將UART0的TX引腳(TX0,P0.0)、UART1的TX引腳(TX1,P0.4)、ALE、/RD、/WR(P0.[7:3])的輸出設(shè)置為推挽方式,通過設(shè)置P0MDOUT=0xF1
來實現(xiàn)。7、我們通過設(shè)置P2MDOUT=0xFF
和P3MDOUT=0xFF
將EMIF端口(P2、P3)的輸出方式配置為推挽方式。8、我們通過設(shè)置P1MDOUT=0x00(配置輸出為漏極開路)和P1=0xFF(邏輯‘1’選擇高阻態(tài))禁止3個模擬輸入引腳的輸出驅(qū)動器。6、我們將UART0的TX引腳(TX0,P0.0)、UC8051F020入門指導解讀課件2.3端口4-7(僅C8051F020/2)
端口4-7的所有端口引腳都可用作通用I/O(GPIO),通過讀和寫相應(yīng)的端口數(shù)據(jù)寄存器訪問每個端口,這些端口數(shù)據(jù)寄存器是一組按字節(jié)尋址的特殊功能寄存器。讀端口數(shù)據(jù)寄存器時,返回的是端口引腳本身的邏輯狀態(tài)。2.3端口4-7(僅C8051F020/2)1、推挽方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳被驅(qū)動到VDD。2、漏極開路方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳處于高阻狀態(tài)。2.3.1配置端口引腳的輸出方式每個端口引腳的輸出方式都可被配置為:
漏極開路、推挽方式。1、推挽方式:2、漏極開路方式:2.3.1配置端口引腳的3、端口4-7引腳的輸出方式由P74OUT寄存器中的位決定。P7-4OUT中的每一位控制端口4-7中一組引腳(每組4位)的輸出方式。
P7-4OUT.7為邏輯‘1’時將端口7中高4位(P7.[7:4])的輸出方式配置為推挽方式;
P7-4OUT.7為邏輯‘0’時將端口7中高4位(P7.[7:4])的輸出方式配置為漏極開路。3、端口4-7引腳的輸出方式由P74OUT寄存器中的位決2.3.2配置端口引腳為數(shù)字輸入
通過設(shè)置輸出方式為“漏極開路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫‘1’
將端口引腳配置為數(shù)字輸入。例如:將P7.7配置為數(shù)字輸入設(shè)置P4OUT.7為邏輯‘0’
設(shè)置P7.7為邏輯‘1’即可。2.3.2配置端口引腳為數(shù)字輸入通過設(shè)2.3.3弱上拉
每個端口引腳都有一個內(nèi)部弱上拉部件,在缺省情況下該上拉器件被使能,在引腳與VDD之間提供阻性連接(約100kΩ)。弱上拉部件可以被總體禁止,通過向弱上拉禁止位(WEAKPUD,XBR2.7)寫‘1’實現(xiàn)。當任何引腳被驅(qū)動為邏輯‘0’時,弱上拉自動取消;即輸出引腳不能與其自身的上拉部件沖突。2.3.3弱上拉每個端口引腳都有一個內(nèi)3、系統(tǒng)時鐘源
每個MCU都有一個內(nèi)部振蕩器和一個外部振蕩器驅(qū)動電路,每個驅(qū)動電路都能產(chǎn)生系統(tǒng)時鐘。
MCU在復位后從內(nèi)部振蕩器啟動。內(nèi)部振蕩器可以被使能/禁止,其振蕩頻率可以用內(nèi)部振蕩器控制寄存器(OSCICN)設(shè)置。當/RST引腳為低電平時,兩個振蕩器都被禁止。MCU可以從內(nèi)部振蕩器或外部振蕩器運行,可使用OSCICN寄存器中的CLKSL位在兩個振蕩器之間隨意切換。3、系統(tǒng)時鐘源每個MCU都有一個內(nèi)部振蕩器和C8051F020入門指導解讀課件C8051F020入門指導解讀課件C8051F020入門指導解讀課件C8051F020入門指導解讀課件3.1外部晶體舉例
如果使用晶體或陶瓷諧振器作為MCU的外部振蕩器源,則電路應(yīng)為圖14.1中的選項1。
當外部晶體振蕩器穩(wěn)定運行時,晶體振蕩器有效標志(OSCXCN寄存器中的XTLVLD)被硬件置‘1’。XTLVLD檢測電路要求在使能振蕩器工作和檢測XTLVLD之間至少有1ms的啟動時間。建議的過程為:1.使能外部振蕩器2.等待至少1ms3.查詢XTLVLD=>’1’4.將系統(tǒng)時鐘切換到外部振蕩器3.1外部晶體舉例如果使用晶體或陶瓷諧振器4、系統(tǒng)復位
復位電路允許很容易地將控制器置于一個預定的缺省狀態(tài)。在進入復位狀態(tài)時,將發(fā)生以下過程:CIP-51停止程序執(zhí)行特殊功能寄存器(SFR)被初始化為所定義的復位值外部端口引腳被置于一個已知狀態(tài)中斷和定時器被禁止。4、系統(tǒng)復位復位電路允許很容易地將控制器置于一個
所有的SFR都被初始化為預定值,SFR中各位的復位值在SFR的詳細說明中定義。I/O端口鎖存器的復位值為0xFF(全部為邏輯‘1’),內(nèi)部弱上拉有效,使外部I/O引腳處于高電平狀態(tài)。注1:外部I/O引腳并不立即進入高電平狀態(tài),而是在進入復位狀態(tài)后的四個系統(tǒng)時鐘之內(nèi)。注2:在復位期間弱上拉是被禁止的,在器件退出復位狀態(tài)時弱上拉被使能
在退出復位狀態(tài)時,程序計數(shù)器(PC)被復位,MCU使用內(nèi)部振蕩器運行在2MHz作為默認的系統(tǒng)時鐘。
看門狗定時器被使能,使用其最長的超時時間。所有的SFR都被初始化為預定值,SFR中各位的復位值
有7個能使MCU進入復位狀態(tài)的復位源:上電/掉電、外部/RST
引腳、外部CNVSTR
信號、軟件命令、比較器0、時鐘丟失檢測器及看門狗定時器。有7個能使MCU進入復位狀態(tài)的復位源:上4.1上電復位
C8051F020有一個電源監(jiān)視器,在上電期間該監(jiān)視器使MCU保持在復位狀態(tài),直到VDD上升到超過VRST電平。
/RST引腳一直被置為低電平,直到100毫秒的VDD監(jiān)視器超時時間結(jié)束,這100毫秒的等待時間是為了使VDD電源穩(wěn)定。
在退出上電復位狀態(tài)時,PORSF標志(RSTSRC.1)被硬件置為邏輯‘1’,RSTSRC寄存器中的其它復位標志是不確定的。4.1上電復位
C8051F020有一個C8051F020入門指導解讀課件4.2掉電復位
通過將MONEN引腳直接連VDD來使能VDD監(jiān)視器。這是MONEN引腳的推薦配置。
當發(fā)生掉電或因電源不穩(wěn)定而導致VDD下降到低于VRST電平時,電源監(jiān)視器將/RST引腳置于低電平并使CIP-51回到復位狀態(tài)。4.2掉電復位通過將MONEN引腳4.3外部復位
外部/RST引腳提供了使用外部電路強制MCU進入復位狀態(tài)的手段。在/RST引腳上加一個低電平有效信號將導致MCU進入復位狀態(tài)。最好能提供一個外部上拉和/或?qū)?RST引腳去耦以防止強噪聲引起復位。在低有效的/RST信號撤出后,MCU將保持在復位狀態(tài)至少12個時鐘周期。從外部復位狀態(tài)退出后,PINRSF標志(RSTSRC.0)被置位。4.3外部復位外部/RST引腳提供了使用外部電路強制C8051F020入門指導解讀課件4.4看門狗定時器復位MCU內(nèi)部有一個使用系統(tǒng)時鐘的可編程看門狗定時器(WDT)。當看門狗定時器溢出時,WDT將強制CPU進入復位狀態(tài)。為了防止復位,必須在溢出發(fā)生前由應(yīng)用軟件重新觸發(fā)WDT。如果系統(tǒng)出現(xiàn)了軟件/硬件錯誤,使應(yīng)用軟件不能重新觸發(fā)WDT,則WDT將溢出并產(chǎn)生一個復位,這可以防止系統(tǒng)失控。4.4看門狗定時器復位MCU內(nèi)部有一個使用系統(tǒng)時鐘什么是看門狗(watchdog)
看門狗,又叫watchdogtimer,是一個定時器電路,一般有一個輸入,叫喂狗,一個輸出到MCU的RST端,MCU正常工作的時候,每隔一端時間輸出一個信號到喂狗端,給WDT清零,如果超過規(guī)定的時間不喂狗,(一般在程序跑飛時),WDT定時超過,就回給出一個復位信號到MCU,是MCU復位.防止MCU死機.看門狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。
工作原理:在系統(tǒng)運行以后也就啟動了看門狗的計數(shù)器,看門狗就開始自動計數(shù),如果到了一定的時間還不去清看門狗,那么看門狗計數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)復位。所以在使用有看門狗的芯片時要注意清看門狗。
硬件看門狗是利用了一個定時器,來監(jiān)控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位。如果出現(xiàn)死循環(huán),或者說PC指針不能回來,那么定時時間到后就會使單片機復位。常用的WDT芯片如MAX813,5045,IMP813等
軟件看門狗:編程方法。通過程序?qū)Χ〞r器進行設(shè)定
什么是看門狗(watchdog)
看門狗,又叫watchd
在從任何一種復位退出時,WDT被自動使能并使用缺省的最大時間間隔運行。系統(tǒng)軟件可以根據(jù)需要禁止WDT或?qū)⑵滏i定為運行狀態(tài)以防止意外產(chǎn)生的禁止操作??撮T狗的功能可以通過看門狗定時器控制寄存器(WDTCN)控制。在從任何一種復位退出時,WDT被自動使能并C8051F020入門指導解讀課件
使能/復位WDT
向WDTCN寄存器寫入0xA5將使能并復位看門狗定時器。
用戶的應(yīng)用軟件應(yīng)周期性地向WDTCN寫入0xA5,以防止看門狗定時器溢出。每次系統(tǒng)復位都將使能并復位WDT。禁止WDT
向WDTCN寄存器寫入0xDE后再寫入0xAD
將禁止WDT。下面的代碼段說明禁止WDT的過程。CLREA; 禁止所有中斷MOVWDTCN,#0DEh; 禁止軟件看門狗定時器MOVWDTCN,#0ADhSETBEA; 重新允許中斷寫0xDE和寫0xAD必須發(fā)生在4個時鐘周期之內(nèi),否則禁止操作將被忽略。使能/復位WDT向WDTCN寄存器寫入0禁止WDT鎖定向WDTCN寫入0xFF將使禁止功能無效。一旦鎖定,在下一次復位之前禁止操作將被忽略。寫0xFF并不使能或復位看門狗定時器。設(shè)置WDT定時間隔WDTCN.[2:0]控制看門狗超時間隔。超時間隔由下式給出:禁止WDT鎖定向WDTCN寫入0xFF將使禁止功能無效5、JTAG接口的在系統(tǒng)調(diào)試
每個MCU內(nèi)部都有JTAG和調(diào)試電路,可以通過JTAG接口使用安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品MCU進行非侵入式、全速、在系統(tǒng)調(diào)試。
SiliconLabs的調(diào)試系統(tǒng)支持觀察和修改存儲器和寄存器、斷點和單步執(zhí)行;不需要額外的目標RAM、程序存儲器或通信通道。在調(diào)試時,所有的模擬和數(shù)字外設(shè)都全功能正確運行(保持同步)。當MCU因單步執(zhí)行或執(zhí)行到斷點而停機時,WDT被禁止。JTAG接口使用MCU上的四個專用引腳,它們是:TCK、TMS、TDI和TDO。5、JTAG接口的在系統(tǒng)調(diào)試每個MCU內(nèi)部都USBUSB6、單片機的初始化設(shè)置
單片機初始化,包括以下幾點:看門狗初始化-開啟還是禁止、如果開啟則喂狗周期為多少;時鐘系統(tǒng)的初始化-確定系統(tǒng)的工作時鐘源及頻率;
I/O引腳輸入輸出方式初始化-輸入:模擬還是數(shù)字、輸出:推挽還是開漏;數(shù)字外設(shè)的配置和交叉開關(guān)設(shè)置;6、單片機的初始化設(shè)置單片機初始化,包括以下幾點:C8051F020/1/2/3
混合信號ISPFLASH微控制器C8051F020/1/2/3
混合信號ISPFLASH1、概述2、交叉開關(guān)配置3、系統(tǒng)時鐘源
4、系統(tǒng)復位5、JTAG接口的在系統(tǒng)調(diào)試
6、單片機的初始化設(shè)置1、概述1、概述C8051F020器件是完全集成的混合信號系統(tǒng)級MCU芯片,具有64個數(shù)字I/O引腳(C8051F020/2)或32個數(shù)字I/O引腳(C8051F021/3)。下面列出了一些主要特性:高速、流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(可達25MIPS)全速、非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi))真正12位(C8051F020/1)或10位(C8051F022/3)、100ksps的8通道ADC,帶PGA和模擬多路開關(guān)真正8位500ksps的ADC,帶PGA和8通道模擬多路開關(guān)兩個12位DAC,具有可編程數(shù)據(jù)更新方式64K字節(jié)可在系統(tǒng)編程的FLASH存儲器4352(4096+256)字節(jié)的片內(nèi)RAM1、概述C8051F020器件是完全集成的混合信號
可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲器接口硬件實現(xiàn)的SPI、SMBus/I2C和兩個UART串行接口5個通用的16位定時器具有5個捕捉/比較模塊的可編程計數(shù)器/定時器陣列片內(nèi)看門狗定時器、VDD監(jiān)視器和溫度傳感器可尋址64K字節(jié)地址空間的外部數(shù)據(jù)存儲器接口C8051F020入門指導解讀課件1.1CIP-51TMCPU1.1.1與8051完全兼容C8051F020系列器件使用SiliconLabs的專利CIP-51微控制器內(nèi)核。CIP-51與MCS-51TM指令集完全兼容,可以使用標準803x/805x的匯編器和編譯器進行軟件開發(fā)。
CIP-51內(nèi)核具有標準8052的所有外設(shè)部件,包括:5個16位的計數(shù)器/定時器、兩個全雙工UART、256字節(jié)內(nèi)部RAM、128字節(jié)特殊功能寄存器(SFR)地址空間、8/4個字節(jié)寬的I/O端口。1.1CIP-51TMCPU1.1.1與8051完全CIP-51采用流水線結(jié)構(gòu),與標準的8051結(jié)構(gòu)相比指令執(zhí)行速度有很大的提高。1.1.2速度提高
在一個標準的8051中,除MUL和DIV以外所有指令都需要12或24個系統(tǒng)時鐘周期,最大系統(tǒng)時鐘頻率為12-24MHz。而對于CIP-51內(nèi)核,70%的指令的執(zhí)行時間為1或2個系統(tǒng)時鐘周期,只有4條指令的執(zhí)行時間大于4個系統(tǒng)時鐘周期。CIP-51采用流水線結(jié)構(gòu),與標準的80511.1.3增加的功能擴展的中斷系統(tǒng)向CIP-51提供22個中斷源(標準8051只有7個中斷源),允許大量的模擬和數(shù)字外設(shè)中斷微控制器。MCU可有多達7個復位源:一個片內(nèi)VDD監(jiān)視器、一個看門狗定時器、一個時鐘丟失檢測器、一個由比較器0提供的電壓檢測器、一個軟件強制復位、CNVSTR引腳及/RST引腳。MCU內(nèi)部有一個獨立運行的時鐘發(fā)生器,在復位后被默認為系統(tǒng)時鐘。如果需要,時鐘源可以在運行時切換到外部振蕩器,外部振蕩器可以使用晶體、陶瓷諧振器、電容、RC或外部時鐘源產(chǎn)生系統(tǒng)時鐘。1.1.3增加的功能擴展的中斷系統(tǒng)向CIP-51提供22C8051F020入門指導解讀課件1.2片內(nèi)存儲器CIP-51有標準的8051程序和數(shù)據(jù)地址配置。C8051F020中的CIP-51還另有位于外部數(shù)據(jù)存儲器地址空間的4K字節(jié)的RAM塊和一個可用于訪問外部數(shù)據(jù)存儲器的外部存儲器接口(EMIF)。這個片內(nèi)的4K字節(jié)RAM塊可以在整個64K外部數(shù)據(jù)存儲器地址空間中被尋址(以4K為邊界重疊)。外部數(shù)據(jù)存儲器地址空間可以只映射到片內(nèi)存儲器、只映射到片外存儲器、或兩者的組合(4K以下的地址指向片內(nèi),4K以上的地址指向EMIF)。EMIF可以被配置為地址/數(shù)據(jù)線復用方式或非復用方式。MCU的程序存儲器包含64K字節(jié)的FLASH。該存儲器以512字節(jié)為一個扇區(qū),可以在系統(tǒng)編程,且不需特別的外部編程電壓。1.2片內(nèi)存儲器CIP-51有標準的8051程序和數(shù)據(jù)C8051F020入門指導解讀課件1.3JTAG調(diào)試和邊界掃描C8051F020系列具有片內(nèi)JTAG邊界掃描和調(diào)試電路,通過4腳JTAG接口并使用安裝在最終應(yīng)用系統(tǒng)中的產(chǎn)品器件就可以進行非侵入式、全速的在系統(tǒng)調(diào)試。該JTAG接口完全符合IEEE1149.1規(guī)范,為生產(chǎn)和測試提供完全的邊界掃描功能。SiliconLabs的調(diào)試系統(tǒng)支持觀察和修改存儲器和寄存器,支持斷點、觀察點、堆棧指示器和單步執(zhí)行。1.3JTAG調(diào)試和邊界掃描C8051FC8051F020入門指導解讀課件1.4可編程數(shù)字I/O和交叉開關(guān)
可通過設(shè)置交叉開關(guān)控制寄存器將片內(nèi)的計數(shù)器/定時器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動輸入、比較器輸出以及微控制器內(nèi)部的其它數(shù)字信號配置為出現(xiàn)在端口I/O引腳。這一特性允許用戶根據(jù)自己的特定應(yīng)用選擇通用端口I/O和所需數(shù)字資源的組合。
該系列MCU具有標準8051的端口(0、1、2和3)。在F020/2中有4個附加的端口(4、5、6和7),因此共有64個通用端口I/O。每個端口I/O引腳都可以被配置為推挽或漏極開路輸出。數(shù)字交叉開關(guān)。
這是一個大的數(shù)字開關(guān)網(wǎng)絡(luò),允許將內(nèi)部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口I/O引腳。1.4可編程數(shù)字I/O和交叉開關(guān)可通過C8051F020入門指導解讀課件1.5可編程計數(shù)器陣列
除了5個16位的通用計數(shù)器/定時器之外,C8051F020MCU系列還有一個片內(nèi)可編程計數(shù)器/定時器陣列(PCA)。
PCA包括一個專用的16位計數(shù)器/定時器時間基準和5個可編程的捕捉/比較模塊。時間基準的時鐘可以是下面的六個時鐘源之一:系統(tǒng)時鐘/12、系統(tǒng)時鐘/4、定時器0溢出、外部時鐘輸入(ECI)、系統(tǒng)時鐘和外部振蕩源頻率/8。
每個捕捉/比較模塊都有六種工作方式:邊沿觸發(fā)捕捉、軟件定時器、高速輸出、頻率輸出、8位脈沖寬度調(diào)制器和16位脈沖寬度調(diào)制器。
PCA捕捉/比較模塊的I/O和外部時鐘輸入可以通過數(shù)字交叉開關(guān)連到MCU的端口I/O引腳。1.5可編程計數(shù)器陣列除了5個16位的通C8051F020入門指導解讀課件1.6串行端口C8051F020系列MCU內(nèi)部有兩個增強型全雙工UART、SPI總線和SMBus/I2C。每種串行總線都完全用硬件實現(xiàn),都能向CIP-51產(chǎn)生中斷,因此需要很少的CPU干預。這些串行總線不“共享”定時器、中斷或端口I/O等資源,所以可以使用任何一個或全部同時使用。1.6串行端口C8051F020系列MCU內(nèi)部有兩個增強型1.712位模/數(shù)轉(zhuǎn)換器C8051F020/1有一個片內(nèi)12位SARADC(ADC0),一個9通道輸入多路選擇開關(guān)和可編程增益放大器。該ADC工作在100ksps的最大采樣速率時可提供真正的12位精度,INL為±1LSB。1.712位模/數(shù)轉(zhuǎn)換器C8051F020ADC完全由CIP-51通過特殊功能寄存器控制。有一個輸入通道被連到內(nèi)部溫度傳感器,其它8個通道接外部輸入。8個外部輸入通道的每一對都可被配置為兩個單端輸入或一個差分輸入??删幊淘鲆娣糯笃鹘釉谀M多路選擇器之后,增益可以用軟件設(shè)置,從0.5到16以2的整數(shù)次冪遞增。A/D轉(zhuǎn)換有4種啟動方式:軟件命令、定時器2溢出、定時器3溢出和外部信號輸入。這種靈活性允許用軟件事件、外部硬件信號或周期性的定時器溢出信號觸發(fā)轉(zhuǎn)換。轉(zhuǎn)換結(jié)束由一個狀態(tài)位指示,或者產(chǎn)生中斷(如果中斷被使能)。在轉(zhuǎn)換完成后,10或12位轉(zhuǎn)換結(jié)果數(shù)據(jù)字被鎖存到兩個特殊功能寄存器中。這些數(shù)據(jù)字可以用軟件控制為左對齊或右對齊。ADC完全由CIP-51通過特殊功能寄存器控制。有一個輸入通1.88位模/數(shù)轉(zhuǎn)換器C8051F020有一個片內(nèi)8位SARADC(ADC1),帶有一個8通道輸入多路選擇器和可編程增益放大器。該ADC工作在500ksps的最大采樣速率時可提供真正的8位精度,INL為±1LSB。有8個用于測量的輸入端。ADC1完全由CIP-51通過特殊功能寄存器控制。ADC0的電壓基準可以在模擬電源電壓(AV+)和一個外部VREF引腳之間選擇。1.88位模/數(shù)轉(zhuǎn)換器C8051F021.9比較器和DACC8051F020/1/2/3系列MCU內(nèi)部有兩個12位DAC和兩個比較器。MCU與每個比較器和DAC之間的數(shù)據(jù)和控制接口通過特殊功能寄存器實現(xiàn)。MCU可以將任何一個DAC或比較器置于低功耗關(guān)斷方式。
比較器的回差電壓可以用軟件編程。每個比較器都能在上升沿、下降沿或在兩個邊沿都產(chǎn)生中斷。這些中斷能將MCU從休眠方式喚醒。比較器的輸出狀態(tài)可以用軟件查詢??赏ㄟ^設(shè)置交叉開關(guān)將比較器的輸出接到端口I/O引腳。
DAC為電壓輸出方式,有靈活的輸出更新機制。這一機制允許用軟件寫和定時器2、定時器3及定時器4的溢出信號更新DAC輸出。C8051F020/2的DAC之電壓基準由專用的VREFD輸入引腳提供,而C8051F021/3的DAC之電壓基準由器件內(nèi)部的電壓基準提供。DAC在作為比較器的參考電壓或為ADC差分輸入提供偏移電壓時非常有用。1.9比較器和DACC8051F020/1/C8051F020入門指導解讀課件2、交叉開關(guān)配置2.1端口輸入/輸出
低端口(P0、P1、P2和P3)既可以按位尋址也可以按字節(jié)尋址。高端口(P4、P5、P6和P7)只能按字節(jié)尋址。所有引腳都耐5V電壓,都可以被配置為漏極開路或推挽輸出方式和弱上拉。2、交叉開關(guān)配置2.1端口輸入/輸出低C8051F020入門指導解讀課件C8051F020/1/2/3器件有大量的數(shù)字資源需要通過4個低端I/O端口P0、P1、P2和P3才能使用。
P0、P1、P2和P3中的每個引腳既可定義為通用的端口I/O(GPIO)引腳,又可以分配給一個數(shù)字外設(shè)或功能(例如:UART0或/INT1),如圖17.2所示。
系統(tǒng)設(shè)計者控制數(shù)字功能的引腳分配,只受可用引腳數(shù)的限制。這種資源分配的靈活性是通過使用優(yōu)先權(quán)交叉開關(guān)譯碼器實現(xiàn)的。
注意,不管引腳被分配給一個數(shù)字外設(shè)或是作為通用I/O,總是可以通過讀相應(yīng)的數(shù)據(jù)寄存器得到端口I/O引腳的狀態(tài)。端口1的引腳可以用做ADC1的模擬輸入。C8051F020/1/2/3器件有大量C8051F020入門指導解讀課件2.2端口0–3和優(yōu)先權(quán)交叉開關(guān)譯碼器1、優(yōu)先權(quán)交叉開關(guān)譯碼器(“交叉開關(guān)”)
為數(shù)字外設(shè)分配端口引腳的優(yōu)先權(quán)順序列于圖17.3,UART0具有最高優(yōu)先權(quán),而CNVSTR
具有最低優(yōu)先權(quán)。
按優(yōu)先權(quán)順序?qū)⒍丝?–3的引腳分配給器件上的數(shù)字外設(shè)(UART、SMBus、PCA、定時器等)。端口引腳的分配順序是從P0.0開始,可以一直分配到P3.7。2、優(yōu)先權(quán)順序2.2端口0–3和優(yōu)先權(quán)交叉開關(guān)譯碼器1、優(yōu)先權(quán)交C8051F020入門指導解讀課件2.1.1交叉開關(guān)引腳分配
當交叉開關(guān)配置寄存器XBR0、XBR1
和XBR2中外設(shè)的對應(yīng)使能位被設(shè)置為邏輯‘1’時,交叉開關(guān)將端口引腳分配給外設(shè)。2.1.1交叉開關(guān)引腳分配當交叉開關(guān)配置寄
端口0–3中所有未被交叉開關(guān)分配的引腳都可以作為通用I/O(GPI/O)引腳,通過讀或?qū)懴鄳?yīng)的端口數(shù)據(jù)寄存器訪問。
被交叉開關(guān)分配的那些端口引腳的輸出狀態(tài)受使用這些引腳的數(shù)字外設(shè)的控制。
不管交叉開關(guān)是否將引腳分配給外設(shè),讀一個端口數(shù)據(jù)寄存器(或端口位)將總是返回引腳本身的邏輯狀態(tài)。端口0–3中所有未被交叉開關(guān)分配的引
交叉開關(guān)寄存器被正確配置后,通過將XBARE(XBR2.6)設(shè)置為邏輯‘1’來使能交叉開關(guān)。在XBARE被設(shè)置為邏輯‘1’之前,端口0-3的輸出驅(qū)動器被明確禁止,以防止對交叉開關(guān)寄存器和其它寄存器寫入時在端口引腳上產(chǎn)生爭用。
被交叉開關(guān)分配給輸入信號(例如RX0)的引腳所對應(yīng)的輸出驅(qū)動器應(yīng)被明確禁止;以保證端口數(shù)據(jù)寄存器和PnMDOUT寄存器的值不影響這些引腳的狀態(tài)。交叉開關(guān)寄存器被正確配置后,通2.1.2配置端口引腳的輸出方式
在XBARE(XBR2.6)被設(shè)置為邏輯‘1’之前,端口0-3的輸出驅(qū)動器保持禁止狀態(tài)。
每個端口引腳的輸出方式都可被配置為漏極開路或推挽方式,缺省狀態(tài)為漏極開路。1、推挽方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳被驅(qū)動到VDD。2、漏極開路方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳處于高阻狀態(tài)。2.1.2配置端口引腳的輸出方式在XBA3、端口0-3引腳的輸出方式由PnMDOUT寄存器中的對應(yīng)位決定。為邏輯‘1’時,配置為推挽方式;為邏輯‘0’時,配置為漏極開路方式。
不管交叉開關(guān)是否將端口引腳分配給某個數(shù)字外設(shè),端口引腳的輸出方式都受PnMDOUT寄存器控制。3、端口0-3引腳的輸出方式由PnMDOUT寄存器中的對2.1.3配置端口引腳為數(shù)字輸入1、通過設(shè)置輸出方式為“漏極開路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫‘1’將端口引腳配置為數(shù)字輸入。例:設(shè)置P3MDOUT.7為邏輯‘0’并設(shè)置P3.7為邏輯‘1’即可將P3.7配置為數(shù)字輸入。2、如果一個端口引腳被交叉開關(guān)分配給某個數(shù)字外設(shè),并且該引腳的功能為輸入(例如UART0的接收引腳RX0),則該引腳的輸出驅(qū)動器被自動禁止。2.1.3配置端口引腳為數(shù)字輸入1、通過設(shè)置輸出方式為“漏2.1.4外部中斷(IE6和IE7)
除了外部中斷/INT0和/INT1(其引腳由交叉開關(guān)分配)之外,P3.6和P3.7可被配置為邊沿觸發(fā)的中斷源,用IE6CF(P3IF.2)和IE7CF(P3IF.3)位可以將這兩個中斷源配置為下降沿或上升沿觸發(fā)。2.1.5弱上拉
每個端口引腳都有一個內(nèi)部弱上拉部件,在引腳與VDD之間提供阻性連接(約100kΩ),在缺省情況下該上拉器件被使能。
弱上拉部件可以被總體禁止,通過向弱上拉禁止位(WEAKPUD,XBR2.7)寫‘1’實現(xiàn)。
當任何引腳被驅(qū)動為邏輯‘0’時,弱上拉自動取消;即輸出引腳不能與其自身的上拉部件沖突。2.1.4外部中斷(IE6和IE7)除了2.1.6配置端口1的引腳為模擬輸入(AIN.[7:0])
端口1的引腳可以用作ADC1模擬多路開關(guān)的模擬輸入。通過向P1MDIN寄存器中的對應(yīng)位寫‘0’即可將端口引腳配置為模擬輸入。將一個端口引腳配置為模擬輸入的過程如下:1.禁止引腳的數(shù)字輸入路徑。這可以防止在引腳上的電壓接近VDD/2時消耗額外的電源電流。讀端口數(shù)據(jù)位將返回邏輯‘0’,與加在引腳上的電壓無關(guān)。2.
禁止引腳的弱上拉部件。3.使交叉開關(guān)在為數(shù)字外設(shè)分配引腳時跳過該引腳。2.1.6配置端口1的引腳為模擬輸入(AIN.[7:0]1、被配置為模擬輸入的引腳的輸出驅(qū)動器并沒有被明確地禁止。因此
輸出驅(qū)動器禁止的設(shè)置方式:被配置為模擬輸入的引腳所對應(yīng)的P1MDOUT位應(yīng)被設(shè)置為邏輯‘0’(漏極開路方式);對應(yīng)的端口數(shù)據(jù)位應(yīng)被設(shè)置為邏輯‘1’(高阻態(tài))。注意:2、將一個端口引腳用作ADC1模擬多路開關(guān)的輸入時并不要求將其配置為模擬輸入,但強烈建議這樣做。1、被配置為模擬輸入的引腳的輸出驅(qū)動器并沒有被明確地禁止。注2.1.8交叉開關(guān)引腳分配示例要求:1、將配置交叉開關(guān),為UART0、SMBus、UART1、/INT0和/INT1分配端口引腳(共8個引腳)。2、將外部存儲器接口配置為復用方式并使用低端口。3、將P1.2、P1.3和P1.4配置為模擬輸入,以便用ADC1測量加在這些引腳上的電壓。2.1.8交叉開關(guān)引腳分配示例要求:配置步驟如下:1、按UART0EN=1、UART1E=1、SMB0EN=1、INT0E=1、INT1E=1和EMIFLE=1。設(shè)置XBR0、XBR1和XBR2,則有:
XBR0=0x05,XBR1=0x14,XBR2=0x06。2、將外部存儲器接口配置為復用方式并使用低端口,有:
PRTSEL=0,EMD2=0。3、將作為模擬輸入的端口1引腳配置為模擬輸入方式:設(shè)置P1MDIN為0xE3(P1.4、P1.3和P1.2為模擬輸入,所以它們的對應(yīng)P1MDIN被設(shè)置為邏輯‘0’)。4、設(shè)置XBARE=1
以使能交叉開關(guān):XBR2=0x46。配置步驟如下:1、按UART0EN=1、UART1E=-UART0有最高優(yōu)先權(quán),所以P0.0
被分配給TX0,P0.1
被分配給RX0。-SMBus
的優(yōu)先權(quán)次之,所以P0.2
被分配給SDA,P0.3被分配給SCL。-接下來是UART1,所以P0.4被分配給TX1。-由于外部存儲器接口選在低端口(EMIFLE=1),所以交叉開關(guān)跳過P0.6(/RD)和P0.7(/WR)。又因為外部存儲器接口被配置為復用方式,所以交叉開關(guān)也跳過P0.5(ALE)。-下一個未被跳過的引腳P1.0被分配給RX1。-/INT0,被分配到引腳P1.1。-將P1MDIN設(shè)置為0xE3,使P1.2、P1.3和P1.4被配置為模擬輸入,導致交叉開關(guān)跳過這些引腳。-優(yōu)先權(quán)高的是/INT1,所以下一個未跳過的引腳P1.5被分配給/INT1。5、配置結(jié)果。-UART0有最高優(yōu)先權(quán),所以P0.0被分配給TX0,C8051F020入門指導解讀課件6、我們將UART0的TX引腳(TX0,P0.0)、UART1的TX引腳(TX1,P0.4)、ALE、/RD、/WR(P0.[7:3])的輸出設(shè)置為推挽方式,通過設(shè)置P0MDOUT=0xF1
來實現(xiàn)。7、我們通過設(shè)置P2MDOUT=0xFF
和P3MDOUT=0xFF
將EMIF端口(P2、P3)的輸出方式配置為推挽方式。8、我們通過設(shè)置P1MDOUT=0x00(配置輸出為漏極開路)和P1=0xFF(邏輯‘1’選擇高阻態(tài))禁止3個模擬輸入引腳的輸出驅(qū)動器。6、我們將UART0的TX引腳(TX0,P0.0)、UC8051F020入門指導解讀課件2.3端口4-7(僅C8051F020/2)
端口4-7的所有端口引腳都可用作通用I/O(GPIO),通過讀和寫相應(yīng)的端口數(shù)據(jù)寄存器訪問每個端口,這些端口數(shù)據(jù)寄存器是一組按字節(jié)尋址的特殊功能寄存器。讀端口數(shù)據(jù)寄存器時,返回的是端口引腳本身的邏輯狀態(tài)。2.3端口4-7(僅C8051F020/2)1、推挽方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳被驅(qū)動到VDD。2、漏極開路方式:向端口數(shù)據(jù)寄存器中的相應(yīng)位: 寫邏輯‘0’將使端口引腳被驅(qū)動到GND, 寫邏輯‘1’將使端口引腳處于高阻狀態(tài)。2.3.1配置端口引腳的輸出方式每個端口引腳的輸出方式都可被配置為:
漏極開路、推挽方式。1、推挽方式:2、漏極開路方式:2.3.1配置端口引腳的3、端口4-7引腳的輸出方式由P74OUT寄存器中的位決定。P7-4OUT中的每一位控制端口4-7中一組引腳(每組4位)的輸出方式。
P7-4OUT.7為邏輯‘1’時將端口7中高4位(P7.[7:4])的輸出方式配置為推挽方式;
P7-4OUT.7為邏輯‘0’時將端口7中高4位(P7.[7:4])的輸出方式配置為漏極開路。3、端口4-7引腳的輸出方式由P74OUT寄存器中的位決2.3.2配置端口引腳為數(shù)字輸入
通過設(shè)置輸出方式為“漏極開路”并向端口數(shù)據(jù)寄存器中的相應(yīng)位寫‘1’
將端口引腳配置為數(shù)字輸入。例如:將P7.7配置為數(shù)字輸入設(shè)置P4OUT.7為邏輯‘0’
設(shè)置P7.7為邏輯‘1’即可。2.3.2配置端口引腳為數(shù)字輸入通過設(shè)2.3.3弱上拉
每個端口引腳都有一個內(nèi)部弱上拉部件,在缺省情況下該上拉器件被使能,在引腳與VDD之間提供阻性連接(約100kΩ)。弱上拉部件可以被總體禁止,通過向弱上拉禁止位(WEAKPUD,XBR2.7)寫‘1’實現(xiàn)。當任何引腳被驅(qū)動為邏輯‘0’時,弱上拉自動取消;即輸出引腳不能與其自身的上拉部件沖突。2.3.3弱上拉每個端口引腳都有一個內(nèi)3、系統(tǒng)時鐘源
每個MCU都有一個內(nèi)部振蕩器和一個外部振蕩器驅(qū)動電路,每個驅(qū)動電路都能產(chǎn)生系統(tǒng)時鐘。
MCU在復位后從內(nèi)部振蕩器啟動。內(nèi)部振蕩器可以被使能/禁止,其振蕩頻率可以用內(nèi)部振蕩器控制寄存器(OSCICN)設(shè)置。當/RST引腳為低電平時,兩個振蕩器都被禁止。MCU可以從內(nèi)部振蕩器或外部振蕩器運行,可使用OSCICN寄存器中的CLKSL位在兩個振蕩器之間隨意切換。3、系統(tǒng)時鐘源每個MCU都有一個內(nèi)部振蕩器和C8051F020入門指導解讀課件C8051F020入門指導解讀課件C8051F020入門指導解讀課件C8051F020入門指導解讀課件3.1外部晶體舉例
如果使用晶體或陶瓷諧振器作為MCU的外部振蕩器源,則電路應(yīng)為圖14.1中的選項1。
當外部晶體振蕩器穩(wěn)定運行時,晶體振蕩器有效標志(OSCXCN寄存器中的XTLVLD)被硬件置‘1’。XTLVLD檢測電路要求在使能振蕩器工作和檢測XTLVLD之間至少有1ms的啟動時間。建議的過程為:1.使能外部振蕩器2.等待至少1ms3.查詢XTLVLD=>’1’4.將系統(tǒng)時鐘切換到外部振蕩器3.1外部晶體舉例如果使用晶體或陶瓷諧振器4、系統(tǒng)復位
復位電路允許很容易地將控制器置于一個預定的缺省狀態(tài)。在進入復位狀態(tài)時,將發(fā)生以下過程:CIP-51停止程序執(zhí)行特殊功能寄存器(SFR)被初始化為所定義的復位值外部端口引腳被置于一個已知狀態(tài)中斷和定時器被禁止。4、系統(tǒng)復位復位電路允許很容易地將控制器置于一個
所有的SFR都被初始化為預定值,SFR中各位的復位值在SFR的詳細說明中定義。I/O端口鎖存器的復位值為0xFF(全部為邏輯‘1’),內(nèi)部弱上拉有效,使外部I/O引腳處于高電平狀態(tài)。注1:外部I/O引腳并不立即進入高電平狀態(tài),而是在進入復位狀態(tài)后的四個系統(tǒng)時鐘之內(nèi)。注2:在復位期間弱上拉是被禁止的,在器件退出復位狀態(tài)時弱上拉被使能
在退出復位狀態(tài)時,程序計數(shù)器(PC)被復位,MCU使用內(nèi)部振蕩器運行在2MHz作為默認的系統(tǒng)時鐘。
看門狗定時器被使能,使用其最長的超時時間。所有的SFR都被初始化為預定值,SFR中各位的復位值
有7個能使MCU進入復位狀態(tài)的復位源:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告設(shè)計合同樣本模板
- 2024個人房屋出租合同精簡版
- 手機銷售合同范本2024年
- 2024家長委托代理人小學生接送合同
- 房產(chǎn)贈與合同范例
- 2024汽車零部件運輸合同模板
- 2024年塘壩承包合同堰塘承包協(xié)議
- 2024廣告活動贊助合同范本
- 葡萄酒代理授權(quán)合同樣本-合同格式
- 2024上海國內(nèi)旅游合同范本
- 新部編人教版四年級上冊語文課件(第16課 風箏)
- 臨床診斷與思維步驟課件
- 放射科危急值制度考試試題與答案
- 通信發(fā)展的前世今生兒童科普(課堂PPT)課件(PPT 38頁)
- 老年人口腔保健知識PPT課件
- 荒蕪土地恢復與重建的生態(tài)工程匯總
- 怎么才能快速學會做賬
- 第四章齲病的預防
- 內(nèi)鏡中心進修護士培訓計劃
- 深圳市不動產(chǎn)登記申請表
- 裝修垃圾清運單
評論
0/150
提交評論