下面就總結(jié)一下AVR單片機(jī)ATmega16的主要特點(diǎn):
(注: 括號(hào)內(nèi)有紅色 *x*符號(hào)的表示文章下方會(huì)有解釋/擴(kuò)展)
1) 采用 RISC 結(jié)構(gòu)的AVR內(nèi)核單片機(jī)。
131 條機(jī)器指令, 大多數(shù)指令為單個(gè)系統(tǒng)時(shí)鐘周期執(zhí)行的指令;
32 個(gè) 8 位通用工作寄存器;
全靜態(tài)工作方式(Fully Static OperaTIon)。 (*A*)
工作在 16 MHz 時(shí)具有 16 MIPS 的性能。(注:ATmega16L 系列最大工作頻率為 8 MHz);
內(nèi)部配備有 2 個(gè)時(shí)鐘周期的硬件乘法器。
2)片內(nèi)自帶大容量, 非易失的程序和數(shù)據(jù)存儲(chǔ)器 (*B*)
16KB 在線可編程(ISP,In-System Programming)Flash 程序存儲(chǔ)器(擦寫次數(shù)》10 000), 采用 Boot load 技術(shù)支持IAP(In-ApplicaTIon Programming)功能。
1KB片內(nèi) SRAM 數(shù)據(jù)存儲(chǔ)器, 可以實(shí)現(xiàn) 3 級(jí)鎖定的程序加密;
512 字節(jié)片內(nèi) ISP 的EEPROM 數(shù)據(jù)存儲(chǔ)器(擦鞋次數(shù)》100 000);
3) 片內(nèi)含JTAG接口
支持符合 JTAG 標(biāo)準(zhǔn)(與IEEE 1149.1 標(biāo)準(zhǔn)兼容)的邊界掃描功能, 用于芯片檢測;
支持?jǐn)U展的片內(nèi)在線調(diào)試功能;
可通過 JTAG 接口對片內(nèi) Flash, EEPROM, 熔絲位和加密鎖定位實(shí)現(xiàn)下載編程; (*C*)
4) 外圍接口
2 個(gè)帶有分別獨(dú)立和可設(shè)置預(yù)分頻的 8 位定時(shí)/計(jì)數(shù)器;
1 個(gè)帶有可設(shè)置預(yù)分頻器, 具有比較, 捕捉功能的 16 位定時(shí)/計(jì)數(shù)器;
片內(nèi)含獨(dú)立振蕩器的實(shí)時(shí)時(shí)鐘 RTC;
4 路 PWM 通道;
8 路 10 位 ADC;
面向字節(jié)的兩線接口 TWI(Two—Wire Serial Interface, 完全兼容 IIC 總線硬件接口);
1 個(gè)可編程, 增強(qiáng)型全雙工, 支持同步/異步通信的串行接口 USART;
1 個(gè)可工作于主機(jī)/從機(jī)模式的 SPI (Serial Peripheral Interface Bus)串行接口(支持 ISP 程序下載);
片內(nèi)集成模擬比較器; (*D*)
片內(nèi)含有可編程的具有獨(dú)立片內(nèi)震蕩期的看門狗定時(shí)器 WDT;
5)其他特點(diǎn)
內(nèi)含上電復(fù)位電路以及可編程的掉電檢測復(fù)位電路 BOD(Brown-out DetecTIon);
片內(nèi)含有 1/2/4/8 MHz 經(jīng)過標(biāo)定的, 可校正的 RC 震蕩器, 可作為系統(tǒng)時(shí)鐘使用;
21 種內(nèi)外部中斷源; (*E*)
6 種休眠模式(空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式、Standby 模式以及
擴(kuò)展的Standby 模式), 支持節(jié)電方式工作;
32 個(gè)可編程 I/O 口。 封裝方式有:40腳 PDIP 封裝, 44 腳 TQFP 封裝, 與44 腳的 MLF 封裝;(*F*)
工作電壓: ATmega16L 為 2.7~5.5V, ATmega16 為 4.5~5.5V;
運(yùn)行速度: ATmega16L為 0~8MHz, ATmega16為0~16MHz;
功耗指標(biāo): ATmega16L 工作在 1MHz, 3V, 25攝氏度時(shí):典型功耗為 1.1mA,空閑模式為 0.35mA,掉電模式為 《 1uA;
注釋A:
全靜態(tài)工作方式就是時(shí)鐘停止振蕩(而且手冊中也說了工作頻率是 0~8/16MHz), 但是寄存器和數(shù)據(jù)存儲(chǔ)器(ATmega16采用的是 SRAM 存儲(chǔ)器, 所以不必進(jìn)行定時(shí)刷新)的數(shù)據(jù)不會(huì)丟失。 前提是你電源得存在, 不然就關(guān)機(jī)了不是?
注釋B:
Atmega16 單片機(jī)的 Flash 程序存儲(chǔ)器空間可以分為兩段: 引導(dǎo)程序段(Boot Program SecTIon)和應(yīng)用程序段(Application Program section)。 兩段的讀/寫保護(hù)可以分別通過設(shè)置對應(yīng)的鎖定位(Lock Bits)來實(shí)現(xiàn)。 在引導(dǎo)程序段內(nèi)駐留的引導(dǎo)程序中, 可以使用 SPM 指令實(shí)現(xiàn)對應(yīng)用程序段的寫操作(即實(shí)現(xiàn) IAP 功能, 使系統(tǒng)能自懂更新系統(tǒng)程序)。 在 AVR 中, 所有的存儲(chǔ)空間都是線型的。 SRAM 可以通過 6 種不同的尋址方式進(jìn)行訪問。(分別是: 數(shù)據(jù)存儲(chǔ)器空間直接/間接尋址, 帶后增/預(yù)減量的數(shù)據(jù)存儲(chǔ)器空間的寄存器間接尋址, 帶位移的數(shù)據(jù)存儲(chǔ)器空間的寄存器間接尋址, 數(shù)據(jù)存儲(chǔ)器空間堆棧寄存器 SP 間接尋址)。
注釋C:
熔絲是一個(gè)保護(hù)知識(shí)產(chǎn)權(quán)的設(shè)計(jì)。就是在特定的引腳上加上電壓,足夠的電流,就可以燒斷里邊的這根熔絲(AVR的熔絲可以多次編程, 并不是 OTP 熔絲),燒斷以后,片里的程序就不可以被讀出來也不能改寫了,只能用來運(yùn)行。 通過設(shè)定和配置 AVR 單片機(jī)的熔絲位, 我們就可以使 AVR 具有不同特性的功能組合, 更加適合實(shí)際的使用和學(xué)習(xí)。 出廠時(shí)不同熔絲位的設(shè)定值是不同的, 一定要注意區(qū)分, 熔絲位的配置在 AVR 單片機(jī)中非常重要, 配置不好可能會(huì)鎖死單片機(jī)或者不能正常工作; 配置之前一定要對照datasheet 手冊仔細(xì)核對準(zhǔn); 一定要發(fā)篇博客總結(jié)學(xué)習(xí)下。
注釋D:
比較器是通過比較兩個(gè)輸入端的電流或電壓的大小,在輸出端輸出不同電壓結(jié)果的電子元件。比較器常被用于模數(shù)轉(zhuǎn)換電路中。 使用 AVR 的模擬比較器就可以構(gòu)成 ADC 轉(zhuǎn)換器;AVR 單片機(jī)在復(fù)位后, 模擬比較器是處于允許工作狀態(tài)的。 如果不使用它, 就把寄存器 ACSR 的 ACD 位設(shè)置為 1, 以關(guān)閉模擬比較器減少電源消耗; 與其相關(guān)的寄存器是 SFIOR 和 ACSR. AVR 的模擬比較器是 AVR 的中斷源之一;
注釋E:
這 21 個(gè)內(nèi)外部中斷源是(按優(yōu)先級(jí)排序):
AVR單片機(jī)中斷向量區(qū)向量號(hào)Flash空間地址中斷源
中斷定義說明
1 $000RESET外部引腳電平引發(fā)的復(fù)位, 上電復(fù)位, 掉電檢測復(fù)位,
看門狗復(fù)位, JTAG AVR 復(fù)位 2 $002INT0外部中斷 0 3 $004INT1外部中斷 1 4 $006TIMER 2 COMP定時(shí)/計(jì)數(shù)器 2 比較匹配 5 $008TIMER 2 OVF定時(shí)/計(jì)數(shù)器 2 溢出 6 $00ATIMER 1 CAPT定時(shí)/計(jì)數(shù)器 1 事件捕捉 7 $00CTIMER 1 COMPA定時(shí)/計(jì)數(shù)器 1 比較匹配 A 8 $00ETIMER 1 COMPB定時(shí)/計(jì)數(shù)器 1 比較匹配 B 9 $010TIMER 1 OVF定時(shí)/計(jì)數(shù)器 1 溢出 10 $012TIMER 0 OVF定時(shí)/計(jì)數(shù)器 0 溢出 11 $014SPI STCSPI 串行傳輸結(jié)束 12 $016USART RXCUSART, 接收結(jié)束 13 $018USART UXREUSART, 數(shù)據(jù)寄存器空 14 $01AUSART TXCUSART, 發(fā)送結(jié)束 15 $01CADCA/C 轉(zhuǎn)換結(jié)束 16 $01EEE_RDYEEPROM 就緒 17 $020ANA_COMP模擬比較器 18 $022TWI兩線串行接口 19 $024INT2外部中斷請求 2 20 $026TIMER 0 COMP定時(shí)/計(jì)數(shù)器 0 比較匹配 21 $028SPM_RDY保存程序存儲(chǔ)器內(nèi)容就緒
中斷向量區(qū)大小 = 中斷源個(gè)數(shù) X 每個(gè)中斷向量占據(jù)字?jǐn)?shù)
其中中斷還分為可屏蔽中斷和不可屏蔽中斷(AVR 中復(fù)位為唯一一個(gè)不可屏蔽的中斷)。
注釋F:
AVR 單片機(jī)的 I/O 口共 32 個(gè), 分為 4 組端口, 每組 8 個(gè);4 個(gè)端口的第一功能是通用的雙向 I/O 口, 每位都要通過指令設(shè)置為獨(dú)立的輸入/輸出口。 設(shè)置為輸入時(shí)內(nèi)部自帶有上拉電阻, 這些內(nèi)部上拉可以通過編程設(shè)置為有效或者無效。 當(dāng)輸出高電平時(shí), 可輸出 20mA 的電流, 而當(dāng)輸出低電平時(shí),可以吸收 40mA 的電流。 因此 AVR 可以直接驅(qū)動(dòng)數(shù)碼管和 LED 發(fā)光二極管。 另外要注意的就是, AVR 單片在復(fù)位后, 所有的 I/O 口都是默認(rèn)為輸入方式的, 上拉電阻無效, 即I/O為輸入高阻的三態(tài)狀態(tài)。 I/O空間為連續(xù)的 64 個(gè) I/O 寄存器空間, 他們分別對應(yīng)單片機(jī)各個(gè)外圍功能的控制和數(shù)據(jù)寄存器地址。 I/O 寄存器空間可使用 I/O 寄存器訪問指令直接訪問, 也可將其映射為通用工作寄存器組后的數(shù)據(jù)存儲(chǔ)器空間, 使用數(shù)據(jù)存儲(chǔ)器訪問指令進(jìn)行操作。 I/O 寄存器空間在數(shù)據(jù)存儲(chǔ)器空間的映射地址為 $020--&05F.
下圖是 AVR 單片機(jī)的內(nèi)部結(jié)構(gòu)框圖:
來源;21ic