芯片-avr中文參考at90s大多數(shù)為單指令周期_第1頁
芯片-avr中文參考at90s大多數(shù)為單指令周期_第2頁
芯片-avr中文參考at90s大多數(shù)為單指令周期_第3頁
芯片-avr中文參考at90s大多數(shù)為單指令周期_第4頁
芯片-avr中文參考at90s大多數(shù)為單指令周期_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

特AVRRISC結(jié)構(gòu)AVR高性能低功耗RISC結(jié)構(gòu)118條指 大多數(shù)為單指令周32個8位通用工作寄存工作10MHz時具有10MIPS的性數(shù)據(jù)和非易失性程序內(nèi)存2K字節(jié)的在線可編程FLASH擦除次數(shù)1000次128字節(jié)128字節(jié)可編程 100000次程序加密位Peripheral特點個可預(yù)分頻Prescale的8位定時器/計數(shù)個可預(yù)分頻具有比較捕捉和8-9-10位功能的16位定時器/計數(shù)器片內(nèi)模擬比較器可編程的看門狗定時器由片內(nèi)振蕩器生成用于下載程序的SPI口全雙工特別的MCU特點低功耗空閑和掉電模式內(nèi)外部中斷源規(guī)范Specification低功耗高速CMOS工藝全靜態(tài)工作4MHz3V25條件下的功耗工作模式2.8mA空閑模式掉電模式<1I/O和封裝15個可編程的I/O20PDIPSOIC封裝工作電壓2.7V-6.0VAT90S2313-44.0V-6.0VAT90S2313-10速描AT90S2313AVRRISCCMOS8位單片機通過在一個時鐘周期內(nèi)執(zhí)行一條指令A(yù)T90S23131MIPS/MHz的性能從而使得設(shè)計人員可以AVR32ALU算邏單元直接相連允許在一個時鐘周期內(nèi)執(zhí)行的單條指令同時兩個獨立的寄存器這種結(jié)構(gòu)提高了代碼效率使AVR得到了比普通CISC單片機高將近10倍的性能圖 AT90S2313具有以下特點2KFLASH128EEPROM128SRAMI/0口32個通用工作寄存器具有比較模式的靈活的定時器/計數(shù)器內(nèi)外中斷源可編程的UART可編程的看門狗定時器程序用的SPI口以及兩種可通過軟件選擇的省電模式工作于空閑模式時CPU將停止運行而寄存器定時器/計數(shù)器看門狗和中斷系統(tǒng)繼續(xù)工作掉電模式時振蕩器停止工作所有功能都被而寄存器內(nèi)容得到保留ATMELFLASHISP接口或通用編程器多次編程通過將增強的RISC8位CPU與FLASH集成在一個內(nèi)2313AT90S2313具有一整套的編程和系統(tǒng)開發(fā)工具宏匯編調(diào)試/仿真器仿真器和管腳配置管腳定義 GND電源B口PB7…PB0B8I/O口每一個管腳都有內(nèi)部上拉電阻可單獨選擇PB0PB1作為片內(nèi)模擬比較器的正AIN0負AIN1輸入端B口的輸出緩沖器能夠吸收20mA電流可直接驅(qū)動LED當(dāng)作為輸入時如果外部被拉低由于上拉電阻的存在管腳將輸出電流在復(fù)位過程中B口為三態(tài)即使此時時鐘還未起振D口D7I/O20mA輸入時如果外部被拉低由于上拉電阻的存在管腳將輸出電流在復(fù)位過程中D口為三態(tài)即使此時時鐘還未起振/RESET復(fù)位輸入超過50ns的低電平將引起系統(tǒng)復(fù)位低于50ns的脈沖不能保證可靠XTAL1振蕩器放大器的輸入端XTAL2振蕩器放大器的輸出端晶體振蕩器XTAL1XTAL2分別是片內(nèi)振蕩器的輸入輸出端可使用晶體振蕩器或是陶瓷振蕩器當(dāng)使用外部時鐘時XTAL2應(yīng)懸空圖 振蕩器連圖 結(jié)構(gòu)縱覽4AT90S2313AVRRISC快速寄存器文件包含32個8位可單周期的通用寄存器這意味著在一個時鐘周期內(nèi)ALU可以完成一次如下操作寄存器文件中的兩個操作數(shù)執(zhí)行操作將結(jié)果存回6316運算能力其中Z指針還用于查表功能ALU支持兩個寄存器之間寄存器和常數(shù)之間的算術(shù)和邏輯操作以及單寄存器的操作除了寄存器操作模式通常的內(nèi)存模式也適用于寄存器文件這是因為AT90S2313為寄存器文件分配了32個最低的數(shù)據(jù)空間地址$00-$1F允許其象普通內(nèi)存地址一樣I/O內(nèi)存空間包括64個地址作為CPU外設(shè)的控制寄存器T/C 以及其他I/O功能I/O內(nèi) 也可以作為數(shù)據(jù)地址$20-$5F來AVR采用了HARVARD結(jié)構(gòu)程序和數(shù)據(jù)總線分離程序內(nèi)存通過兩段式的管道Pipeline進行當(dāng)CPU在執(zhí)行一條指令的同時就去取下一條指令這種預(yù)取指的概念使得指相對跳轉(zhuǎn)和相對調(diào)用指令可以直接1K地址空間所有的AVR指令都為16位長每個程序內(nèi)存地址都包含一條16位或32位的指令當(dāng)執(zhí)行中斷和子程序調(diào)用時返回地址于堆棧中堆棧分布于通用數(shù)據(jù)SRAM之中SRAMSPSPAVR結(jié)構(gòu)的內(nèi)存空間是圖 內(nèi)存映I/O有一個中斷向量由中斷向量組成的中斷向量表位于程序區(qū)的最前面中斷向量地址低通用工作寄存器文件圖 ……… 作 所有的寄存器操作指令都可以單指令的形式直接所有的寄存器例外情況為5條涉及常數(shù)操作的指令SBCISUBICPIANDI和ORI這些指令只能通用寄存器文件的后半部分R16到R31632個地址雖然寄存器文件的實現(xiàn)與SRAM不同這種內(nèi)存組織方式在寄存器方面具有極大XYZ寄存器寄存器R26~R31除了用作通用寄存器外還可以作為數(shù)據(jù)間接尋址用的地址指針圖7 YZ寄存器R27R26R27R260707X 0707 0707ZAVRALU32個通用工作寄存器直接相連ALU3類算術(shù)邏輯和位操作可編AT90S23132KFLASH16FLASH AT90S2313的程序計數(shù)器PC為10位寬可以尋址到1024個字的FLASH程序AT90S2313128EEPROM它是作為一個獨立的數(shù)據(jù)空間而存在的可以按字節(jié)讀寫EEPROM的至少為100000次擦除EEPROM的由地址寄存器數(shù)據(jù)圖 寄存器文 ……I/O寄存 ………224個數(shù)據(jù)地址用于尋址寄存器文件I/OSRAM96個地址為寄存器文件+I/O其后的128個地址用于尋址SRAM5種直接帶偏移量的間接間接預(yù)減的間接后加的間接寄存器R26R31為間接尋址的指針寄存器YZ63個地址帶預(yù)減和后加的間接尋址模式要用到XYZ指針32個通用寄存器64I/O128SRAM程序和數(shù)據(jù)尋址模式AT90S2313支持強大而有效的尋址模 本節(jié)將要介紹各種尋址模單寄存器直接尋址圖9雙寄存器直接尋址圖10I/O直接尋址圖11數(shù)據(jù)直接尋址圖12帶偏移的數(shù)據(jù)間接尋址圖13數(shù)據(jù)間接尋址圖14帶預(yù)減的數(shù)據(jù)間接尋址圖15帶后加的數(shù)據(jù)間接尋址圖16使用LPM指令尋址常數(shù)圖17間接程序?qū)ぶ稩JMP圖相對程序?qū)ぶ稲JMP圖內(nèi)存和指令執(zhí)行時AVRCPU由系統(tǒng)時鐘驅(qū)動此時外部晶體直接產(chǎn)圖20說明了由HARVARD結(jié)構(gòu)決定了的并行取指和執(zhí)行以及快速寄存器文件的概念這是一個基本的達到1MIPS/MHz優(yōu)良的性價比功能/時鐘比功能/功耗比的流水線概2021演示的是寄存器文件內(nèi)部時序在一個時鐘周期里ALU可以同時對兩個寄存器操作數(shù)進行操作同時將結(jié)果存回到其中的一個寄存器中去I/O內(nèi)表 地址16進制 T/CMCU控制寄T/C0T/C08位T/C1T/C1DAVR2313的所有I/O和都被放置在I/O空間IN和OUT指令用來不同的I/O地址32個通用寄存器之間傳輸數(shù)據(jù)地址為$00-$1FI/OSBICBI指令進行位尋址而SIBCSIBSINOUT指令時地址必須在$00-$3F之間如果要象SRAM一樣I/O寄存器則相應(yīng)地址要加上$20在本文檔里所有I/O寄存器的SRAM地址寫在括號中為了與后續(xù)產(chǎn)品兼容保留未用的未應(yīng)寫0而保留的I/O寄存器則不應(yīng)一些狀態(tài)標(biāo)志位的清除是通過寫1來實現(xiàn)的CBI和SBI指令已置位的標(biāo)志位時會回寫1因此會清除這些標(biāo)志位CBI和SBI指令只對$00-$1F有效I/O寄存器和控制寄存器在后續(xù)章節(jié)介狀態(tài)寄存器 StatusRegisterITHSVNZC ITHSVNZC$3F$5F 全局中斷使能置位時使能全局中斷單獨的中斷使能由個獨立控制寄存器控制如果I清零則不論單獨中斷標(biāo)志置位與否都不會產(chǎn)生中斷I在復(fù)位時清零RETI指令執(zhí)行后置位T位拷貝位拷貝指令BLD和BST利用T作為目的或源地址BST把寄存器的某一位拷貝到 BLD把T拷貝到寄存器的H半加標(biāo)志位S符號位 二進制補碼溢出標(biāo)志位N負數(shù)標(biāo)志位Z零標(biāo)志位C進位標(biāo)志位狀態(tài)寄存器在進入中斷和退出中斷時并不自動進行和恢復(fù)這項工作由軟件完堆棧指針 $3D$5D00000000堆棧指針指向位于SRAM的函數(shù)及中斷堆棧堆??臻g必須在調(diào)用函數(shù)或中斷使能之前定義指針必須指向高于$60的地址用PUSH指令推數(shù)據(jù)入棧時堆棧指針將減一而當(dāng)調(diào)用函數(shù)或中斷時指針將減二使用POP指令時堆棧指針將加一而用RETRETI返回時指針將加二復(fù)位和中斷處理AT90S231310事件都有自己的使能位當(dāng)使能位置位I也置位的情況下中斷可以發(fā)生2在中斷向量表中處于低地址的中斷具有高的優(yōu)先級所以RESET具有最高的優(yōu)先級表 1硬件管腳上電復(fù)位和看門狗復(fù)位234T/C15T/C16T/C17T/C08UART9UARTUARTPT1T1T1T0PR16,<指令SPL,R16復(fù)位源上電復(fù)位當(dāng)電源電壓低于上電門限VPOT時MCU外部復(fù)位當(dāng)/RESET50nsMCU看門狗復(fù)位看門狗定時器超時后MCU在復(fù)位期間所有的I/O寄存器被設(shè)置為初始值程序從地址$000開始執(zhí)行$000地址中放置的指令必須為RJMP相對跳轉(zhuǎn)指令跳轉(zhuǎn)到復(fù)位處理例程若程序不需中斷則中斷向量就可放置通常的程序代碼圖23為復(fù)位電路的邏輯圖表3定義了復(fù)位電路的時序圖 復(fù)位邏表 復(fù)位電參數(shù)VCC=符參最小值典型值最大值單上電復(fù)位電壓門限上升V上電復(fù)位電壓門限下降V--V復(fù)位延遲周期FSTRT復(fù)位延遲周期FSTRT注1.除非電源電VPOT否則上電復(fù)位不會發(fā)WDT振蕩周期數(shù)示于4看門狗振蕩器的頻率與工作電壓有關(guān)具體參見后續(xù)章節(jié)的典型特性4溢出時間WDT周期上電復(fù)位上電復(fù)位POR保證器件在上電時正確復(fù)位如圖23所示看門狗定時器驅(qū)動一個內(nèi)MCUVCCVPOTFLASHFSTRTMCU如果內(nèi)置于片內(nèi)的啟動時間足夠的話/RESETVCC直接相連或是外接上拉電阻VCC的同時保持/RESET圖 MCU起動/RESET與VCC相圖 MCU啟動/RESET由外電路控外部復(fù)位外部復(fù)位由外加于/RESET引腳的低電平產(chǎn)生大于50ns的復(fù)位脈沖將造成復(fù)位施加短脈沖不能保證可靠復(fù)位當(dāng)外加信號達到復(fù)位門限電壓VRST上升沿時tTOUT延時周期開始然后MCU啟動圖 看門狗復(fù)位當(dāng)看門狗定時器溢出時將產(chǎn)生1XTAL周期的復(fù)位脈沖在脈沖的下降沿延時定時器開始對tTOUT記數(shù)圖 中斷處理AT90S2313有2個中斷 控制寄存器GIMSK通用中斷 寄存器和TIMSKT/C中斷一個中斷產(chǎn)生后全局中斷使能位I將被清零后續(xù)中斷 I置位從而開放中 執(zhí)行RETI后I重新置對于那些由可以保持為靜態(tài)的事件如輸出比較寄存器1與T/C1值相匹配驅(qū)動的中斷事件發(fā)生后中斷標(biāo)志將置位如果中斷標(biāo)志被清除而中斷條件仍然存在則標(biāo)志只有在新事當(dāng)程序計數(shù)器指向?qū)嶋H中斷向量開始執(zhí)行相應(yīng)的中斷例程時硬件清除對應(yīng)的中斷標(biāo)志一些中斷標(biāo)志位也可以通過軟件寫1 當(dāng)一個符合條件的中斷發(fā)生后如果相應(yīng)的中斷使能位為0則中斷標(biāo)志位掛起并一直保持到中斷執(zhí)行或者被軟件清除如果全局中斷標(biāo)志被清零則所有的中斷都不會被執(zhí)行直到I置位然后被掛起的各個中注意外部電平中斷沒有中斷標(biāo)志位因此當(dāng)電平變?yōu)榉侵袛嚯娖胶笾袛鄺l件即終止進入中斷和退出中斷時MCU不會自動保存或恢復(fù)狀態(tài)寄存器故爾需由軟件處理通用中斷屏蔽寄存器

