Tải bản đầy đủ (.ppt) (45 trang)

Báo cáo đề tài vi điều khiển AVR

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (840.32 KB, 45 trang )

BÁO CÁO ĐỀ TÀI VI ĐIỀU KHIỂN AVR
Nhóm av

GVHD: ThS Lê Hoài Nghĩa


NỘI DUNG
• Tổng quan về vi điều khiển AVR
• Kiến trúc vi điều khiển AVR – Atmega16
• Giới thiệu PWM AVR điều khiển động cơ
DC
• Các công cụ lập trình AVR


&1.Tổng quan về vi điều khiển AVR
• AVR do hãng Atmel chế tạo ra, là họ VĐK 8bit theo công
nghệ mới với những tính năng rất mạnh được tích hợp
trong trong chip.
• AVR ổn định hơn rất nhiều so với dòng VĐK 8051
• Tính năng mới của họ AVR :
- Giao diện SPI đồng bộ, giao tiếp I2C, USART.
- Các lối vào ra Bộ Timer/Counter 8bit và 16bit
lập trình được.
- Tích hợp bộ biến đổi ADC 10bit.
- Có sẵn các kênh băm xung PWM.
- Bộ nhớ EEPROM.


Lịch sử phát triển AVR







Ban đầu AVR MCU (Micro Controller Unit) được phát
triển tại một phòng ASIC (Application Specific IC) ở
Trondheim Nauy, đó là nơi mà 2 người sáng lập của
Atmel Nauy làm việc như là sinh viên. Và nó được biết
đến với tên µRISC (Micro RISC). Khi công nghệ này
được bán cho Atmel, cấu trúc bên trong AVR được phát
triển xa hơn bởi Alf và Vegard tại Atmel Nauy, một công ty
con của Atmel được thành lập bởi 2 thành viên trên.
AVR là viết tắt của Advanced Virtual RISC, nhưng cũng
có thể là viết tắt cho 2 người sáng lập: Alf and Vegard
[RISC], nhưng Atmel nói rằng AVR chẳng là viết tắt của
bất cứ cái gì cả.
Một sản phẩm đầu tiên của AVR là AT90S8515, cũng có
đóng gói DIP 40 chân giống như 8051 vậy, nó bao gồm
phức hợp địa chỉ các thành phần bên ngoài và data bus.
Điều khác biệt là chân RESET (8051 RESET tích cực
mức cao, AVR lại tích cực mức thấp), ngoại trừ điểm này,
các ngỏ ra đều giống nhau.


Ưu thế của MCU AVR
• Kết nối phần cứng cho AVR đơn giản
với những linh kiện thông dụng như
điện trở, tụ điện, thạch anh. Dòng ra
điều khiển Port lớn và không cần
dùng điện trở kéo.

• Thiết kế mạch nạp cho AVR khá đơn
giản giao tiếp qua cổng LPT, COM,
USB. Hỗ trợ ISP lập trình trực tiếp
trên mạch.
• Hỗ trợ lập trình trên nền ngôn ngữ
ASM, C với nhiều công cụ hỗ trợ như
CodeVision, AVR Studio.


Phân loại AVR
a. tinyAVRs :
- 1-8 kB bộ nhớ chương trình.
- 8-32 chân.
-Hạn chế các thiết bị ngoại vi.
b.megaAVRs:
- 4-256 kB bộ nhớ chương trình.
-28-100 chân.
- Mở rộng tập lệnh.
-Nhiều thiết bị ngoại vi.
c. XmegaAVRs:
- 16-256 kB bộ nhớ chương trình.
-44-100 chân.
- Mở rộng các thiết bị như DMA, "Event
System", và hỗ trợ mã hóa .
-Mở rộng thiết bị ngoại vi với DACs.
d. Application specific AVRs:
-megaAVRs với các thành phần đặc biệt
không có trong các sản phẩm khác của AVR như là LCD controller, USB
controlller, PWN, CAN, v.v...


The New 32-Bit AVRs:
Năm 2006 Atmel tung ra VDK mới, 32 bit, kiến trúc
AVR32. Chúng bao gồm tập lệnh SIMD và DSP, cùng với các
thành phần xử lý audio và video. Dòng VDK 32 bit này được dự
định cạnh tranh với VDK ARM. Các tập lệnh giống với các nhân
RISC khác, nhưng không tương thích với các dòng AVR trước
cũng như nhân ARM khác.


