<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用ATmega8單片機設計串行編程器

          用ATmega8單片機設計串行編程器

          作者: 時間:2012-02-13 來源:網(wǎng)絡 收藏

          通常進行實驗和開發(fā),是必不可少的。仿真、調試完的程序要借助寫入的存儲器中,隨著技術的發(fā)展出現(xiàn)了MTP(可多次編程)存儲器技術和ISP(在系統(tǒng)可編程)技術,這樣就可以省去昂貴的仿真器,只要通過計算機接口和一條下載線就可直接在目標芯片上編程。就是一種具有MTP與ISP功能的單片機,他也是AVR單片機中價格性能比最高的單片機,因此研究他的編程特性對利用他的上述功能來開發(fā)應用單片機有很高的實用價值。

          本文引用地址:http://www.ex-cimer.com/article/172124.htm

          1 的體系結構與主要性能特點

          是ATMEL公司在2002年推出的一款新型的AVR高檔單片機,他的芯片內部集成了較大容量的存儲器和豐富強大的硬件接口電路,具備 AVR高檔單片機MEGE系列的全部性能和特點。但由于采用了小引腳封裝(為 DIP28和TQFP/MLF32),所以價格僅和低檔單片機相當,再加上AVR單片機的系統(tǒng)內在可編程特性,使得無需購買昂貴的仿真器,只需要一條具有功能的下載線就可以進行單片機嵌入式系統(tǒng)的和開發(fā)。

          ATmega8是一款采用低功耗CMOS工藝生產(chǎn)的基于AVR RISC(精簡指令集)結構的8 b單片機。AVR單片機的核心是將32個工作寄存器和豐富的指令集連接在一起,所有的工作寄存器都與ALU(算術邏輯單元)直接相連,實現(xiàn)了在一個時鐘周期內執(zhí)行的一條指令同時訪問(讀寫)2個獨立寄存器的操作。這種結構提高了代碼效率,使得大部分指令的執(zhí)行時間僅為一個時鐘周期。因此,ATmega8可以達到將近1 MIPS/MHz的性能,運行速度比普通的單片機高出10倍。

          ATmega8的主要性能特點如下:

          (1)高性能、低功耗的8 b AVR微控制器,先進的RISC精簡指令集結構,130條功能強大的指令,大多數(shù)為單周期指令,32個8 b的通用工作寄存器,工作在16 MHz時具有16 MIPS的性能。

          (2)片內集成了較大容量的非易失性程序和數(shù)據(jù)存儲器

          8 kB的Flash程序存儲器,可擦寫次數(shù)大于10 000次;512 B的E2RROM,擦寫次數(shù)至少100 000次;支持可在線編程(ISP)和可應用自編程(IAP);可編程的程序加密位。

          (3)豐富強大的外部接口性能

          3個PWM通道,可實現(xiàn)任意16 b以內的、相位和頻率可調的PWM脈寬調制輸出;6通道A/D轉換;一個I2C的串行接口,一個可編程的USART接口;一個支持主/從、收/發(fā)的SPI同步串行接口;2個帶預分頻的8 b定時/計數(shù)器,1個帶預分頻的16 b定時/計數(shù)

          (4)特殊的微控制器性能

          可控制的上電復位延時電路和可編程的欠電壓檢測電路;內部和外部共18個中斷源;5種休眠模式(空閑,ADC噪聲抑制,省電,掉電,待命)。

          2 串行編程器的

          從上面的描述我們就對ATmega8有了一個總體的認識,ATmega8的在線可編程功能為單片機的和開發(fā)提供了極大的方便,工程人員可以編譯完程序后直接通過編程器將程序寫入Flash存儲器(而無需昂貴的仿真器)。并且可以自己來設計編程器,下面就以ATmega8作為處理芯片來設計一個串行編程器,也通過這個應用的例子來介紹一下ATmega8的具體應用。

          (1)硬件電路,串行編程器的電路原理圖如圖1所示。

          從PC機的串行口通過RS232引出3條線:RXD,TXD,GND用于PC機與ATmega8的通信。最右端的5條線分別與要寫入程序的芯片相連。

          8.jpg

          (2)串行編程器的工作原理

          ATmega8的同步串行接口SPI允許在幾個AVR單片機之間,以與SPI接口協(xié)議兼容的方式進行高速的同步數(shù)據(jù)傳輸。因此可以把串行編程器的處理芯片設計為主機,目標芯片就作為從機,這樣就可以實現(xiàn)2個單片機的數(shù)據(jù)傳輸,從而實現(xiàn)程序的燒寫過程。數(shù)據(jù)由主機發(fā)送從機接收。向主機的SPI數(shù)據(jù)寄存器 SPDR裝入待發(fā)送數(shù)據(jù)的寫操作,自動啟動SPI時鐘發(fā)生器,于是該數(shù)據(jù)便在時鐘脈沖的控制下開始逐位左移或右移。若設定最高位MSB先傳送,主機的 MSB將自MOSI(PB3)引腳輸出,經(jīng)從機的MOSI引腳進入其8 b移位寄存器中,占據(jù)最低位LSB的位置。同時,從機的MSB由MISO(PB4)引腳移出,通過主機的MISO引腳進入到主機移位寄存器中,作為他的 LSB位。這樣8個時鐘脈沖后,主機SPI移位寄存器中的內容就完全送給了從機。圖2為主從機通信流程圖?! ?/p>

          9.jpg

          (3)具體的工作過程

          把圖2的ATmega8設為主機,PB3(MOSI),PB4(MISO),PB6(SCK),PB1管腳用于控制對目標芯片的寫入。PB1引腳控制單片機的Reset,只有當 Reset被拉為低時單片機才進入串行編程模式。從機的所有I/O引腳都處于輸入狀態(tài)且上拉電阻被禁止。PB6(SCK)引腳用于提供串行編程的時鐘,他在上電期間必須為低電平,這樣才能保證主機芯片和從機芯片的87時鐘同步,因此上電期間給Reset一個正脈沖(至少2個 XTAL1時鐘周期)以保證SCK的低電平,這可以通過軟件來實現(xiàn)。PB3(MOSI)引腳用于將程序送入從機中。數(shù)據(jù)在SCK的上升沿被輸入,從機的 Reset被拉低后,總是將他的MOSI設為上拉禁止的輸入狀態(tài),用于從主機接收數(shù)據(jù)。當從從機中讀取數(shù)據(jù)時,數(shù)據(jù)在SCK的下降沿輸出。設計硬件時要保證從機的Reset,SCK,MOSI,MISO這4根線能被編程器自由地置高置低,否則不可能進行在片編程。具體的命令字格格式可參照ATmega8 manual中所給出的串行編程命令表。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();