76543210------RRRRRR000000005…0INT1外部中斷1請求使能當(dāng)INT0和I都為1時外部引腳中斷使能MCU通用控制寄存器MCUCR中的斷檢測控制位1/0ISC11和ISC10定義中斷1是上升沿中斷還是下降沿中斷或者是低電平中斷即使管腳被定義為輸出中斷仍可產(chǎn)生INT0外部中斷0請求使能當(dāng)INT0和I都為1時外部引腳中斷使能MCU通用控制寄存器MCUCR中的斷檢測控制位1/0ISC01和ISC00定義中斷0是上升沿中斷還是下降沿中斷或者是低電平中斷即使管腳被定義為輸出中斷仍可產(chǎn)生通用中斷標(biāo)志寄存器

76543210------RRRRRR000000005…0INTF1外部中斷標(biāo)志當(dāng)INT1管腳有事件觸發(fā)中斷請求時INTF1置位1如果SREG中的I及GIMSK中的INT1都為1則MCU將跳轉(zhuǎn)到中斷地址$002中斷例程執(zhí)行后此標(biāo)志被清除另外標(biāo)志也可以通過對其寫1來清除INTF0外部中斷標(biāo)志當(dāng)INT0管腳有事件觸發(fā)中斷請求時INTF0置位1如果SREG中的I及GIMSK的INT0都為1 則MCU將跳轉(zhuǎn)到中斷地址$001中斷例程執(zhí)行后此標(biāo)志被清除另外標(biāo)志也可以通過對其寫1 T/C中斷屏蔽寄存器

