Atmel AVR ATmega8 PDIP
AVR là một kiến trỳc Harvard sửa đổi 8-bit RISC đơn chip vi điều khiển (àC) đó được phỏt triển bởi Atmel vào năm 1996. Cỏc AVR là một trong những họ vi điều khiển đầu tiờn sử dụng on-chip bộ nhớ flash để lưu trữ chương trỡnh, trỏi với One-Time Programmable ROM, EPROM hoặc EEPROM được sử dụng bởi vi điều khiển khỏc vào lỳc đú.
4.1.1.1 Lịch sử họ AVR
Người ta tin vào kiến trỳc AVR cơ bản đó được hỡnh thành bởi hai sinh viờn tại Viện Cụng nghệ Na Uy (thứ n) Alf-Egil Bogen và Vegard Wollan.
Cỏc AVR MCU bản gốc đó được phỏt triển tại một ngụi nhà ASIC thuộc địa phương ở Trondheim, Na Uy, nơi mà hai thành viờn sỏng lập của Atmel Na Uy đó làm việc như sinh viờn. Nú được biết đến như một àRISC (Micro RISC). Khi cụng nghệ đó được bỏn cho Atmel, kiến trỳc nội bộ đó được phỏt triển thờm bởi Alf và Vegard tại Atmel Na Uy, một cụng ty con của Atmel thành lập bởi hai kiến trỳc sư.
Atmel AVR núi rằng cỏc tờn khụng phải là một từ viết tắt và khụng phải là bất cứ điều gỡ đặc biệt. Những người sỏng tạo AVR khụng cú cõu trả lời dứt khoỏt về thuật ngữ viết tắt "AVR".
Lưu ý rằng việc sử dụng "AVR" trong bài viết này thường đề cập đến 8-bit RISC dũng vi điều khiển Atmel AVR.
Trong số những thành viờn đầu tiờn của dũng AVR là AT90S8515, đúng vỏ trong gúi 40-pin DIP cú chõn ra giống như một vi điều khiển 8051, bao gồm địa chỉ BUS multiplexed bờn ngoài và dữ liệụ Tớn hiệu RESET đó đổi ngược, 8051 RESET mức cao, AVR RESET mức thấp), nhưng khỏc với đú, chõn ra là giống hệt nhaụ
4.1.1.2 Tổng quan về thiết bị
AVR là một kiến trỳc mỏy Modified Harvard với chương trỡnh và dữ liệu được lưu trữ trong cỏc hệ thống bộ nhớ vật lý riờng biệt xuất hiện trong khụng gian địa chỉ khỏc nhau, nhưng cú khả năng đọc ghi dữ liệu từ bộ nhớ bằng cỏch sử dụng lệnh đặc biệt.
Cơ bản về họ AVR
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 138 • TinyAVR - chuỗi Attiny
o 0,5-8 kBbộ nhớ chương trỡnh
o Đúng vỏ 6-32-chõn
o Tập ngoại vi hữu hạn • MegaAVR - chuỗi Atmega
o 4-256 kB bộ nhớ chương trỡnh
o Đúng vỏ 28-100-chõn
o Tập lệnh mở rộng (Lệnh nhõn và lệnh cho quản lý bộ nhớ lớn hơn).
o Mở rộng hơn về thiết bị ngoại vi • XMEGA - chuỗi Atxmega
o 16-384 kB bộ nhớ chương trỡnh.
o Đúng vỏ 44-64-100-chõn (A4, A3, A1)
o Mở rộng cỏc tớnh năng hiệu suất, chẳng hạn như DMA, "Sự kiện hệ thống", và hỗ trợ mật mó.
o Thiết bị ngoại vi được mở rộng với DACs • Ứng dụng cụ thể AVR
o megaAVRs với cỏc tớnh năng đặc biệt khụng tỡm thấy trờn cỏc thành viờn khỏc của gia đỡnh AVR, chẳng hạn như bộ điều khiển LCD, USB, điều khiển, nõng cao PWM, CAN v.v..
o Atmel At94k FPSLIC (Field Programmable System Level Circuit), một lừi trờn AVR với một FPGẠ FPSLIC sử dụng SRAM cho mó chương trỡnh AVR, khụng giống như tất cả cỏc AVRs khỏc. Một phần do sự khỏc biệt tốc độ tương đối giữa SRAM và flash, lừi AVR trong FPSLIC cú thể chạy lờn đến 50 MHz.
4.1.1.3 Kiến trỳc thiết bị
Flash, EEPROM, và SRAM tất cả được tớch hợp vào một chip duy nhất, loại bỏ sự cần thiết của bộ nhớ ngoài trong hầu hết cỏc ứng dụng. Một số thiết bị cú BUS mở rộng song song để cho phộp thờm dữ liệu bổ sung (hoặc mó) bộ nhớ, hoặc bộ nhớ ỏnh xạ thiết bị. Tất cả cỏc thiết bị cú giao tiếp nối tiếp, mà cú thể được sử dụng để kết nối EEPROMs nối tiếp chip flash.
4.1.1.4 Program Memory (Flash)
Mó lệnh chương trỡnh được lưu trữ trong bộ nhớ Flash chống xúa (non-volatile Flash). Mặc dự họ là 8-bit MCUs, mỗi lệnh mất 1 hoặc 2 từ 16-bit.
Kớch cỡ của bộ nhớ chương trỡnh thường được chỉ định trong việc đặt tờn của thiết bị chớnh (vớ dụ, dũng ATmega64x cú 64 kB của Flash, tuy nhiờn ATmega32x chỉ cú 32kB).
4.1.1.5 EEPROM
Hầu như tất cả cỏc vi điều khiển AVR đều cú Electrically Erasable Programmable Read Only Memory (EEPROM) để lưu “nửa vĩnh viễn” dữ liệu lưu trữ. Cũng giống như bộ nhớ Flash, EEPROM cú thể duy trỡ nội dung của nú khi được gỡ bỏ.
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 139 Trong hầu hết cỏc biến thể của kiến trỳc AVR, bộ nhớ EEPROM nội bộ này khụng phải là ỏnh xạ vào khụng gian địa chỉ bộ nhớ của MCỤ Nú chỉ cú thể được truy cập cựng một cỏch như là thiết bị ngoại vi bờn ngoài, thanh ghi sử dụng con trỏ đặc biệt và đọc / ghi hướng dẫn mà làm cho truy cập EEPROM chậm hơn nhiều so với RAM nội bộ khỏc.
Tuy nhiờn, một số thiết bị trong dũng SecureAVR (AT90SC) sử dụng một bản đồ EEPROM đặc biệt đến cỏc dữ liệu hoặc bộ nhớ chương trỡnh tựy thuộc vào cấu hỡnh. Dũng XMEGA cũng cho phộp EEPROM ỏnh xạ vào khụng gian địa chỉ dữ liệụ
Kể từ khi số lượng cỏc lần ghi EEPROM khụng phải là khụng giới hạn - Atmel chỉ được 100.000 chu kỳ ghị
4.1.1.6 Chương trỡnh thực thi
Atmel's AVRs cú hai giai đoạn, thiết kế kiểu đường ống (pipeline) duy nhất. Điều này cú nghĩa là chỉ lệnh kế tiếp là được lấy khi lệnh này đang thực hiện. Hầu hết cỏc lệnh chỉ mất một hoặc hai chu kỳ đồng hồ, làm cho AVRs tương đối nhanh trong số vi điều khiển 8-bit.
Họ AVR của bộ vi xử lý được thiết kế với sự thực hiện hiệu quả của mó C.
4.1.1.7 Tập lệnh
Tập lệnh AVR hơn là trực giao với hầu hết cỏc vi điều khiển tỏm-bit, đặc biệt là 8051 và vi điều khiển PIC với AVR mà ngày nay đang cạnh tranh. Tuy nhiờn, nú khụng phải là hoàn toàn bỡnh thường:
• Con trỏ ghi X, Y, và Z cú khả năng đỏnh địa chỉ khỏc với nhaụ
• Vị trớ thanh ghi R0 đến R15 cú khả năng đỏnh địa chỉ khỏc hơn vị trớ thnah ghi R16 đến R31.
• I / O port 0-31 cú khả năng đỏnh địa chỉ khỏc so với I / O ports 32-63.
• CLR ảnh hưởng đến cỏc cờ, trong khi SER khụng, ngay cả khi chỳng được lệnh bổ sung. CLR xúa tất cả cỏc bit về khụng và SER đặt chỳng lờn một.
• Truy cập dữ liệu chỉ đọc được lưu trong bộ nhớ chương trỡnh (flash) yờu cầu lệnh đặc biệt LPM.
Ngoài ra, một số chip-sự khỏc biệt cụ thể ảnh hưởng đến cỏc thế hệ mó. Mó con trỏ (bao gồm cả cỏc địa chỉ trở lại stack) là hai byte trờn chip lờn đến 128 KBytes bộ nhớ flash, nhưng ba byte trờn chip lớn hơn, khụng phải tất cả cỏc chip cú số nhõn phần cứng; chip với hơn 8 Kbytes flash cú nhỏnh và gọi lệnh với khoảng rộng hơn; v.v. .
Lập trỡnh cho nú bằng cỏch sử dụng lập trỡnh C (hoặc thậm chớ Ada) trỡnh biờn dịch khỏ đơn giản. GCC đó bao gồm hỗ trợ AVR từ khỏ lõu, và hỗ trợ được sử dụng rộng róị Trong thực tế, Atmel gạ gẫm đầu vào từ cỏc nhà phỏt triển chớnh của trỡnh biờn
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 140 dịch cho vi điều khiển nhỏ, để tớch hợp tớnh năng cho cỏc tập lệnh hữu dụng nhất trong một trỡnh biờn dịch cho cỏc ngụn ngữ cấp caọ
4.1.1.8 Tốc độ MCU
Dũng AVR bỡnh thường cú thể hỗ trợ tốc độ đồng hồ 0-20 MHz, với một số thiết bị đạt 32 MHz. Hỗ trợ hoạt động thấp hơn thường đũi hỏi một tốc độ giảm. Tất cả gần đõy (Tiny và Mega, nhưng khụng phải 90S) AVRs tớch hợp oscillator-chip, loại bỏ sự cần thiết của đồng hồ bờn ngoài hoặc mạch dao động. Một số AVRs cũng cú một prescaler đồng hồ hệ thống, cú thể chia xuống đồng hồ của hệ thống lờn đến 1024. Prescaler này cú thể được cấu hỡnh lại bằng phần mềm trong thời gian chạy, cho phộp tối ưu húa tốc độ đồng hồ.
Vỡ tất cả cỏc hoạt động (trừ literals) trờn thanh ghi R0 - R31 là đơn chu kỳ, cỏc AVR cú thể đạt được lờn đến 1MIPS mỗi MHz. Tải và lưu trữ vào / ra bộ nhớ mất 2 chu kỳ, phõn nhỏnh phải mất 3 chu kỳ.
4.1.1.9 Những đặc tớnh
AVRs hiện cung cấp một loạt cỏc tớnh năng:
• Mỏy đa chức năng, Bi-directional General Purpose I / O port với cấu hỡnh, built- in pull-up resistors
• Nhiều nội Oscillators, bao gồm cả RC oscillator mà khụng cú bộ phận bờn ngoài • Nội, lệnh Self-Programmable Flash Memory lờn đến 256 KB (384 KB trờn
XMega)
o In-System Programmable sử dụng nối tiếp / song song hạ thế độc quyền hoặc cỏc giao diện JTAG
o Tựy chọn khởi động với bảo vệ Lock Bits độc lập.
• On-chip gỡ lỗi (OCD) hỗ trợ thụng qua JTAG hoặc debugWIRE trờn hầu hết cỏc thiết bị
o tớn hiệu JTAG (TMS, TDI, TDO, và TCK) là multiplexed ngày GPIOs. Những Pin cú thể được cấu hỡnh với chức năng như JTAG hoặc GPIO tựy thuộc vào thiết lập của một vài cầu chỡ (FUSES), cú thể được lập trỡnh thụng qua ISP hoặc HVSP. Theo mặc định, AVRs với JTAG đi kốm với giao diện JTAG bật.
o debugWIRE sử dụng chõn /RESET như một kờnh giao tiếp hai hướng để truy cập vào mạch debug-chip. Đú là hiện nay trờn cỏc thiết bị với số lượng chõn ớt, vỡ nú chỉ cần một chõn.
• Internal Data EEPROM lờn đến 4 kB
• Internal SRAM lờn đến 8 kB (32 kB trờn XMega)
• Ngoài 64KB dữ liệu trờn cỏc mụ hỡnh khụng gian nhất định, bao gồm cả Mega8515 và Mega162.
o Trong một số thành viờn của loạt XMEGA, dữ liệu khụng gian bờn ngoài đó được tăng cường để hỗ trợ cả hai SRAM và SDRAM. Đồng thời, cỏc
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 141 dữ liệu địa chỉ, cỏc chế độ đó được mở rộng cho phộp lờn đến 16MB bộ nhớ của dữ liệu được đề cập trực tiếp.
o AVR thường khụng hỗ trợ thực thi mó từ bộ nhớ bờn ngoàị Một số ASSP bằng cỏch sử dụng mó AVR làm bộ nhớ hỗ trợ chương trỡnh bờn ngoàị • 8-Bit và 16-Bit Timers
o PWM đầu ra (thời gian chết mỏy phỏt điện trờn một số thiết bị)
o vào capture • So sỏnh Analog
o 10 hoặc 12-Bit A / D Converters, với multiplex lờn đến 16 kờnh
o 12-bit D / A Converters
• Một loạt cỏc giao tiếp nối tiếp, bao gồm cả
o I²C tương thớch Two-Wire Interface (TWI)
o Thiết bị ngoại vi Synchronous / Asynchronous Serial (UART / USART) (được sử dụng với RS-232, RS-485, và nhiều hơn nữa)
o Thiết bị giao diện Serial Bus (SPI)
o Universal Serial Interface (USI) cho 2 hoặc 3 dõy truyền thụng đồng bộ nối tiếp.
• Brownout Detection • Watchdog Timer (WDT)
• Nhiều chế độ tiết kiệm điện (Power-Saving Sleep)
• Điều khiển ỏnh sỏng và điều khiển động cơ (cụ thể là PWM ) điều khiển mụ hỡnh • Hỗ trợ CAN Controller
• Hỗ trợ USB Controller
o USB – Full speed (12 Mbit / s) điều khiển phần cứng & Hub với AVR nhỳng.
o Cũng sẵn sàng tự do với tốc độ thấp (1,5 Mbit / s) (HID) bitbanging EMULATIONS phần mềm
• Hỗ trợ Ethernet Controller • Hỗ trợ LCD Controller
• Hoạt động ở mức điện ỏp thấp, cú thể xuống đến 1.8v (đến 0.7v với loại hỗ trợ chuyển đổi DC-DC)
• Thiết bị picoPower
• bộ điều khiển DMA và truyền thụng "Sự kiện hệ thống" ngoại vị • Mó húa và giải mó nhanh, hỗ trợ cho AES và DES
Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 142