Một số AVR phổ biến
























AT90S1200
AT90S2313
AT90S2323 and AT90S2343
AT90S2333 and AT90S4433
AT90S4414 and AT90S8515
AT90S4434 and AT90S8535
AT90C8534
ATtiny10, ATtiny11 and ATtiny12
ATtiny15
ATtiny22
ATtiny26
ATtiny28
ATmega8/8515/8535
ATmega16
ATmega161
ATmega162
ATmega163
ATmega169
ATmega32
ATmega323
ATmega103
ATmega64/128/2560/2561


&2. Kiến trúc vi điều khiển AVR
Atmega16



AVR có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu
(data memory bus) và đường truyền cho bộ nhớ chương trình
(program memory bus) được tách riêng. Data memory bus chỉ có 8
bit và được kết nối với hầu hết các thiết bị ngoại vi, với register file.
Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ
cho instruction registers.


Sơ đồ chân


Sơ đồ khối


Các Port xuất nhập


Port A:




Port B:




Là port xuất nhập thông thường 8 bit. Bên cạnh đó
Port C còn có một số chân giao tiếp JTAG PC5-TDI,

PC3-TMS, PC2 –TCK.

PORT D:




Là port xuất nhập thông thường 8 bit.

Port C:




Port A là bên cạnh là Port xuất nhập thông thường 8
bit còn được thiết kế cho bộ ADC chuyển đổi tương tự
số. Port A thiết kế với điện trở nội treo lên ở mức cao.

Là port xuất nhập thông thường 8 bit.

Các chân khác:
»

VCC, AVCC, AREF, XTAL1, XTAL2, RESET


CPU


CPU (tt)



ALU:
– ALU làm việc trực tiếp với các thanh ghi
chức năng chung. Các phép toán được
thực hiện trong một chu kỳ xung clock.
Hoạt động của ALU được chia làm 3 loại:
đại số, logic và theo bit.



Thanh ghi trạng thái:
– Đây là thanh ghi 8 bit lưu trữ trạng thái của
ALU sau các phép tính số học và logic.


CPU(tt)






C: Carry Flag  cờ nhớ .
Z: Zero Flag Cờ zero.
N: Negative Flag  kết quả phép toán âm.
V: Two’s complement overflow  cờ bù 2.
S For signed tests (S=N XOR V)  kiểm tra
2 cờ N và V.
• H: Half Carry Flag  được sử dụng trong

BCD cho một số toán hạng.
• T: Transfer bit used by BLD and BST
instructionsđược sử dụng làm nơi trung
gian trong các lệnh BLD,BST.
• I: Global Interrupt Enable/Disable Flag đây
là bit cho phép toàn cục ngắt. Nếu bit này ở
trạng thái logic 0 thì không có một ngắt nào
được phục vụ.


CPU(tt)
• Atmega 16 có 32 thanh ghi chức năng
chung thực thi nhiều tác vụ trong đó
– Một 8 bit output toán hạng và một 8 bit cho input kết
quả.
– Hai 8 bit output toán hạng và một 8 bit cho input kết
quả.
– Hai 8 bit cho output kết quả và một 16 bit cho input kết
quả.
– Một 16 bit cho output toán hạng và một 16 bit cho input
kết quả.


Memorry
• Bộ nhớ chương trình Flash



Bộ nhớ Flash 16KB của ATmega16 dùng để lưu trữ
chương trình với độ rộng 16 bit. Do các lệnh của AVR

có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp
xếp theo kiểu 8KX16.
Bộ nhớ chương trình chỉ gồm 1 phần là Application
Flash Section nhưng trong các chip AVR mới chúng ta
có thêm phần Boot Flash section. Boot Section. Thực
chất, application section bao gồm 2 phần: phần chứa
các instruction và phần chứa interrupt vectors. Các
vector ngắt nằm ở phần đầu của application section từ
địa chỉ 0x0000 và dài đến bao nhiêu tùy thuộc vào loại
chip và phần chứa instruction nằm liền sau đó. Các
chương trình được viết sau địa chỉ đó.


Memorry(tt)


Bộ nhớ dữ liệu SRAM


Memorry