---- 初始 位 保TOIE1T/C1溢出中斷使當(dāng)TOIE1和I都為1 時T/C1溢出中斷使能當(dāng)T/C1溢出或TIFR中的TOV1位置位時中斷例程$005得到執(zhí)行OCIE1AT/C1輸出比較匹配中斷使能TOIE1和I都為1時輸出比較匹配中斷使能當(dāng)T/C1的比較匹配發(fā)生或TIFR中的OCIE1A置位中斷例程$004將執(zhí)行TICIE1T/C1輸入捕捉中斷使能當(dāng)TICIE1和I都為 時輸入捕捉中斷使能當(dāng)T/C1的輸入捕捉事件發(fā)生PD6TIFR中的ICF1置位中斷例程$003將執(zhí)TOIE0T/C0溢出中斷使當(dāng)TOIE0和I都為1 時T/C0溢出中斷使能當(dāng)T/C0溢出或TIFR中的TOV0位置位時中斷例程$006得到執(zhí)行T/C中斷標(biāo)志寄存器 543210 ---- RRRR初始 000000位 保TOV1T/C1溢出中斷標(biāo)志位當(dāng)T/C1溢出時TOV1置位執(zhí)行相應(yīng)的中斷例程后此位硬件清零此外TOV1也可以通過寫1 來清零當(dāng)SREG中的位ITOIE1和TOV1一同置位時中斷例程得到執(zhí)行在模式中當(dāng)T/C1在$0000改變記數(shù)方向時TOV1置位OCF1A輸出比較標(biāo)志當(dāng)T/C1與OCR1A的值匹配時OCF1A置位此位在中斷例程里硬件清零或者通過對其寫1 來清零當(dāng)SREG中的位IOCIE1A和OCF1A一同置位時中斷例程得到執(zhí)行 輸入捕捉標(biāo)志位當(dāng)輸入捕捉事件發(fā)生時ICF1置位表明T/C1的值已經(jīng)送到輸入捕捉寄存器ICR1 在中斷例程里硬件清零或者通過對其寫1來清零當(dāng)SREG中的位ITICIE1A和ICF1一同置位時中斷例程得到執(zhí)行TOV0T/C0溢出中斷標(biāo)志位當(dāng)T/C0溢出時TOV0置位執(zhí)行相應(yīng)的中斷例程后此位硬件清零此外TOV0也可以通過寫1 來清零當(dāng)SREG中的位ITOIE0和TOV0一同置位時中斷例程得到執(zhí)行外部中斷INT0和INT1引腳觸發(fā)應(yīng)當(dāng)注意如果中斷使能則即使INT0/INT1輸出中斷照樣會被觸發(fā)此特點提供了一個產(chǎn)生軟件中斷的方法觸發(fā)方式可以為上升沿MCUMCUCR決定當(dāng)設(shè)置為低電平觸發(fā)時只要電平為低中斷就一直觸發(fā)中斷響應(yīng)時間AVR中斷響應(yīng)時間最少為4個時鐘周期在這4個時鐘期間PC2個字節(jié)自動入棧SP22個時鐘周期如MCU才會執(zhí)行中斷程4個時鐘在此期間PC將被彈出棧SREGI被置位如果在中斷期間發(fā)生了其他中斷則AVR在退出中斷程序后要執(zhí)行一條主程序指令之后才能再響應(yīng)被MCU控制寄存器 6543210 - R初始 0000000位 保SE休眠使能SLEEP指令時SEMCUMCU進入休眠建議與SLEEP指令相連使用SM休眠模式此位用于選擇休眠模式SM為 時為閑置模式SM為 ISC11ISC10中斷檢測控制11和位INT1中斷的邊沿或電平如下表所示表 中斷1檢測控描00011011注改變ISC11/ISC10時首先要INT1清除GIMSK的INT1 否則可能不必要的中ISC01ISC00中斷檢測控制01和位INT0中斷的邊沿或電平如下表所示表 中斷0檢測控描00011011注改變ISC01/ISC00時首先要INT0清除GIMSK的INT0位 否則可能不必要的中斷INTn引腳的電平在檢測邊沿之前采樣如果邊沿中斷使能則大于一個MCU時鐘的脈沖將觸發(fā)中斷如果選擇了低電平觸發(fā)則此電平必須保持到當(dāng)前執(zhí)行的指令結(jié)束休眠模式SE為1SLEEP指令使能的中斷將喚醒MCU完成中斷例程后MCUSLEEP以后的指令在休眠期間寄存器文件及I/O內(nèi)存的內(nèi)容不會丟失如果在休眠模式下復(fù)位則MCU從RESET向量$000處開始運行閑置模式SM為0時SLEEPMCU進入閑置模式在此模式下CPU停止運行而定時器/計數(shù)器看門狗和中斷系統(tǒng)繼續(xù)工作內(nèi)外部中斷都可以喚醒MCU如果不需要從模擬比較器中斷喚醒MCU為了減少功耗可以切斷比較器的電源方法是置位ACSR的ACD如果MCU從閑置模式喚醒CPU將立即執(zhí)行指令掉電模式SM為1時SLEEPMCU進入掉電模式在此模式下外部晶振停振而外部中斷及看門狗在使能的前提下繼續(xù)工作只有外部復(fù)位看門狗復(fù)位和外部電平中斷INT0INT1可以使MCU脫離掉電模式MCU時要注意保持低電平大于TTOUT的時間否則MCU繼續(xù)保持定時器/計數(shù)器AT90S2313內(nèi)部有兩個通用定時器/8T/C16位T/CT/C10位的預(yù)分頻定時器取得預(yù)分頻的時鐘T/C既可用作使用片內(nèi)時鐘的定時器也可用作T/C的預(yù)分頻器圖 T/C的預(yù)分頻4種可選的預(yù)分頻時鐘為CK/8CK/64CK/256CK/1024CK為振蕩器時鐘還可以選擇CK外部時鐘以及停止工作829T/C0圖 T/C0工作框T/C0CKCKT/C0控制寄存器TCCR0來停止它TIFR為狀態(tài)標(biāo)志寄存器TCCR0為控制寄存器而TIMSKT/C0T/C0CPU時間至少為一個CPU時鐘周期MCU在內(nèi)部CPU時鐘的上升沿對外部信號進行采樣在低預(yù)分頻條件下T/C0具有高分辨率和高精度的特點而在高預(yù)分頻條件下T/C0T/C0控制寄存器 6543210 ---- RRRR初始 00000007…3CS02CS01CS00時鐘選擇表 T/C0預(yù)分頻選000001010011100101110外部引腳 下降111外部引腳 上升當(dāng)T/C0由外部引腳T0驅(qū)動時即使PD4T0配置為輸出管腳上的信號變化照樣可以使計數(shù)器發(fā)生相應(yīng)的變化這就為用戶提供了一個軟件控制的方法T/C07654321000000000T/C0是可以進行讀/寫的向上計數(shù)器只要有時鐘輸入T/C0就會在寫入的值基礎(chǔ)上向1630T/C1圖 T/C1工作框T/C1CKCK或外部引腳輸入另外還可以由T/C1TCCR1B來停止它TIFR為狀態(tài)標(biāo)志寄存器TIMSKT/C1T/C0CPU對信號的正確采樣要保證外部信號的轉(zhuǎn)換時間至少為一個CPU時鐘周期MCU在內(nèi)部CPU時鐘的上升沿對外部信號進行采樣在低預(yù)分頻條件下T/C1具有高分辨率和高精度的特點而在高預(yù)分頻條件下T/C1非常適用于低速功能如計時OCR1A作為數(shù)據(jù)源T/C1還可以實現(xiàn)輸出比較的功能此功能包括比較匹配時清除計數(shù)器和輸出比較管腳1的動作幾種動作可任選一種T/C1還可以用作89或10位的 調(diào)制器在此模式下計數(shù)器和OCR1寄存器用作ICPT/C1ICR1捕捉事件的設(shè)置由TCCR1B控制此外模擬比較器也可以設(shè)置為觸發(fā)輸入捕捉ICP引腳邏輯見圖圖 ICP引腳原理44T/C1控制寄存A76543210----RRRR000000005…2比較輸出模式1COM1A1COM1A0T/C1的比較匹配發(fā)生時輸出引腳的動作這些動作都將影響管腳OC1-輸出比較引腳1PB3這是I/O口的第二功能相應(yīng)的方向控制位要設(shè)置為1以便將其配置為輸出具體配置見表8表 比較1模式選描000110111110選表 描00T/C1的操作無01T/C18位10T/C19位11T/C110位T/C1控制寄存器 6543210 -- RR初始 0000000位 保ICNC1輸入捕捉抑制器4個時鐘時ICP44ICES1輸入捕1邊沿選擇ICES1位為0時T/C1ICP若ICES1位為1則T/C1的值在ICP引腳電平的上升沿被傳送到CTC1比較匹配時清除CTC1為1時比較A匹配事件發(fā)生后T/C1將復(fù)位為0若CTC1為0則T/C1將連續(xù)記數(shù)而不受比較匹配的影響由于比較匹配事件的檢測發(fā)生在匹配發(fā)生之后的一個CPU1A比較匹配寄存器的值設(shè)置為C時定時器的記數(shù)方式為…|C-2|C-1|C|0|18時定時器的記數(shù)方式則為…|C-2,C-2,C-2,C-2,C-2,C-2,C-2,C-2|C-1,C-1,C-1,C-1,C-1,C-1,C-1,C-1|C,0,0,0,0,0,0,0在模式下這幾位沒有作CS12CS11CS10時鐘選擇表 T/C1預(yù)分頻選描000001010011100101110外部引腳 下降111外部引腳 上升當(dāng)T/C1由外部引腳T1驅(qū)動時即使PD5T1配置為輸出管腳上的信號變化照樣可以使計數(shù)器發(fā)生相應(yīng)的變化這就為用戶提供了一個軟件控制的方法T/C1TCNT1H8765432100000000000000000此16位寄存器包含了T/C1的值當(dāng)CPU這兩個寄存器時為了保證高字節(jié)和低字節(jié)能夠同時讀寫要用到一個8位的臨時寄存器TEMP此寄存器在OCR1A和ICR1的時候也要用到如果主程序和中斷程序在寄存器時都要用到TEMP那么在適當(dāng)?shù)臅r候CPUTCNT1HTEMP寄存器當(dāng)CPUTCNT1L時此數(shù)據(jù)及TEMP中的數(shù)據(jù)一并寫入TCNT1因此在寫TCNT116位時首先要寫TCNT1H當(dāng)CPUTCNT1L時TCNT1L的數(shù)據(jù)將送入CPU同時TCNT1H將送入寄存器等到CPUTCNT1H時TEMP中的數(shù)據(jù)送入CPU因此在讀16位TCNT1時首先要T/C1是向上記數(shù)器或上/下記數(shù)器在 模式下若T/C1被置數(shù)則T/C1將在預(yù)置T/C1輸出比較寄存器 OCR1AH和8765432100000000000000000由于OCR1A為16位寄存器所以在時要用到TEMP寄存器以保證兩個字節(jié)的同步更新其讀寫過程與讀寫TCNT1相同876543218765432100000000000000000ICES1ICPTCNT1ICR1同時ICF1置位由于ICR1為16位寄存器所以在時要用到TEMP寄存器以保證同時兩個字節(jié)讀寫過程與讀寫TCNT1相同模式下的選擇模式后T/C1和輸出比較寄存器1-OCR1共同組成一個89或10位的無尖峰的自由運行的其輸出引腳為PB3OC1T/C1作為上/下計數(shù)器從0記數(shù)到TOP然后反向記數(shù)回到0當(dāng)計數(shù)器中的數(shù)值和OCR1A的數(shù)值低89或10位一致時PB3OC1引腳按照COM1A0和COM1A1的設(shè)置動作表 TOP值及頻分辨率TOP的值頻8$00FF2559$01FF51110$03FF1023表 模式下的比較1模式選擇000110置位OC1正 11置位OC1反 模式下OCR1A的低10位首先在一個臨時的位置等到T/C1達到TOP時才真正存 圖 失步的OCR1鎖如果在執(zhí)行寫和鎖存操作的時候OCR1A讀到的是臨時位置的數(shù)OCR1的值為$0000TOPOC1表 OCR=$0000或TOP時的輸10L10H11H11L在模式下當(dāng)計數(shù)器達到$0000時將置位TOV1此時發(fā)生的中斷與正常情況下的中看門狗定時器VCC=5V的條件下典型振蕩頻率為1MHz通過調(diào)整定時器的預(yù)分頻因數(shù)8種可以改變看門狗復(fù)位時間間隔看門狗復(fù)位指令是WDT如果定時時間已經(jīng)到而且沒有執(zhí)行WDTMCU2313從復(fù)位地址重新開始執(zhí)行為了防止不關(guān)閉看門狗需要有一個特定的關(guān)閉程序33看門狗定時器控制寄存7器 7器 ---RRR00000000WDTOE看門狗關(guān)閉使能當(dāng)WDE清零時此位必須為 才能關(guān)閉看門狗在置位的4個時鐘后硬件對其清WDE看門狗使WDE為1 時看門狗使能只有在WDTOE為1 時WDE才能清零以下為關(guān)閉看在同一個指令內(nèi)對WDTOE和WDE寫邏輯 即使WDE已經(jīng)為14個時鐘之內(nèi)WDEWDP2…0預(yù)分頻表 000001010011100101110111注看門狗的振蕩頻率于電壓有WDT應(yīng)該在看門狗使能之前執(zhí)行一次如果看門狗在復(fù)位之前使能EEPROM讀/EEP的時間與電壓有關(guān)大概在2.5~4ms之間自定時功能可以讓用戶監(jiān)測何時開始寫下一字節(jié)如果用戶要操作EEPROM應(yīng)當(dāng)注意如下問題在電源濾波時間常數(shù)比較大的電路中上電/VCC上升/下降會比較慢此時MCU將工作于低于晶振所要求的電源EEP寫指令為了保證EEP的數(shù)據(jù)完整性建議使用電壓復(fù)位電路EEPROM寫操作需要執(zhí)行一個特定的寫時序具體參看后續(xù)內(nèi)容EEPROM讀/寫操作時CPU2個周期然后再執(zhí)行后續(xù)指令EEPROM地址寄存 6543210 初始 XXXXXXX位 保EEPROM數(shù)據(jù)寄存器7654321000000000EEPROM寫操作EEDRDDAR單元的數(shù)據(jù)對于讀操作EEDR址 765432176543210-----RRRRR000000007…3EEMWEEEPROM主寫使能EEMWEEEWE為1

