ATmegal62的特點及其在多種系統(tǒng)中的應用
關鍵詞:ATmegal62;兼容性;液晶顯示器;無刷直流電機;異步串行通訊接口
1 引言
ATmegal62是ATMEL公司推出的一款基于AVR RISC的低功耗CMOS的8位單片機。AT-megal62通過在一個時鐘周期內(nèi)執(zhí)行一條指令,可以達到接近1 MIPS/MHz的性能,從而使設計人員可以在功耗和執(zhí)行速度之間取得平衡。AVR核將32個通用工作寄存器和豐富的指令集連接在一起。所有的工作寄存器都與ALU算術邏輯單元直接相連,允許在一個時鐘周期內(nèi)執(zhí)行單條指令,同時訪問兩個獨立的寄存器。這種結構提高了代碼效率,使AVR得到了比普通CISC單片機高將近10倍的性能。本文采用ATmegal62開發(fā)了鍵盤-液晶顯示器、無位置傳感器兩相直流無刷電機和異步串行通訊口實現(xiàn)的數(shù)據(jù)采集發(fā)送三個系統(tǒng)。實驗證明,采用ATmegal62開發(fā)的這些系統(tǒng)性能可靠,成本較低,軟件設計靈活,硬件接口功能豐富,為今后系統(tǒng)升級創(chuàng)造了良好條件。
2 ATmegal62的結構及特點
ATmegal62具有35個可編程的I/O口線,有40引腳PDIP、44引腳TQFP及44引腳MLF等多種封裝。4個8位雙向I/O 口 A、B、C、D,一個帶內(nèi)部上拉電阻的3位雙向I/O E口。
每個端口都有對應的3個I/O端口寄存器,分別是數(shù)據(jù)寄存器PORTx、方向寄存器器DDRx和輸入引腳寄存器PINx。當DDxn寫入0時,對應的Pxn配置為輸入引腳,置PORTxn為1時,配置該引腳的內(nèi)部上拉電阻有效。當DDxn為1時,對應的Pxn配置為輸出引腳,POPTxn中的數(shù)據(jù)為外部引腳的輸出電平,即為1,端口引腳被強制驅動為高,輸出高電平(輸出電流);清零PORTxn,端口引腳被強制拉低,輸出低電平(吸入電流)。在復位過程中,即使在系統(tǒng)時鐘還未啟振的情況下,端口為三態(tài)口。還可以作為地址/數(shù)據(jù)復用口,提供ATmegal62的許多特殊接口功能。C口提供JTAG接口的功能。在允許JTAG接口狀態(tài)下,引腳PC7(TDI)、PC5(TMS)和PC4(TCK)的內(nèi)部上拉電阻總是處于有效方式(包括復位時)。
ATmegal62具有以下特點:16 KB且同時具有讀寫能力的可在線編程Flash;512B EEPROM;1 KBSRAM存儲器;35個通用I/O口;1個外部存儲器接口;32個通用工作寄存器;1個具有邊界掃描功能的JTAG接口;支持在線編譯、編程以及仿真調試;支持對Flash、EEPROM、芯片熔絲位和保密鎖定位的編程;4個具有比較模式的靈活的定時器/計數(shù)器,2個具有比較模式的帶預分頻器的8位定時器/計數(shù)器,2個帶預分頻器,具有比較、捕捉和捕獲模式的16位定時器/計數(shù)器,具有獨立振蕩器的實時計數(shù)器;6個PWM通道;內(nèi)外中斷源;上電復位和可編程的電壓檢測電路;內(nèi)部可校準的RC振蕩器;2個可編程的UART接口;具有內(nèi)部時鐘的可編程看門狗定時器;SPI串行接口;BOOT區(qū)具有獨立的加密位,可通過片內(nèi)的引導程序實現(xiàn)在系統(tǒng)編程,寫操作時真正可讀;全靜態(tài)操作;片內(nèi)帶有執(zhí)行時間為2個時鐘周期的硬件乘法器;5種可通過軟件選擇的節(jié)電模式。
ATmegal62采用了ATMEL公司的高密度非易失性內(nèi)存技術,片內(nèi)Flash可以通過SPI接口+通編程器,或通過JTAG接口,或使用自引導BOOT程序進行編程和自編程。利用自引導BOOT程序,可以使器件在工作過程中通過任一硬件串行通訊接口下載應用程序,并寫入到Flash的應用程序區(qū)中(IAP)。在更新Flash的應用程序區(qū)代碼時,處在Flash的BOOT區(qū)中的自引導程序將繼續(xù)執(zhí)行,實現(xiàn)了同時讀寫的功能。由于將增強的RISC 8位CPU與在系統(tǒng)編程和在應用編程的Flash存儲器集成在一個芯片內(nèi),ATmegal62成為功能強大的單片機,為多嵌入式控制應用提供了靈活而低成本的解決方案。
ATmegal62是AVR系列產(chǎn)品中配置比較高的單片機,是一種很復雜的微控制器,它的I/O地址取代了保留在AVR指令集中的64個I/O地址。為確保向后兼容ATmegal61,ATmegal62上所有的I/O的位置與ATmegal61相同。很多附加的I/O地址被加到一個$60$FF的擴展外部I/O空間中。這些地址只能用LD/LDS/LDD和ST/STS/STD指令訪問,而不能用IN和OUT指令。對于ATmegal61來說,存在內(nèi)部RAM空間的重定位的問題。同樣,如果代碼使用絕對地址,那么增加的中斷向量也是問題。要解決這些問題,可以通過編程熔絲M161C來選擇AT-megal61的兼容模式。在這一模式下,ATmegal62和ATmegal61之間則不存在這些差別。
(1)地址空間Ox0060-0x00FF用來擴展外部I/0,而不是內(nèi)部SRAM;
(2)地址空間0x0100―0x04FF用作內(nèi)部SRAM,因而外部存儲器從地址0x500開始(ATmegal61的外部存儲器從地址0x460開始);
(3)UART有一個輸入緩沖,允許在數(shù)據(jù)溢出標志(DOR)置l前接收多一個字節(jié)的數(shù)據(jù);
(4)去除擴展中斷向量。
ATmegal62與ATmegal61的引腳完全兼容,可以替代ATmegal61。但是這兩種器件的地址熔絲位和電特性不同。在ATmegal61的兼容模式下,AT-megal62不具備如下特性:
(1)USART的FIFO操作;
(2)定時器/計數(shù)器3;
(3)訪問系統(tǒng)時鐘預分頻器;
(4)Port A和Port C的引腳中斷;
(5)通過軟件改變WDT預分頻器設置時要遵循特定時序;
(6)M161C熔絲對中斷向量重新映射,使之與ATmegal61相同。
4 ATmegal62的工程應用
4.1 ATmegal62與鍵盤及液晶顯示器的設計
鍵盤是各種CPU不可缺少的輸入工具,通過它可以輸入程序和數(shù)據(jù),從而實現(xiàn)人機對話。液晶顯示器(LCD)以其功耗低、體積小、顯示內(nèi)容豐富、超薄輕巧的優(yōu)點,得到越來越廣泛的應用。DM12864是一種圖形點陣液晶顯示器,它采用動態(tài)驅動原理由行驅動控制器和列驅動器兩部分組成了128(列)64(行)的全點陣液晶顯示,可顯示圖形和漢字。它能直接與單片機連接,具有專用指令,可方便地實現(xiàn)畫面卷動等功能。圖1為采用ATmegal62開發(fā)的鍵盤-液晶顯示應用系統(tǒng)。鍵盤的接鍵排成3x4的矩陣形式,I/O口線PBl-PB3為輸入(設置為O),作為鍵盤的列掃描線;PB4-PB7為輸出(設置為1),作為鍵盤的行掃描線,并帶有上拉電阻。當判斷有鍵按下時,延時去除鍵抖動,再次判斷閉合鍵的位置,若確實有鍵按下,計算鍵值并返回。液晶顯示器的工作電壓為+5V10%;PC2作為寄存器數(shù)據(jù)/指令選擇信號D/I,當D/I為1時,顯示數(shù)據(jù),D/I為0時,指令代碼;PC3作為讀/寫操作選擇信號R/W,R/W為l時,讀數(shù)據(jù)或指令,R/W為0時,寫數(shù)據(jù)或指令;PC0、PCI分別作為液晶的左右半屏片選信號CSl、CS2;復位信號RST與PEl連接,高電平復位DMl2864;PE0作為液晶的使能信號EN;PA作為并行數(shù)據(jù)總線DB,用于二者之間傳送數(shù)據(jù)。在讀/寫顯示數(shù)據(jù)到LCD之前,要對LCD進行忙標志位判別、顯示開關設置、顯示起始行設置、頁面地址設置和列地址設置。
在ATmegal62開發(fā)的鍵盤-液晶顯示系統(tǒng)中:
(1)由于ATmegal62 C口的PC4-PC7具有JTAG接口功能,因此不能再作為I/O輸出口,除非將熔絲位JTAGEN設置為l才可以作為I/O輸出口用;
(2)在選擇系統(tǒng)時鐘源時,要正確配置熔絲位,熔絲位決定著系統(tǒng)采用時鐘源的方式,不能通過普通的編程在MCU運行時更改,在調試之前應根據(jù)所選時鐘源形式和喚醒方式,在仿真系統(tǒng)中正確配置熔絲位,使時鐘源與熔絲位匹配。
(3)在調試過程中,要求液晶LCD的驅動負電壓VDD-Vo=13 V,否則將無法正常顯示。
4.2 ATmegal62控制的兩相直流無刷電機
兩相直流無刷電機是一種結合了直流電機和交流電機優(yōu)點的改進型電機,采用無位置傳感器兩相直流無刷電動機控制技術,可充分利用直流無刷電動機調速范圍寬、無位置傳感器和不易損壞的優(yōu)點,實現(xiàn)電動機的無級變速,噪聲低,運行效率、控制精度和可靠性高。圖2為采用ATmegal62控制兩相直流無刷電機的應用實例。圖中ADCl測量電機的給定速度,在大多數(shù)裝置中,電機的速度是根據(jù)外部給定值調整的,給定值是一個模擬信號,因此需用ADC通道測量外部速度,PWM輸出要不斷地改變以減小電機的速度和外部給定值的差值。由于用內(nèi)部的ADC和PWM,不需要霍爾傳感器測量電機的轉速。ATmegal62的ADC(模/數(shù)轉換器)通道測量感應電動勢,控制電機的換向,流過無源定子線圈的感應電動勢決定電機的方向。通過改變PWM寄存器的值來控制PWM的占空比,從而形成脈寬隨著調制波變化而變化的PWM信號。用PWM信號控制功率開關的通斷來給電機電樞繞組供電,相電流的大小和傳送到電機電樞繞組的能量由功率開關的通斷時間決定,同時,相電流和傳送到電機的能量又決定著電機的轉矩和轉速,從而實現(xiàn)對轉速的閉環(huán)控制。
在ATmegal62控制無位置傳感器兩相直流無刷電機時:
(1)PWM控制電機的速度時,PWM的基頻必須大于20 kHz,驅動晶體管的耗散功率要根據(jù)PWM的開關頻率決定;
(2)在控制有源線圈的電壓時,PWM的基頻要接近于20 kHz;
(3)用ADC測量感應電壓時,ADC的時鐘選擇應確保ATmegal62有足夠的時間處理中斷。
4.3 異步串行通訊口數(shù)據(jù)的采集和發(fā)送
ATmegal62帶有兩個全雙工通用同步/異步串口,是區(qū)別于AVR系列器件的一個顯著特點,用戶可以以低成本更加靈活地進行設備間的數(shù)據(jù)通訊。ATmegal62的USARTn收發(fā)模塊分為三大部分:時鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器。有三個完全獨立的中斷:TX發(fā)送完成,TX發(fā)送寄存器空和RX接收完成。最高波特率可達115 200 b/s,而且有專用的高精度波特率發(fā)生器,不占用定時器/計數(shù)器。圖3是用ATmegal62的異步串行通訊口實現(xiàn)數(shù)據(jù)的采集和發(fā)送的應用實例,電機驅動器件SMD-401通過ATmegal62 PC口輸出的控制信號來控制步進電機的轉速和方向,步進電機帶動智能傳感器旋轉,經(jīng)ATmegal62串口O的發(fā)送端輸出觸發(fā)信號觸發(fā)傳感器采集數(shù)據(jù),采集到的數(shù)據(jù)通過MAX232送到ATmegal62串口O的接收端,數(shù)據(jù)在ATmegal62中經(jīng)過必要的處理后由串口l經(jīng)過NAX488轉送到上位機。
在ATmegal62實現(xiàn)異步串行通訊口數(shù)據(jù)的采集和發(fā)送時,應注意以下問題:
(1)所選器件不同,ICCAVR產(chǎn)生的源代碼不一定匹配,應根據(jù)實際情況檢查初始化程序;
(2)ATmegal62的波特率寄存器UBRROH和USARTO的控制和狀態(tài)寄存器UCSROC共用同一個單元地址,如果不設定URSSEL0位,接收的波特率就會出錯;
(3)確保發(fā)送與接收的波特率相同或在容許的誤差范圍內(nèi),發(fā)送與接收要有相同的數(shù)據(jù)格式。
5 結束語
本文介紹了ATmegal62的特點及其在實際工程中的應用實例。ATmegal62具有AVR系列其他器件的大部分其他器件功能,又具有獨特技術,配置全、功能強、可靠性高、速度高、抗干擾性好、功耗低、性價比高、硬件結構簡單、軟件設計靈活、適用面廣、價格低廉,具有一定的實用價值,在實際開發(fā)中將會發(fā)揮越來越大的作用。
霍爾傳感器相關文章:霍爾傳感器工作原理
霍爾傳感器相關文章:霍爾傳感器原理
評論