1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

TÌM HIỂU về AVR

26 717 17
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

+Đây là một lọai Vi điều khiển có nhìều tính năng đặc biệt thích hợp cho việc giải quyết những bài toán điều khiển trên nền vi xử lý. +Các lọai vi điều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không khó khăn trong việc thay thế và sửa chữa hệ thống lúc cần. +Giá thành của dòng Vi Điều Khiển này khá phải chăng +Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống.

TÌM HIỂU VỀ AVR I.Tổng quan về AVR : 1. Giới thiệu AVR: +Đây là một lọai Vi điều khiển có nhìều tính năng đặc biệt thích hợp cho việc giải quyết những bài toán điều khiển trên nền vi xử lý. +Các lọai vi điều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không khó khăn trong việc thay thế và sửa chữa hệ thống lúc cần. +Giá thành của dòng Vi Điều Khiển này khá phải chăng +Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống. Sơ đồ khối của vi điều khiển: 2.Sơ lược về vi điều khỉển: Đây là lọai vi điều khiển 8 bit,các lệnh được xử lý nhanh hơn,tiêu thụ năng lượng thấp. - Atmega có cấu trúc RISC với: +131 lệnh,hầu hết được thực thi trong 1 chu kì xung nhịp. +32x8 thanh ghi đa dụng +Full static operation +Tốc độ làm việc 16MPIS,với thạch anh 16MHz +On_chip 2 cycle Multiplier -Bộ nhớ: +16 KB ISP Flash với khả năng 10.000lần ghi/xóa +512Byte EEROM +1KB SRAM ngọai -Giao tiếp JTAG: +Khả năng quét toàn diện theo chuẩn JTAG +Hỗ trợ khả năng Debug on-chip +Hỗ trợ lập trình Flash,EEROM,fuse… +Lock bit qua giao tiếp JTAG -Ngọai vi: +2 timer/counter 8 bit với các mode :so sánh và chia tần số +1 timer/counter 16 bit với các mode:so sánh,chia tần số,capture,PWM +1 timer thời gian thực(Real time clock) với bộ dao động riêng biệt +4 kênh PWM(họăc nhiều hơn trong các VĐK khác thuộc họ này) +8 kênh biến đổi ADC 10bit +Hỗ trợ giao tiếp I2C +Bộ giao giao tiếp nối tiếp lập trình được USART +Giao tiếp SPI +Watch_dog timer với bộ dao động on-chip riêng biệt -Những thuộc tính đặc biệt:: +Power On reset và Brown-out detection +chế độ hiệu chỉnh bộ sai số cho bộ dao động RC On-chip +Các chế độ ngắt ngoài và trong đa dạng +6 mode sleep:Idle,ADC noise reduction,tiết kiệm năng lượng,power-down, standby,extended standby -I/O port: +32 chân I/O(Atmega16) và 21 chân I/O (Atmega8) lập trình được +vỏ 40 chân (Atmega16) ,28 chân(Atmega8),64 chân(AT90can128); Đều có 3 địa chỉ vào ra đi kèm, địa chỉ vào ra được cần đến để đặt cấu hình cho các bit riêng biệt thành lối vào hoặc thành lối ra; địa chỉ khác được cần đến để xuất ra dữ liệu tới các bit (hoặc tất cả) được đặt cấu hình thành lối ra và địa chỉ thứ 3 được cần đến để đọc dữ liệu từ các chân (hoặc tất cả) được cấu hình thành lối vào. -Nguồn cấp: 2,7->5.5 V với ATmega16L 4.5->5.5V với ATmega16H -Tiêu hao năng lượng: +Khi họat động tiêu thụ dòng 1,1mA +Ở mode Idle tiêu thụ dòng 0.35mA +Ở chế độ Power_down tiêu thụ dòng nhỏ hơn 1uA -Đây là những chức năng cơ bản thường thấy trong các Vi điều khiển AVR,ngoài ra trong các vi điều khiển khác thuộc dòng vi điều khiển này thì thường được hỗ trợ thêm những chức năng đặc biệt.Ví dụ AT90can128 hỗ trợ thêm bộ giao tiếp mạng Can bus on-chip 3. Các phần mềm lập trình cho AVR: + AVRStuido (free), Code Vision. Các phần mềm này có hỗ trợ phần nạp và debug on chip + Ngoài ra có thể dùng chương trình nạp PonyProg2000, Winpic800 . II. Vi điều khiển AVR AT90S8535 : Vi điều khiển AT90S8535 là loại có kiến trúc RISC(Reduced Intruction Set Computer) phức tạp. Đây là kiến trúc phổ biến của các bộ vi điều khiển hiện đại. Có chỉ tiêu chất lượng cao và tiêu thụ năng lượng ít, nhiều bộ phận ngoại vi được thiết kế ngay trên chip. AT90S8535 còn nổi bật với cấu trúc Hardvard cải tiến là cấu trúc có bộ nhớ chương trình và bộ nhớ dữ liệu riêng. Bên trong gồm có: + 8 kbyte Ram Flash với giao diện nối tiếp SPI giúp lập trình được ngay trên hệ thống, chịu được khoảng 100000 lần ghi/xoá. + 118 lệnh mạnh, hầu hết được thực hiện trong một chu kỳ xung nhịp. + Bộ nhớ EEPROM 512 bytes. + Bộ nhớ SRAM bên trong 512 bytes. + Bộ chuyển đổi ADC 8 kênh, 10 bit. + 32x8 thanh ghi làm việc đa năng. + Bộ đếm thời gian thực với bộ dao động và chế độ đếm tách biệt. + Hai bộ đếm/định thời 8 bit với chế độ so sánh và chia tần số tách biệt. + Một bộ đếm/định thời 16 bit với chế độ so sánh, chia tần số tách biệt và chế độ bắt mẫu. 1.Ki n trúc RISC c a AT90S8535: 2.Cấu tạo chân của AT90S8535 : 3.T chc vựng nh AVR AT90S8535 : Cỏc b vi x lớ AVR cú cu trỳc Harvard ngha l cú b nh chng trỡnh v b nh d liu riờng. B nh chng trỡnh l loi b nh Flash, 16 bit, cú dung lng 8Kbyte. B nh chng trỡnh c truy nhp theo tng chu k ng h v mt lnh c ghi vo thanh ghi lnh. B nh chng trỡnh, bờn cnh cỏc lnh lu tr, cũn cha cỏc vect ngt u a ch(xem phn ngt). Chng trỡnh hin ti s bt u phớa bờn kia vựng cho cỏc vect ngt. B nh d liu: cú 4 vựng khỏc nhau + Vựng tp thanh ghi: gm 32 thanh ghi cú rng 8 bit. + Vựng cỏc thanh ghi vo ra: gm 64 thanh ghi vo ra, mi thanh ghi cú rng 8 bit. Cỏc thanh ghi ny thc cht l mt phn ca b nh SRAM trờn chip v cng cú th c truy nhp nh b nh SRAM cú a ch t $20 -> $5F hoc nh cỏc thanh ghi I/O cú a ch t $00 -> $3F. Hu ht cỏc thanh ghi ny c trao i nh cỏc thanh ghi I/O ch khụng phi nh SRAM. + Vựng nh SRAM bờn trong(RAM a dng): gm 512 byte. B nh SRAM s dng cho ngn xp cng nh lu tr cỏc bin. + Vựng EEPROM: gm 512 byte v c truy nhp theo bn b nh tỏch bit. a ch bt u ca b nh EEPROM l $0000. B nh ny cú th c c/ghi bng phn mm. Hot ng ca cỏc b phn trờn AVR AT90S8535 32 thanh ghi ủa muùc ủớch 64 thanh ghi Input/Output SRAM noọi (512 x 8) EEPRROM (512 x 8) Boọ nhụự chửụng trỡnh Boọ nhụự dửừ lieọu Boọ nhụự dửừ lieọu Boọ nhụự Flash (4K x 16) $000 $FFF $0000 $001F $0020 $005F $0060 $025F $000 $1FF + Bộ nhớ EEPROM: được truy nhập qua các thanh ghi truy nhập EEPROM, cụ thể là: thanh ghi địa chỉ EEPROM [EEAR], thanh ghi dữ liệu EEPROM [EEDR] và thanh ghi điều khiển EEPROM [EECR], Để truy nhập EEPROM ta phải trải qua các trình tự sau: cho địa chỉ cần truy nhập (vào thanh ghi địa chỉ) -> đọc hay ghi (vào thanh ghi điều khiển) -> dữ liệu cần đọc hoặc ghi (qua thanh ghi dữ liệu). + Bộ nhớ SRAM: được truy nhập bằng cách sử dụng nhiều lệnh truy nhập dữ liệu trực tiếp hoặc gián tiếp qua các con trỏ X,Y,Z. Thời gian truy nhập bộ nhớ SRAM bằng 2 chu kỳ xung đồng hồ. 4.B ộ UART: Bộ truyền nhận UART: Việc truyền dữ liệu được khởi tạo bằng cách ghi dữ liệu vào thanh ghi dữ liệu I/O UART [UDR]. a.Bộ truyền UART : Sơ đồ khối: Quá trình truyền dữ liệu được khởi động bằng cách viết dữ liệu cần truyền đến thanh ghi dữ liệu I/O của bộ UART, gọi là thanh ghi UDR. Dữ liệu được truyền từ thanh ghi UDR đến thanh ghi dòch phát khi : • Một kí tự mới được viết đến UDR sau khi bit stop của kí tự trước đó đã được dòch ra ngoài. Thanh ghi dòch sẽ được nạp giá trò mới ngay lập tức. • Một kí tự mới được viết đến UDR trước khi bit stop từ kí tự trước đó được dòch ra ngoài. Thanh ghi dòch sẽ được nạp khi bit stop của kí tự hiện đang truyền được dòch ra ngoài. Nếu thanh ghi dòch phát 10(11)-bit là rỗng, dữ liệu được truyền từ thanh ghi UDR đến thanh ghi dòch. Khi đó Bit cờ thanh ghi dữ liệu rỗng UDRE(UART Data Register Empty) trong thanh ghi trạng thái UART, USR (UART Status Register) được set. Khi bit này được set (bằng 1) thì UART sẵn sàng nhận kí tự tiếp theo. Vào cùng thời điểm dữ liệu được truyền từ UDR đến thanh ghi dòch 10(11)-bit, bit 0 của thanh ghi dòch được xóa (bit start) và bit 9 hoặc 10 được set (bit stop). Nếu ta muốn truyền dữ liệu 9 bit (bit dữ liệu 9 có thể là bit kiểm tra chẵn /lẻ), thì bit CHR9 trong thanh ghi điều khiển UART: UCR (UART control register) phải được set. Và bit TXB8 trong thanh ghi UCR được truyền đến bit 9 trong thanh ghi dòch phát. Như vậy bit dữ liệu 9 phải được chứa trong bit TXB8 trong thanh ghi UCR. Theo nhòp đồng hồ tốc độ baud cung cấp cho thanh ghi dòch phát, bit start được dòch ra ngoài đầu tiên trên chân TXD. Theo sau là các bit dữ liệu, trong đó bit có trọng số thấp sẽ được dòch ra trước.Và cuối cùng là bit stop được dòch ra. Khi bit stop được dòch ra ngoài, thanh ghi dòch sẽ được nạp giá trò mới nếu như có bất kỳ dữ liệu nào được viết đến thanh ghi UDR trong suốt thời gian truyền. Trong thời gian nạp giá trò (load), bit UDRE được set (lên 1). Nếu không có dữ liệu mới trong thanh ghi UDR để truyền đi khi bit stop được dòch ra ngoài, cờ UDRE sẽ duy trì trạng thái set cho đến khi thanh ghi UDR được viết giá trò một lần nữa. Khi không có dữ liệu mới được ghi và bit stop đã ở trên chân TXD đúng một chiều dài bit, cờ phát hòan thành TXC (TX Complete) trong thanh ghi USR được set. Bit TXEN trong thanh ghi UCR khi set (bằng1) thì bộ phát UART mới được cho phép. Khi bit này bò xóa (trạng thái mặc đònh) thì bộ phát UART không được cho phép và chân TXD chỉ có thể sử dụng như mục đích I/O thông thường. Khi bit TXEN được set, bộ phát UART sẽ được kết nối đến chân TXD (PD1), và chân TXD trở thành chân ngõ ra, bất kể sự thiết lập hướng của bit DDD1 trong thanh ghi DDRD. b.Bộ nhận UART: Sơ đồ khối: Bộ nhận dữ liệu chứa khối logic front-end có nhiệm vụ lấy mẫu tín hiệu trên chân RXD với tần số lấy mẫu bằng 16 lần tốc độ baud. Khi đường truyền ở trạng thái nghỉ (mức logic 1), nếu có sự chuyển về "0" thì nó được xem là cạnh xuống của một bit start và tuần tự phát hiện bit start được khởi động. Vì bộ nhận chứa khối logic front-end lấy mẫu ở tần số bằng 16 lần tốc độ baud nên một bit sẽ được lấy mẫu 16 lần. Trong trường hợp này, khi có sự chuyển mức từ trạng thái nghỉ của đường truyền xuống mức "0", thì tuần tự phát hiện bit start sẽ là : nếu trong ba lần lấy mẫu 8, 9 và 10 của bit start mà hai (hoặc ba) lần là mức logic "1", thì bit start này bò lọai bỏ và được xem như một tín hiệu nhiễu, bộ nhận bắt đầu tìm sự chuyển trạng thái từ 1-đến-0 ( 1 là trạng thái sau của bit stop chớ không phải là bit dữ liệu) tiếp theo. Tuy nhiên, khi bit start được xem là hợp lệ, việc lấy mẫu của các bit dữ liệu theo sau bit start sẽ được thực hiện. Và các bit này cũng được lấy mẫu tại ba mẫu 8, 9 và 10. Nếu 2 hoặc ba lần giá trò logic là giống nhau thì giá trò đó được xem là giá trò hợp lý. Tất cả các bit được dòch vào thanh ghi dòch của bộ truyền giống như chúng đã được lấy mẫu. Khi bit stop được đưa vào bộ nhận, thì hai hoặc ba trong 3 lần lấy mẫu phải là 1 để nhận bit stop hợp lệ. Nếu trong ba lần lấy mẫu, mà nhiều hơn hai lần là mức logic "0", thì cờ lỗi khung truyền FE (Framing Error) trong thanh ghi trạng thái UART( USR) được set (bằng 1). Trước khi đọc dữ liệu từ thanh ghi dữ liệu UART (UDR), người sử dụng nên kiểm tra bit FE để phát hiện lỗi khung truyền. Có hoặc không có giá trò bit stop được phát hiện là hợp lệ thì dữ liệu cũng sẽ được truyền đến UDR và cờ nhận hoàn thành RXC được set. Thanh ghi UDR thực chất là hai thanh ghi tách biệt về mặt vật lý, một cho dữ liệu truyền và một cho dữ liệu nhận. Khi thanh ghi UDR được đọc thì thanh ghi dữ liệu nhận (the Receive Data register) được truy cập, ngược lại, khi thanh ghi UDR được ghi thì thanh ghi dữ liệu phát (The transmit data register) được truy cập. Nếu ta muốn truyền dữ liệu 9 bit, thì bit CHR9 trong thanh ghi điều khiển UART (UCR) phải được set, và bit RXB8 trong thanh ghi USR sẽ được nạp vào bit 9 trong thanh ghi dòch phát khi dữ liệu được truyền đến thanh ghi UDR. Bit dữ liệu thứ 9 này sẽ được nhận tại bit RXB8 trong thanh ghi USC. c.ĐIỀU KHIỂN UART : Thanh ghi dữ liệu I/O UART : UDR (UART I/O Data Register) Thanh ghi UDR thực chất là hai thanh ghi riêng lẻ về mặt vật lý nhưng cùng chia sẻ đòa chỉ I/O giống nhau. Khi viết đến thanh ghi này thì thanh ghi dữ liệu truyền UART được truy cập. Còn khi đọc thanh ghi này thì thanh ghi dữ liệu nhận UART được truy cập. Thanh ghi trạng thái UART : USR (UART Status Register) Đây là thanh ghi chỉ cho phép sự truy cập đọc, cung cấp thông tin về trạng thái UART. Thanh ghi điều khiển UART: UCR (UART Control Register): Thanh ghi tạo tốc độ baud : UBRR Đây là thanh ghi 8 bit có thể đọc/viết và được sử dụng để tạo ra tốc độ baud cho UART như miêu tả trước đó. 5.Bộ so sánh Analog : Bộ so sánh Analog: so sánh các giá trị điện áp ở lối vào AIN0 (AC+) và AIN1 (AC-) với nhau. Nếu như điện áp lối vào AIN0 lớn hơn AIN1 thì lối ra bộ so sánh Analog (AC0) được đặt lên mức “1”. Lối ra này có thể sử dụng cho bộ Timer/Counter 1 để Trigger hoặc xố ngắt bộ so sánh Analog. . TÌM HIỂU VỀ AVR I.Tổng quan về AVR : 1. Giới thiệu AVR: +Đây là một lọai Vi điều khiển có nhìều tính. thể tìm kiếm khá dễ dàng trên mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống. Sơ đồ khối của vi điều khiển: 2.Sơ lược về

Ngày đăng: 13/08/2013, 08:03

TỪ KHÓA LIÊN QUAN

w