當(dāng)EEMWE為1時置位當(dāng)將把數(shù)據(jù)寫入EEPROM的指定地址若EEMWE為0 則EEWE不起作用EEMWE置位后4個周期硬件對其清零EEWEEEPROM寫使當(dāng)EEP數(shù)據(jù)和地址設(shè)置好之后需置位EEWE以便將數(shù)據(jù)寫入EEPROM寫時序如下23步不是必須的EEMWE4個周期內(nèi)EEWE經(jīng)過寫時間VCC=2.7V時為4ms左右VCC=5V時為2.5ms左右之后EEWE硬件清零用戶可以憑此位判斷寫時序是否已經(jīng)完成EEWE置位后CPU要停止2個周期注意發(fā)生在步驟45EEP的中斷打斷了EEP操作RRAREEDR寄存器可能被修改引起EEP操作失敗建議此時關(guān)閉全局中斷標(biāo)志IEEREEEPROM讀使能EEPEEREEEDREEREEEPROM的數(shù)據(jù)已經(jīng)讀入EEDREEPROM數(shù)據(jù)的只需要一條指令且無需等待EERE置位后CPU要停止2個周期用戶在EEP時應(yīng)該檢測EEWE如果一個寫操作正在進行寫EEAR和EEDR將中EEP的寫入使得結(jié)果無法防止EEPROM數(shù)據(jù)毀由于電源電壓過低CPUEEPROM有可能工作不正常造成EEPROM數(shù)據(jù)的毀壞這種情況在使用獨立的EEPROM器件時也會遇到EEPROMEEPROM寫操作所需要的最低電壓二是CPU本身已經(jīng)無法正常工作當(dāng)電壓過低時保持/RESET信號為低這可以通過外加復(fù)位電路BOD 來完成有些AVR產(chǎn)品本身就內(nèi)含BOD電路看有關(guān)有效防止對EEPROM的誤操作將那些不需修改的常數(shù)于FLASH之AT90S2313具有全雙工通用異步收發(fā) 其主要特點波特率發(fā)生器可以產(chǎn)生大量的波特率bps893個獨立的中斷發(fā)送結(jié)束發(fā)送數(shù)據(jù)寄存器空接收結(jié)束數(shù)據(jù)發(fā)送UARTUDRUDR的數(shù)據(jù)UDR若前一個字符的停止位還沒有移出移位寄存器則要等到停止位移出后UDR的數(shù)據(jù)圖 如果1011位收發(fā)器移位寄存器為空UDR中的數(shù)據(jù)將傳送到移位寄存器此時置位表明UART0位起始位自動清零而位9和10停止位置位如果選擇了9位數(shù)據(jù)格式UART的CHR9置位則UCRTXB8將送到移位寄存器的位9UART首先在TXD引腳送出起始位然后是數(shù)據(jù)低位 如果UDR里有新數(shù)據(jù)則UART會在停止位發(fā)送完畢只有自動加載數(shù)據(jù)在加載數(shù)據(jù)的同時UDRE置位并一直保持到有新數(shù)據(jù)寫入UDR如果UDR沒有新數(shù)據(jù)而且停止位也已經(jīng)輸出一個bit的長度則發(fā)送結(jié)束標(biāo)志TXC置位UCRTXENUART發(fā)送器當(dāng)TXEN為0時PD1I/O為 時UART輸出自動連接到 強迫其為輸出而不管方向寄存器的設(shè)數(shù)據(jù)接收圖 UART的前端以16倍于波特率的頻率對RXD引腳進行采樣如果在此管腳處于空閑狀態(tài)的時候檢測到低電平則認為這是起始位的下降沿起始位檢列開始假定采樣1為第一CPU8910RXD3次連續(xù)采樣如果有兩個或全部采樣值為高則認為當(dāng)前信號是一個虛起始位要丟棄MCU將開始等待新一次的1到0的轉(zhuǎn)換如果檢測到了一個有效的起始位MCU就會開始采樣數(shù)據(jù)數(shù)據(jù)位的檢測同樣是在采樣8910兩個或3個相同的值被認為是當(dāng)前位的值圖36說明了采樣過程圖 當(dāng)停止位進入時3個采樣值當(dāng)中必須要有兩個以上為高否則USR中的幀錯誤標(biāo)志位FE置位在讀UDR之前用戶應(yīng)該檢查FEUDRUSRRXC置位UDR實際上是兩個物理上分離的寄存器一個用于發(fā)送一個用于接收UDR時的是接收UDRUDR時的是發(fā)送UDR9位則UCRRXB8在數(shù)據(jù)傳送到UDR時加載到發(fā)送移位寄存器的位9如果在UDR之前UART又接收到一個數(shù)據(jù)則USR的OR置位這表明數(shù)據(jù)無法轉(zhuǎn)移到UDR而丟失了OR一直保持到UDR被因此如果波特率比較高或者CPU負載比較重用戶應(yīng)該在讀UDR時首先檢測OR標(biāo)志如果RXEN為0則不工作PD0可以用作普通I/O口而若RXEN置位則 當(dāng)UCR的CHR9為1時收發(fā)的數(shù)據(jù)格式為9位要發(fā)送的第9位是UCR的TXB8要在寫UDR之前設(shè)置而接收到的第9位是RXB8UART控制UART數(shù)據(jù)寄存器7654321000000000UDR實際上是兩個物理上分離的寄存器一個用于發(fā)送一個用于接收UDR時訪問的是接收UDR而在寫UDR時的是發(fā)送UDR U---RRRRRRRR001000002…0RXCUART接收結(jié)束RXC置位表示接收到的數(shù)據(jù)已經(jīng)從接收移位寄存器傳送到UDR但是不管數(shù)據(jù)是否有誤如果RXCIE為1則RXC置位時將引起接收結(jié)束中斷RXC在讀UDR時自動被清除如果采用中斷方式則中斷例程必須讀一次UDR以清除RXC否則中斷結(jié)束后又會中TXCUART發(fā)送結(jié)束TXCUDR中沒有新的要發(fā)送的數(shù)據(jù)在半雙工通信應(yīng)用當(dāng)中由于發(fā)送器在發(fā)送完數(shù)據(jù)之后要立即轉(zhuǎn)換到接收模式所以這個標(biāo)志如果TXCIE已置位則TXC置位將發(fā)送結(jié)束中斷進入中斷例程后TXC自動清零或者用戶可以對其寫1以達到清零的目的UDREUART數(shù)據(jù)寄存器空UDR傳送到發(fā)送移位寄存器后UDRE置位表明發(fā)送器已經(jīng)準(zhǔn)備好接收新的要當(dāng)UDRIE置位則只要UDRE為1UART發(fā)送結(jié)束中斷就可以執(zhí)行寫UDR將復(fù)位UDRE如果利用中斷方式發(fā)送數(shù)據(jù)則在UARTUDR以清除UDRE否則中斷將連續(xù)發(fā)生復(fù)位后UDRE的初始值為1表明發(fā)送器就FE幀錯誤MCU檢測到幀錯誤如檢測到停止位為0時FE置位當(dāng)檢測到數(shù)據(jù)停止位為1 時FE復(fù)位OR過速UDR未讀而新的數(shù)據(jù)又已進入移位寄存器ORUART控制寄存器76543210RW00000010RXCIE接收結(jié)束中斷使能TXCIE發(fā)送結(jié)束中斷使能UDRIEUART數(shù)據(jù)寄存器空中斷使能RXEN接收使能使能UART接收接收將導(dǎo)致TXCOR和FE無法置位同時也不能復(fù)位已經(jīng)置位的TXEN發(fā)送使能TXENCHR99MCU99位字符的讀/RXB8/TXB89位RXB89位TXB8發(fā)送的第9位發(fā)送字符的第9位波特率產(chǎn)生器