Đây là phần chứa các thanh ghi quan trọng nhất
của chip, việc lập trình cho chip phần lớn là truy
cập bộ nhớ này và bộ nhớ này gồm các phần
sau:
– Phần 1: là phần đầu tiên trong bộ nhớ dữ liệu bao gồm
32 thanh General Purpose Rgegister – GPR. Tất cả các
thanh ghi này đều là các thanh ghi 8 bits. Tất cả các chip
trong họ AVR đều bao gồm 32 thanh ghi Register File có

địa chỉ tuyệt đối từ 0x0000 đến 0x001F. Mỗi thanh ghi có
thể chứa giá trị dương từ 0 đến 255 hoặc các giá trị có
dấu từ -128 đến 127 hoặc mã ASCII của một ký tự nào
đó…Các thanh ghi này được đặt tên theo thứ tự là R0
đến R31. Chúng được chia thành 2 phần, phần 1 bao
gồm các thanh ghi từ R0 đến R15 và phần 2 là các thanh
ghi R16 đến R31.
– Phần 2: là phần nằm ngay sau SFR bao gồm 64 thanh
ghi IO hay còn gọi là vùng nhớ IO. Vùng nhớ I/O là cửa
ngõ giao tiếp giữa CPU và thiết bị ngoại vi. Vùng nhớ I/O
có thể được truy cập như SRAM hay như các thanh ghi
I/O. Nếu sử dụng instruction truy xuất SRAM để truy xuất
vùng nhớ này thì địa chỉ của chúng được tính từ 0x0020
đến 0x005F. Nhưng nếu truy xuất như các thanh ghi I/O
thì địa chỉ của chúng đựơc tính từ 0x0000 đến 0x003F.
– Phần 3: internal SRAM là vùng không gian cho chứa các
biến trong lúc thực thi chương trình.


Memorry(tt)


Bộ nhớ dữ liệu EEPROM

ATmega16 chứa bộ nhớ dữ liệu
EEPROM dung lượng 512 byte, và
được sắp xếp theo từng byte, cho
phép các thao tác đọc/ghi từng byte
một. EEPROM được tách riêng và có
địa chỉ tính từ 0x0000H.



Quá trình thực thi lệnh


Các instruction được chứa trong bộ nhớ chương
trình Flash memory dưới dạng các thanh ghi 16 bit.
Bộ nhớ chương trình được truy cập trong mỗi chu
kỳ xung clock và 1 instruction chứa trong program
memory sẽ được load vào trong instruction register,
instruction register tác động và lựa chọn register file
cũng như RAM cho ALU thực thi. Trong lúc thực thi
chương trình, địa chỉ của dòng lệnh đang thực thi
được quyết định bởi một bộ đếm chương trình – PC
(Program counter). Hầu hết các instruction đều
được thực thi trong 1 chu kỳ xung clock.


&3. Giới thiệu PWM AVR điều

khiển động cơ DC
• PWM là cụm từ Pulse Witdth Modulation là một kỹ
thuật dùng để điều khiển động cơ DC bằng cách điều
chỉnh độ rộng của xung. Khoảng thời gian mà xung ở
mức logic cao sẽ ứng với thời gian có dòng điện qua
động cơ và ngược lại. PWM sử dụng kỹ thuật đóng mở
nguồn cung cấp cho động cơ với những khoảng thời
gian giãn cách khác nhau từ đó điều khiển được tốc độ
của động cơ.



Cấu tạo động cơ DC
• Động cơ một chiều được ứng dụng rộng rãi
trong rất nhiều lĩnh vực điều khiển tự động.
Cấu tạo của động cơ một chiều gồm có Stato
và Roto.
• Stato thường làm bằng nam châm vĩnh cửu
hoặc nam châm điện ở những động cơ công
suất lớn. Roto là những cuộn dây được quấn
trên lõi thép. Roto thường là bộ phận quay còn
Stato thì đứng yên.
• Các đầu ra của cuộn dây Roto được đặt lên
bộ cổ góp có các chổi than nhằm đảm bảo từ
thông qua cuộn dây Roto là liên tục tức là duy
trì lực từ tác dụng quay lên Roto một cách liên
tục.
• Động cơ DC có một số loại như Servo, Step,
Encoder…


Thiết kế PWM như thế nào?


Dùng IC 555 tạo xung:


Thiết kế PWM như thế nào?




Dùng module PWM tích hợp sẵn của AT Mega 16
AT Mega 16 có 4 kênh PWM tương ứng với 4 chân
là:

Timer 0

Timer 1

Timer 2


Sơ đồ khối


Sơ đồ khối Timer 16 bit:


×