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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ATmegal62的特點(diǎn)及其在多種系統(tǒng)中的應(yīng)用

          ATmegal62的特點(diǎn)及其在多種系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2008-02-19 來源:網(wǎng)絡(luò) 收藏
          摘要:主要介紹了,與其它AVR系列芯片進(jìn)行了比較,研究了它與ATmegal61的兼容性。開發(fā)了基于的鍵盤-液晶顯示器、無位置傳感器兩相直流無刷電機(jī)的控制以及基于異步串行通訊的數(shù)據(jù)采集發(fā)送等3個(gè)工程
          關(guān)鍵詞:;兼容性;液晶顯示器;無刷直流電機(jī);異步串行通訊接口


          1 引言
          ATmegal62是ATMEL公司推出的一款基于AVR RISC的低功耗CMOS的8位單片機(jī)。AT-megal62通過在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令,可以達(dá)到接近1 MIPS/MHz的性能,從而使設(shè)計(jì)人員可以在功耗和執(zhí)行速度之間取得平衡。AVR核將32個(gè)通用工作寄存器和豐富的指令集連接在一起。所有的工作寄存器都與ALU算術(shù)邏輯單元直接相連,允許在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行單條指令,同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)提高了代碼效率,使AVR得到了比普通CISC單片機(jī)高將近10倍的性能。本文采用ATmegal62開發(fā)了鍵盤-液晶顯示器、無位置傳感器兩相直流無刷電機(jī)和異步串行通訊口實(shí)現(xiàn)的數(shù)據(jù)采集發(fā)送三個(gè)。實(shí)驗(yàn)證明,采用ATmegal62開發(fā)的這些系統(tǒng)性能可靠,成本較低,軟件設(shè)計(jì)靈活,硬件接口功能豐富,為今后系統(tǒng)升級(jí)創(chuàng)造了良好條件。

          2 ATmegal62的結(jié)構(gòu)及
          ATmegal62具有35個(gè)可編程的I/O口線,有40引腳PDIP、44引腳TQFP及44引腳MLF等封裝。4個(gè)8位雙向I/O 口 A、B、C、D,一個(gè)帶內(nèi)部上拉電阻的3位雙向I/O E口。
          每個(gè)端口都有對(duì)應(yīng)的3個(gè)I/O端口寄存器,分別是數(shù)據(jù)寄存器PORTx、方向寄存器器DDRx和輸入引腳寄存器PINx。當(dāng)DDxn寫入0時(shí),對(duì)應(yīng)的Pxn配置為輸入引腳,置PORTxn為1時(shí),配置該引腳的內(nèi)部上拉電阻有效。當(dāng)DDxn為1時(shí),對(duì)應(yīng)的Pxn配置為輸出引腳,POPTxn中的數(shù)據(jù)為外部引腳的輸出電平,即為1,端口引腳被強(qiáng)制驅(qū)動(dòng)為高,輸出高電平(輸出電流);清零PORTxn,端口引腳被強(qiáng)制拉低,輸出低電平(吸入電流)。在復(fù)位過程中,即使在系統(tǒng)時(shí)鐘還未啟振的情況下,端口為三態(tài)口。還可以作為地址/數(shù)據(jù)復(fù)用口,提供ATmegal62的許多特殊接口功能。C口提供JTAG接口的功能。在允許JTAG接口狀態(tài)下,引腳PC7(TDI)、PC5(TMS)和PC4(TCK)的內(nèi)部上拉電阻總是處于有效方式(包括復(fù)位時(shí))。
          ATmegal62具有以下:16 KB且同時(shí)具有讀寫能力的可在線編程Flash;512B EEPROM;1 KBSRAM存儲(chǔ)器;35個(gè)通用I/O口;1個(gè)外部存儲(chǔ)器接口;32個(gè)通用工作寄存器;1個(gè)具有邊界掃描功能的JTAG接口;支持在線編譯、編程以及仿真調(diào)試;支持對(duì)Flash、EEPROM、芯片熔絲位和保密鎖定位的編程;4個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器,2個(gè)具有比較模式的帶預(yù)分頻器的8位定時(shí)器/計(jì)數(shù)器,2個(gè)帶預(yù)分頻器,具有比較、捕捉和捕獲模式的16位定時(shí)器/計(jì)數(shù)器,具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器;6個(gè)PWM通道;內(nèi)外中斷源;上電復(fù)位和可編程的電壓檢測電路;內(nèi)部可校準(zhǔn)的RC振蕩器;2個(gè)可編程的UART接口;具有內(nèi)部時(shí)鐘的可編程看門狗定時(shí)器;SPI串行接口;BOOT區(qū)具有獨(dú)立的加密位,可通過片內(nèi)的引導(dǎo)程序?qū)崿F(xiàn)在系統(tǒng)編程,寫操作時(shí)真正可讀;全靜態(tài)操作;片內(nèi)帶有執(zhí)行時(shí)間為2個(gè)時(shí)鐘周期的硬件乘法器;5種可通過軟件選擇的節(jié)電模式。
          ATmegal62采用了ATMEL公司的高密度非易失性內(nèi)存技術(shù),片內(nèi)Flash可以通過SPI接口+通編程器,或通過JTAG接口,或使用自引導(dǎo)BOOT程序進(jìn)行編程和自編程。利用自引導(dǎo)BOOT程序,可以使器件在工作過程中通過任一硬件串行通訊接口下載程序,并寫入到Flash的程序區(qū)中(IAP)。在更新Flash的應(yīng)用程序區(qū)代碼時(shí),處在Flash的BOOT區(qū)中的自引導(dǎo)程序?qū)⒗^續(xù)執(zhí)行,實(shí)現(xiàn)了同時(shí)讀寫的功能。由于將增強(qiáng)的RISC 8位CPU與在系統(tǒng)編程和在應(yīng)用編程的Flash存儲(chǔ)器集成在一個(gè)芯片內(nèi),ATmegal62成為功能強(qiáng)大的單片機(jī),為多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。

          ATmegal62是AVR系列產(chǎn)品中配置比較高的單片機(jī),是一種很復(fù)雜的微控制器,它的I/O地址取代了保留在AVR指令集中的64個(gè)I/O地址。為確保向后兼容ATmegal61,ATmegal62上所有的I/O的位置與ATmegal61相同。很多附加的I/O地址被加到一個(gè)$60$FF的擴(kuò)展外部I/O空間中。這些地址只能用LD/LDS/LDD和ST/STS/STD指令訪問,而不能用IN和OUT指令。對(duì)于ATmegal61來說,存在內(nèi)部RAM空間的重定位的問題。同樣,如果代碼使用絕對(duì)地址,那么增加的中斷向量也是問題。要解決這些問題,可以通過編程熔絲M161C來選擇AT-megal61的兼容模式。在這一模式下,ATmegal62和ATmegal61之間則不存在這些差別。
          (1)地址空間Ox0060-0x00FF用來擴(kuò)展外部I/0,而不是內(nèi)部SRAM;
          (2)地址空間0x0100―0x04FF用作內(nèi)部SRAM,因而外部存儲(chǔ)器從地址0x500開始(ATmegal61的外部存儲(chǔ)器從地址0x460開始);
          (3)UART有一個(gè)輸入緩沖,允許在數(shù)據(jù)溢出標(biāo)志(DOR)置l前接收多一個(gè)字節(jié)的數(shù)據(jù);
          (4)去除擴(kuò)展中斷向量。
          ATmegal62與ATmegal61的引腳完全兼容,可以替代ATmegal61。但是這兩種器件的地址熔絲位和電特性不同。在ATmegal61的兼容模式下,AT-megal62不具備如下特性:
          (1)USART的FIFO操作;
          (2)定時(shí)器/計(jì)數(shù)器3;
          (3)訪問系統(tǒng)時(shí)鐘預(yù)分頻器;
          (4)Port A和Port C的引腳中斷;
          (5)通過軟件改變WDT預(yù)分頻器設(shè)置時(shí)要遵循特定時(shí)序;
          (6)M161C熔絲對(duì)中斷向量重新映射,使之與ATmegal61相同。

          4 ATmegal62的工程應(yīng)用
          4.1 ATmegal62與鍵盤及液晶顯示器的設(shè)計(jì)
          鍵盤是各種CPU不可缺少的輸入工具,通過它可以輸入程序和數(shù)據(jù),從而實(shí)現(xiàn)人機(jī)對(duì)話。液晶顯示器(LCD)以其功耗低、體積小、顯示內(nèi)容豐富、超薄輕巧的優(yōu)點(diǎn),得到越來越廣泛的應(yīng)用。DM12864是一種圖形點(diǎn)陣液晶顯示器,它采用動(dòng)態(tài)驅(qū)動(dòng)原理由行驅(qū)動(dòng)控制器和列驅(qū)動(dòng)器兩部分組成了128(列)64(行)的全點(diǎn)陣液晶顯示,可顯示圖形和漢字。它能直接與單片機(jī)連接,具有專用指令,可方便地實(shí)現(xiàn)畫面卷動(dòng)等功能。圖1為采用ATmegal62開發(fā)的鍵盤-液晶顯示應(yīng)用系統(tǒng)。鍵盤的接鍵排成3x4的矩陣形式,I/O口線PBl-PB3為輸入(設(shè)置為O),作為鍵盤的列掃描線;PB4-PB7為輸出(設(shè)置為1),作為鍵盤的行掃描線,并帶有上拉電阻。當(dāng)判斷有鍵按下時(shí),延時(shí)去除鍵抖動(dòng),再次判斷閉合鍵的位置,若確實(shí)有鍵按下,計(jì)算鍵值并返回。液晶顯示器的工作電壓為+5V10%;PC2作為寄存器數(shù)據(jù)/指令選擇信號(hào)D/I,當(dāng)D/I為1時(shí),顯示數(shù)據(jù),D/I為0時(shí),指令代碼;PC3作為讀/寫操作選擇信號(hào)R/W,R/W為l時(shí),讀數(shù)據(jù)或指令,R/W為0時(shí),寫數(shù)據(jù)或指令;PC0、PCI分別作為液晶的左右半屏片選信號(hào)CSl、CS2;復(fù)位信號(hào)RST與PEl連接,高電平復(fù)位DMl2864;PE0作為液晶的使能信號(hào)EN;PA作為并行數(shù)據(jù)總線DB,用于二者之間傳送數(shù)據(jù)。在讀/寫顯示數(shù)據(jù)到LCD之前,要對(duì)LCD進(jìn)行忙標(biāo)志位判別、顯示開關(guān)設(shè)置、顯示起始行設(shè)置、頁面地址設(shè)置和列地址設(shè)置。

          在ATmegal62開發(fā)的鍵盤-液晶顯示系統(tǒng)中:
          (1)由于ATmegal62 C口的PC4-PC7具有JTAG接口功能,因此不能再作為I/O輸出口,除非將熔絲位JTAGEN設(shè)置為l才可以作為I/O輸出口用;
          (2)在選擇系統(tǒng)時(shí)鐘源時(shí),要正確配置熔絲位,熔絲位決定著系統(tǒng)采用時(shí)鐘源的方式,不能通過普通的編程在MCU運(yùn)行時(shí)更改,在調(diào)試之前應(yīng)根據(jù)所選時(shí)鐘源形式和喚醒方式,在仿真系統(tǒng)中正確配置熔絲位,使時(shí)鐘源與熔絲位匹配。
          (3)在調(diào)試過程中,要求液晶LCD的驅(qū)動(dòng)負(fù)電壓VDD-Vo=13 V,否則將無法正常顯示。
          4.2 ATmegal62控制的兩相直流無刷電機(jī)
          兩相直流無刷電機(jī)是一種結(jié)合了直流電機(jī)和交流電機(jī)優(yōu)點(diǎn)的改進(jìn)型電機(jī),采用無位置傳感器兩相直流無刷電動(dòng)機(jī)控制技術(shù),可充分利用直流無刷電動(dòng)機(jī)調(diào)速范圍寬、無位置傳感器和不易損壞的優(yōu)點(diǎn),實(shí)現(xiàn)電動(dòng)機(jī)的無級(jí)變速,噪聲低,運(yùn)行效率、控制精度和可靠性高。圖2為采用ATmegal62控制兩相直流無刷電機(jī)的應(yīng)用實(shí)例。圖中ADCl測量電機(jī)的給定速度,在大多數(shù)裝置中,電機(jī)的速度是根據(jù)外部給定值調(diào)整的,給定值是一個(gè)模擬信號(hào),因此需用ADC通道測量外部速度,PWM輸出要不斷地改變以減小電機(jī)的速度和外部給定值的差值。由于用內(nèi)部的ADC和PWM,不需要霍爾傳感器測量電機(jī)的轉(zhuǎn)速。ATmegal62的ADC(模/數(shù)轉(zhuǎn)換器)通道測量感應(yīng)電動(dòng)勢,控制電機(jī)的換向,流過無源定子線圈的感應(yīng)電動(dòng)勢決定電機(jī)的方向。通過改變PWM寄存器的值來控制PWM的占空比,從而形成脈寬隨著調(diào)制波變化而變化的PWM信號(hào)。用PWM信號(hào)控制功率開關(guān)的通斷來給電機(jī)電樞繞組供電,相電流的大小和傳送到電機(jī)電樞繞組的能量由功率開關(guān)的通斷時(shí)間決定,同時(shí),相電流和傳送到電機(jī)的能量又決定著電機(jī)的轉(zhuǎn)矩和轉(zhuǎn)速,從而實(shí)現(xiàn)對(duì)轉(zhuǎn)速的閉環(huán)控制。

          在ATmegal62控制無位置傳感器兩相直流無刷電機(jī)時(shí):
          (1)PWM控制電機(jī)的速度時(shí),PWM的基頻必須大于20 kHz,驅(qū)動(dòng)晶體管的耗散功率要根據(jù)PWM的開關(guān)頻率決定;
          (2)在控制有源線圈的電壓時(shí),PWM的基頻要接近于20 kHz;
          (3)用ADC測量感應(yīng)電壓時(shí),ADC的時(shí)鐘選擇應(yīng)確保ATmegal62有足夠的時(shí)間處理中斷。
          4.3 異步串行通訊口數(shù)據(jù)的采集和發(fā)送
          ATmegal62帶有兩個(gè)全雙工通用同步/異步串口,是區(qū)別于AVR系列器件的一個(gè)顯著特點(diǎn),用戶可以以低成本更加靈活地進(jìn)行設(shè)備間的數(shù)據(jù)通訊。ATmegal62的USARTn收發(fā)模塊分為三大部分:時(shí)鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器。有三個(gè)完全獨(dú)立的中斷:TX發(fā)送完成,TX發(fā)送寄存器空和RX接收完成。最高波特率可達(dá)115 200 b/s,而且有專用的高精度波特率發(fā)生器,不占用定時(shí)器/計(jì)數(shù)器。圖3是用ATmegal62的異步串行通訊口實(shí)現(xiàn)數(shù)據(jù)的采集和發(fā)送的應(yīng)用實(shí)例,電機(jī)驅(qū)動(dòng)器件SMD-401通過ATmegal62 PC口輸出的控制信號(hào)來控制步進(jìn)電機(jī)的轉(zhuǎn)速和方向,步進(jìn)電機(jī)帶動(dòng)智能傳感器旋轉(zhuǎn),經(jīng)ATmegal62串口O的發(fā)送端輸出觸發(fā)信號(hào)觸發(fā)傳感器采集數(shù)據(jù),采集到的數(shù)據(jù)通過MAX232送到ATmegal62串口O的接收端,數(shù)據(jù)在ATmegal62中經(jīng)過必要的處理后由串口l經(jīng)過NAX488轉(zhuǎn)送到上位機(jī)。

          在ATmegal62實(shí)現(xiàn)異步串行通訊口數(shù)據(jù)的采集和發(fā)送時(shí),應(yīng)注意以下問題:
          (1)所選器件不同,ICCAVR產(chǎn)生的源代碼不一定匹配,應(yīng)根據(jù)實(shí)際情況檢查初始化程序;
          (2)ATmegal62的波特率寄存器UBRROH和USARTO的控制和狀態(tài)寄存器UCSROC共用同一個(gè)單元地址,如果不設(shè)定URSSEL0位,接收的波特率就會(huì)出錯(cuò);
          (3)確保發(fā)送與接收的波特率相同或在容許的誤差范圍內(nèi),發(fā)送與接收要有相同的數(shù)據(jù)格式。

          5 結(jié)束語
          本文介紹了ATmegal62的特點(diǎn)在實(shí)際工程中的應(yīng)用實(shí)例。ATmegal62具有AVR系列其他器件的大部分其他器件功能,又具有獨(dú)特技術(shù),配置全、功能強(qiáng)、可靠性高、速度高、抗干擾性好、功耗低、性價(jià)比高、硬件結(jié)構(gòu)簡單、軟件設(shè)計(jì)靈活、適用面廣、價(jià)格低廉,具有一定的實(shí)用價(jià)值,在實(shí)際開發(fā)中將會(huì)發(fā)揮越來越大的作用。

          霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


          霍爾傳感器相關(guān)文章:霍爾傳感器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();