BAUD f16UBRR式中16UBRRfCK=UBRR=UART波特率寄存器的內(nèi)容0-255表 %%%%UBR 26378256713341223011201110000%%%%UBR 867894567333422231112%%%%UBR- 19178956783345UART波特率寄存 6543210 初始 0000000模擬比較器模擬比較器比較正輸入端PB0AIN0和負輸入端PB1AIN1的值如果PB0AIN0的電壓高于PB1AIN1的值比較器的輸出ACO將置位此輸出可用來觸發(fā)模擬比較器中斷上升沿下降沿或電平變換也可以觸發(fā)T/C1的輸入捕捉功能其框圖如圖37所示圖37模擬比較器框圖模擬比較器控制和狀態(tài)寄存器

76543210-RR00000000位 保ACD模擬比較器當(dāng)ACD為1 時模擬比較器的電源將切斷可以在任何時候?qū)ζ渲梦灰躁P(guān)閉模擬比較器這樣可以減少器件的功耗改變ACD時要注意模擬比較器的中斷否則有可能不ACO模擬比較器輸 模擬比較器中斷標(biāo)志ACIACIS1ACIS0ACII都為1則CPU執(zhí)行比較器中斷例程進入中斷例程后ACI被硬件清零此外ACI也可以通過對此位寫1來達到清零的目的要注意的是如果ACSR的另一些位被SBI或CBI指令修改時ACI亦被清零ACIE模擬比較器中斷使能ACIE為 時比較器中斷使ACIC模擬比較器輸入捕捉使能ACIC為 時T/C1的輸入捕捉功能由比較器中斷觸發(fā)此時比較器的輸出與的輸入捕捉前端直接相連T/C1的輸入捕捉噪聲抑制和邊沿選擇仍然適用如果ACIC0則模擬比較器與T/C1沒有關(guān)聯(lián)為了使能比較器驅(qū)動的T/C1輸入捕捉中斷ACIS1ACIS0模擬比較器中斷模式選擇表 中斷模式00 中0110ACO下降沿中斷11ACO上升沿中斷注改變ACIS1/ACIS0時要注 模擬比較器的中斷否則有可 腳的方向值 /使能上拉時不會無意地改變其他管腳的方向值/使能上拉BB口有3個I/O地址數(shù)據(jù)寄存器PORTB$18$38數(shù)據(jù)方向寄存器DDRB$17$37和輸入引腳PINB$16$36PORTB和DDRB可讀可寫PINB只可20mA的電流能夠直接驅(qū)動LED當(dāng)管腳被拉低 如果上拉電阻已經(jīng)激 則引腳會輸出電表 B口第二功管第二功能AIN0模擬比較器正輸入端AIN1模擬比較器負輸入端OC1T/C1比較匹配輸出MOSI程序時的數(shù)據(jù)輸入線MISO程 SCK串行時鐘當(dāng)使用B口的第二功能時DDRB和PORTB要設(shè)置成B口數(shù)據(jù)寄存器7654321000000000B口數(shù)據(jù)方向寄存器 6543210 初始 0000000B口輸入引腳地址 6543210 RRRRRRR PINB不是一個寄存器這個地址用來B口的物理值PORTB時讀到的是B口鎖存的數(shù)據(jù)而PINB時讀到的是施加于引腳上的邏輯數(shù)值B口用作通用數(shù)字I/O時B8PBn通用I/O引腳DDRB中的DDBn選擇引腳的方向如果DDBn為1則PBn為輸出腳如果DDBn為0則PBn為輸入腳在復(fù)位期間B口為三態(tài)口表 B口的配00N三態(tài)高阻01Y10N11N 6…0B口的第二功能SCK 當(dāng)配置為輸入DDB1=0無上拉電阻PB1=0時為模擬比較器的負輸入 當(dāng)配置為輸入DDB0=0無上拉電阻PB0=0時為模擬比較器的正輸入B口示意圖圖 B口示意圖PB0和PB1圖 B口示意圖PB3圖 B口示意圖PB2和PB4B口示意圖B口示意圖B口示意圖B口示意圖圖 B口示意圖DD口有3個I/O地址數(shù)據(jù)寄存器PORTD $12$32數(shù)據(jù)方向寄存器DDRD $31和輸入引腳PIND $10$30PORTD和DDRD可讀可寫PIND只可讀D7I/O管腳PD6~PD020mA的電流能LED當(dāng)管腳被拉低時如果上拉電阻已經(jīng)激活則引腳會輸出電流表 D口第二功管第二功能RXDUART接收引腳INT0外部中斷0輸入INT1外部中斷1輸入T0T/C0的外部輸入T1T/C1的外部輸入ICPT/C1的輸入捕捉引腳D口數(shù)據(jù)寄存器76543210-R00000000D口D口數(shù)據(jù)方向寄存器 6543210-R00000000D口輸入腳地址 543210-RRRRRRRR0PIND不是一個寄存器這個地址用來D口的物理值PORTD時讀到的是D口鎖存的數(shù)據(jù)而PIND時讀到的是施加于引腳上的邏輯數(shù)值D口用作通用數(shù)字 通用I/O引腳DDRD中的DDDn選擇引腳的方向如果DDDn為1則PDn為輸出腳如果DDDn為0則PDn為輸入腳在復(fù)位期間D口為三態(tài)口表 D口的配00N三態(tài)高阻01Y10N11N 6…0D口的第二功能 接收數(shù)據(jù)引腳使能后引腳自動配置為輸入而不管 若此時為1則上拉有D口示意圖

圖 D口示意圖圖 D口示意圖D口示意圖D口示意圖PD2D口示意圖D口示意圖PD4圖 D口示意圖程序編程程序和數(shù)據(jù)鎖定位AT90S2313具有兩個鎖定 如表21所示鎖定位只能通過片擦除命令擦表 程序鎖定位保護類型模111201300注意 在并行編程模式下熔斷位編程也 要先編程熔斷位然后編程鎖定熔斷位AT90S2313有兩個熔斷 SPIEN和SPIEN編程為0后串行程序使能缺省值為0FSTRT編程為0后MCU選擇短起動時間缺省值為1量大時用戶也可以訂購缺省值為0 串 熔斷位只能在并 廠所有的Atmel微處理器都有3字節(jié)的廠標(biāo)用以識別器件此代碼在串行或并行模式下都可 $912K字節(jié)的 $01當(dāng)$01地址為$91時器件為23133$00$01和編程FLASHAT90S23132KFLASH128EEPROM在出廠時已經(jīng)被擦除為1器件支持+12V高壓并行編程和低壓串行編程+12V只用來使能高壓編程不在兩種編程模式下FLASHEEPROM片內(nèi)集成了自擦和自定時除功能在編程時要注意電源電壓要滿足要求22型串行編程并行編程2.7V–4.5V–并行編程FLASHEEPROM圖 并行編信號命名當(dāng)驅(qū)動/WE或/OE時執(zhí)行加載表 管腳命編程時的信號名稱管功O 器件忙 I輸出使能低電平I寫脈沖低電平I字節(jié)選 低字 高字節(jié)IIPB0-雙向數(shù)據(jù)總線/OE為低時輸出表 XTAL1給正脈沖后的操作00加載FLASH或EEPROM的地址BS決定 01加載數(shù)據(jù)BS決定 1011表 命令字節(jié)執(zhí)行的命令100001000010000100010000000000000000進入編程模式拉低/RESET和 等待至少給/RESET11.5~12.5VBS在/RESET加上+12V100ns之內(nèi)發(fā)生動作將導(dǎo)致器件無法進入編程模式擦除FLASHEEPROM以及鎖定位在FLASHEEPROM完全擦除之FLASHEEPROM重新加載擦除命令設(shè)置XA1XA0為 BS為0設(shè)置DATA為1000 擦除命XTAL1一個正脈沖加載命令給/WE施加一個tWLWH_CE的負脈沖擦除命令在RDY/BSY引腳沒有反饋FLASH編程設(shè)置XA1XA0為 BS為0設(shè)置DATA為0001 寫FLASH命XTAL1一個正脈沖加載命令加 設(shè)置XA1XA0為 設(shè)置BS為 設(shè)置DATA=地址的字節(jié)$00-給XTAL1一個正脈沖加載地址的字設(shè)置XA1XA0為 設(shè)置BS為 設(shè)置DATA=地址的低位字節(jié)$00~$FFXTAL1一個正脈沖加載地址的低位字節(jié)設(shè)置XA1XA0為 設(shè)置DATA=數(shù)據(jù)的低位字節(jié)$00~$FF XTAL1一個正脈沖加載數(shù)據(jù)的低位字節(jié)設(shè)置BS為 給/WR一個負脈沖開始編程數(shù)據(jù)同時RDY/BSYRDY/BSY變高然后開始編程下一字節(jié)波形見圖50設(shè)置XA1XA0為 設(shè)置DATA=數(shù)據(jù)的字節(jié)XTAL1一個正脈沖加載數(shù)據(jù)的低位字節(jié)設(shè)置BS為 選擇數(shù)給/WR一個負脈沖開始編程數(shù)據(jù)同時RDY/BSY等待RDY/BSY變高然后開始編程下一字節(jié)波形見圖51器件在編程時保存加載令和地址為了有效地進行編程請注意以下幾當(dāng)寫讀多個內(nèi)存地址時命令只需加載一僅在編程新的頁256字節(jié)時才需要加載地址字因為擦除之后所有的FLASH和EEPROM的內(nèi)容都為1故數(shù)據(jù)為$FF時可以EEPROM的編程以及FLASHEEPROM5051 A加載命令0000B加載地址的字節(jié) 加載地址的低位字節(jié)$00~$FF設(shè)置/OE和BS為0此時可以從DATA總線讀FLASH數(shù)據(jù)的低位字設(shè)置BS為1此時可以讀FLASH數(shù)據(jù)的字設(shè)置/OE為1編程 A加載命令0001B加載地址的低位字節(jié)$00~$3F 加載數(shù)據(jù)的低位字節(jié)$00~$FF 讀 A加載命令0000B加載地址的低位字節(jié)設(shè)置/OE和BS為0此時可以從DATA總 數(shù)據(jù)的低位字設(shè)置/OE為1編程熔斷位 A加載命令0100 加載數(shù)據(jù)的低位字節(jié)Bitn 代表要編 代表要擦Bit5=SPIENBit0 Bit7-6,4-1 1這些位是保留給/WR施加一個tWLWH_PFB的負脈沖此命令在RDY/BSY引腳沒有編程鎖定位 A加載命令0010 加載數(shù)據(jù)的低位字節(jié)Bitn 代表要編Bit2=LockBit2Bit1=LockBit1Bit7-3,0 1這些位是保留 讀熔斷位和鎖定 A加載命令0000設(shè)置/OE為0BS為1此時可以從DATA總線數(shù)Bit7=LockBit1Bit6=LockBit2Bit5=SPIENBit0=FSTRT設(shè)置/OE為1讀廠標(biāo) A加載命令0000C加載數(shù)據(jù)的低位字節(jié)$00~$02設(shè)置/OE為0BS為0 設(shè)置/OE為1并行編程特性圖 表 并行編程特性TA= VCC=5VVAData&ControlSetupbeforeXTAL1XTAL1Lowto/WRXTAL1Lowto/OE/WRPulseWidthLowforChip5B/WRPulseWidthLowforProgrammingFuse注1在擦除時使用tWLWH_CE而在編程鎖定位是使用2tWLWHtWLRH長則看不見RDY/BSY脈串當(dāng)/RESET拉到地時FLASH和EEPROM可以利用SPI總線進行串 SCKMOSI和 /RESET拉低后在進行編程/擦除之前首先要執(zhí)行編程使能指圖 EEPROM由于其本身有自動擦除功能和自定時功能因此更新時無需擦除擦除指令將使FLASH和EEPROM的內(nèi)容全部變?yōu)?FFFLASH和EEPROM的地址是分離的FLASH的范圍是 EEPROM的范圍XTAL1引腳輸入或是將晶振接到XTAL1XTAL2SCK脈沖的最小高低電低2XTAL1時鐘高2XTAL1串行編程算法進行串行編程時數(shù)據(jù)在SCKAT90S2313SCK的下降沿輸出至少等待 然后在MOSIPB5串行輸入編程使能指3個字節(jié)的時候器件會響應(yīng)第二個字節(jié)$53不論響應(yīng)正確與否4字節(jié)指令必須發(fā)完如果響應(yīng)不是$53SCK32次都沒如果此時執(zhí)行了擦除指令則須等待tWD_ERASE 然后在/RESET上施加正脈沖回到第FLASHEEPROMtWD_PROG的時間對于擦除過的器件數(shù)據(jù)$FF就用不著再寫了任意一個內(nèi)存地址都可以用讀指令在MISOPB6讀編程結(jié)束后可以把/RESET拉高進入正常工作模式下電過程如果需要的將XTAL1拉低如果沒有用外部晶振或者用的是內(nèi)部RC振蕩器把/RESET拉高EEPROM數(shù)據(jù)檢測EEPROM時如果內(nèi)部的自擦除過程沒有結(jié)束讀正在寫的地址會得到P1自擦除過程結(jié)束后器件則返回P2P1和P2的定義見表27當(dāng)寫過程結(jié)束后的數(shù)據(jù)則為寫入P1P2就不可以用這種方法了此時應(yīng)當(dāng)在編程新數(shù)據(jù)之前至少等待tWD_PROG的時間如果在編程EEPROM之前已經(jīng)進行過擦除則數(shù)據(jù)$FF就可以不用再編程了表 型FLASH數(shù)據(jù)檢測寫FLASH時如果內(nèi)部寫過程沒有結(jié)束則正在寫的地址時會得到返回值$7F否則結(jié)果為寫入的數(shù)據(jù)但是對于數(shù)據(jù) 間如果在編程FLASH之前已經(jīng)進行過擦除則數(shù)據(jù)$FF就可以不用再編程圖 表 指指令格式操字節(jié)字節(jié)字節(jié)字節(jié)10100101xxxxxxxx1010100xxxxxxxxxFLASH00100000oooo從字地址a:b高或低字節(jié)o01000000iiii寫H高或低字101000000bbboooo從地址 數(shù)據(jù)11000000iiii1010111xxxxxxxxx0011xxxxxxxxoooo從地址b讀廠標(biāo) a=地址高b=地址H0低地址1o=輸出數(shù)i=輸入數(shù)x=任1=Lock2=Lock注意廠標(biāo)不能在鎖定模式3串行編程電特性55表30串行編程電特性TA=- 到 VCC=2.7V–符參最小值典型值最大值單1/振蕩頻率VCC2.7V–04振蕩周期VCC2.7V–1/振蕩頻率VCC=4.0V08振蕩周期VCC=4.0VSCK2SCKMOSISetuptoSCKMOSIHoldafterSCK21符22符直流特性TA=- 到 VCC=2.7V–符參條最小值典型值最大值單-0.3VCCV-0.1V0.6VCCVCCV0.7VCCVCCV0.85VCCVCCV3BDIOL=20mAVCC=V3DIOLVCC=4BDIOH=20mAIOHVCC=5VVCC=V流I/OVCC=pinA流I/OVCC=pin阻kI/Ok工作狀態(tài)VCC3V閑置狀態(tài)VCC3VWDTVCC=9AVCC=AVCC=流VCC=5VVIN=VCC-VCC=注1最大值代表保證可02最小值代表保證可1所有管腳的IOL之和過D0–D5和ZTAL2的IOL之和過100mAB0–B7和D6的IOL之和過100mA所有管腳的IOH之和過D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論