- Vi điều khiển Atmega AVR có công suất cao, tiêu thụ năng lượng thấp, cấu trúc RISC tiến với 130 lệnh với chu kỳ thực hiện đơn xung lớn nhất, 32 thanh ghi đa mục đích 8 bít, 16 MIPS tại tần số đặt 16 MHz, bộ nhân 2 chu kỳ On-chip, Power-on Reset và Brown-out Detection có thể lập trình, bộ dao động RC bên trong có thể lập trình các mức, 5 Mode ngủ (Idle, ADC Noise Reduction, Power-save, Power-down và Standby), có khả năng Reset khi bật nguồn, khả năng dò lỗi Brown out lập trình được, có nguồn ngắt trong và ngắt ngoài. - Cốt lõi của AVR là sự kết hợp các câu lệnh phong phú với 32 thanh ghi đa mục đích. Tất cả 32 thanh ghi đều trực tiếp kết nối tới bộ xử lý logíc số học - Arithmetic Logic Unit (ALU), cho phép truy nhập 2 thanh ghi độc lập trong một câu lệnh đơn được thực hiện trong một chu kỳ xung. Kết quả của cấu trúc trở nên gọn nhẹ, hiệu quả hơn, trong khi vẫn đạt được thời gian xử lý nhanh hơn gấp 10 lần các vi điều khiển CISC thông thường khác. - 8K byte Flash trên chíp có thể lập trình với các khả năng đọc trong khi ghi (Read-While-Write), 512 byte EEPROM, 1K byte SRAM, 23 đường vào ra đa mục đích, 32 thanh ghi đa mục đích, 3 Timer/Counter rất linh hoạt với các compare mode, các ngắt trong và ngắt ngoài, một bộ USART nối tiếp có thể lập trình được, ghép nối nối tiếp 2 dây định hướng byte, 6 kênh ADC (8 kênh với loại TQFP và MLF packages) trong đó 4 (hoặc 6) kênh có độ chính xác 10-bit và 2 kênh có độ chính xác 8-bit, Watchdog Timer có thể lập trình được với bộ dao động bên trong, một cổng nối tiếp SPI và 5 mode tiết kiệm năng lượng có thể lựa chọn mềm. - Idle mode dừng CPU trong khi vẫn cho phép SRAM, Timer/Counters, cổng SPI, và hệ thống ngắt tiếp tục chức năng của chúng. - Power-down mode tiết kiệm nội dung thanh ghi, nhưng hạn định bộ dao động, không cho phép tất cả các chức năng khác của chíp được hoạt động cho đến khi ngắt tiếp theo hoặc Reset phần cứng xuất hiện. - Trong Power-save mode, timer không đồng bộ tiếp tục chạy, cho phép sử dụng để duy trì thời gian nền, trong khi các phần còn lại của thiết bị được ngủ. - ADC Noise Reduction mode dừng CPU và tất các module I/O ngoại trừ timer không đồng bộ và ADC để tối thiểu hóa nhiễu mạch trong suốt quá trình ADC trong chuyển đổi. - Trong Standby mode, bộ dao động thạch anh/ resonator được phép chạy trong khi các phần còn lại của thiết bị được ngủ. Điều này cho phép start-up rất nhanh cùng với hiệu quả tiêu thụ ít năng lượng. - Thiết bị được sản suất áp dụng công nghệ tích hợp bộ nhớ non-volatile cao của Atmel. Bộ nhớ chương trình Flash này có thể lập trình thông qua ghép nối tiếp SPI bằng chương trình lập trình bộ nhớ non-volatile riêng, hoặc bằng một chương trình boot on – chip, chạy trong AVR core. Chương trình boot có thể sử dụng bất kỳ một ghép nối nào để download chương trình ứng dụng trong bộ nhớ Flash. Phần mềm trong Boot Flash sẽ tiếp tục chạy trong khi các phần sử dụng Flash vẫn được update, hỗ trợ cho hoạt động đọc trong khi ghi (Read-While-Write). - Bằng việc kết hợp với một CPU 8-bit RISC với bộ nhớ Flash tự lập trình trong hệ thống trên một chíp, Atmel ATmega8 là một vi điều khiển cực mạnh, thỏa mãn yêu cầu về một bộ vi điều khiển với độ linh hoạt cao và đem lại lợi nhuận lớn với rất nhiều các ứng dụng điều khiển tác động nhanh. - ATmega8 AVR cũng hỗ trợ đầy đủ về lập trình và phát triển các tool hệ thống, bao gồm bộ dịch C, macro assemblers, bộ mô phỏng/gỡ rối chương trình, In-Circuit Emulators, và evaluation kits. Nguồn: http://www.tapchicongnghiep.vn/socuo...7/5/21710.ttvn Tham khảo đầy đủ hơn: http://en.wikipedia.org/wiki/Atmel_AVR 1 - Các loại AVR: Cơ bản họ AVR có thể chia làm 4 nhóm sau: • tinyAVR — the ATtiny series o 1–8 kB program memory • megaAVR — the ATmega series o 4–256 kB program memory • XMEGA — the ATxmega series o 16–384 kB program memory • Atmel At94k FPSLIC (Field Programmable System Level Integrated Circuit), an AVR core on-die with an FPGA. The FPSLIC uses SRAM for the AVR program code, unlike all other AVRs. Partly due to the relative speed difference between SRAM and flash, the AVR core in the FPSLIC can run at up to 50MHz. ATUC3A0xxxx (giá trị xxxx thể hiện dung lượng flash của VĐK) Ngoài ra còn có: AT32UC3A0256 ATUC3A0xxxx Các dòng AVR32 hiện tại chưa thấy bán trên thị trường tuy nhiên đây là dòng vđk 32bit khá mạch với nhiều tính năng mới : Tích hợp USB , công nghệ xử lý tiếng nói (AC97) , tích hợp bộ RTC -thời gian thực , thêm giao thức ethernet ... Chi tiết hơn dòng vi điều khiển 8bit MEGA AVR ATmega8 8kB 512B 1024B 0 - 16MHz 4.5 - 5.5V TINY AVR device Flash EEPROM SRAM Speed Volts LCD AVR Device Flash EEPROM SRAM Speed Volts CAN AVR AT90CAN128 128kB 4096B 4096B 0 - 16MHz 2.7 - 5.5V Phần trên trích từ luồng AVR trên VAGAM (Tác giả: gioidang1985) 2 - Ứng dụng của AVR bây giờ như thế nào ? (Được dùng chủ yếu ở lĩnh vực nào ?) - LCD controller, Motor control, USB controller, advanced PWM, CAN etc. - Application Notes Atmel (http://www.atmel.com/dyn/products/ap...?family_id=607) - Motor Control (http://www.atmel.com/products/AVR/mc/?family_id=607) - USB Connectivity (http://www.atmel.com/products/AVR/usb/?family_id=607) - Automotive Applications (http://www.atmel.com/products/AVR/usb/?family_id=607) - Remote Access Control (http://www.atmel.com/products/AVR/rac/?family_id=607) Học AVR để làm gì ? Hồi đó bọn mình học môn Vi xử lý - Vi đều khiển, thầy dạy họ 8051, nhưng thầy bảo họ AVR mạnh hơn và khuyên lớp tìm hiểu về họ AVR để ứng dụng trước hết vào các project môn học và các đồ án môn học và tương lai là phục vụ cho nghề nghiệp. 3 - Khi cần học về 1 loại AVR cụ thể, thì nên bắt đầu từ nguồn tài liệu nào ? Các trang help, manual, datasheet như thế nào thì hiệu quả ? Atmel nhà của nàng AVR: thường xuyên ghé nhà nàng nhé http://www.atmel.com/products/AVR/ - Tại trang chủ các bạn sẽ tìm được rất nhiều thứ: từ datasheet, trình biên dịch và trình soạn thảo (có Help đính kèm), manual, Application Notes … - Nghe ngóng xem thiên hạ thỏa luận về nàng như thế nào: - Từ 2 luồng thông tin trên có thể có thể chọn cho mình 1 con trong họ AVR và các công cụ, tài liệu liên quan để làm việc rùi. Các bạn bổ sung thêm giúp mình nhé. Trình biên dịch và soạn thảo • Hiện nay có nhiều loại trình biên dịch cho AVR trên các nền tảng Windows cũng như Linux. Một số trình biên dịch trên nền tảng Windows: http://www.atmel.com/dyn/products/to...ily_id=607#798 AVRStudio4 (http://www.atmel.com/dyn/products/to...p?tool_id=2725) Ưu điểm: free, update thường xuyên bởi Atmel, viết được code ASM và C (cài thêm WinAVR), tài liệu, thư viện hổ trợ nhiều, có thể tìm tại trang của Atmel hoặc các forum AVR. CodeVisionAVR (http://www.hpinfotech.ro/index.html) Ưu điểm: dễ dùng (tự sinh code khi chọn CodeWizardAVR) và dễ học (nền tảng là ngôn ngữ C), tài liệu cũng nhiều. Ở Việt Nam số người dùng món này khá nhiều nên khi gặp khó khăn dễ tìm được sự giúp đở. Nhược điểm: Có phí. BascomAVR (http://www.mcselec.com/) mikroBasic PRO for AVR (http://www.mikroe.com/en/compilers/mikrobasic/avr/) mikroC PRO for AVR (http://www.mikroe.com/en/compilers/mikroc/avr/) Ưu điểm: món này nền tảng cũng là ngôn ngữ C (chuẩn ANSI) nghe nói hổ trợ mạnh lắm, help, manual đọc rất hay, tài liệu và thư viện trên trang www.mikroe.com rất đầy đủ và rất hay. Nhược điểm: có phí, do nó hổ trợ thư viện mạnh nên không cần hiểu sâu phần cứng cũng viết được. WinAVR (http://winavr.sourceforge.net/) Trình biên dịch và soạn thảo trên nền tảng Linux: Sẽ cập nhật sau. Mạch nạp • Hiện tại mình biết một số mạch nạp: - AVR ISP Programmer Cable (mạch nạp các chíp AVR của Atmel qua cổng COM). - STK500 HV-Adapter Mini (hỗ trợ nạp các chíp AVR thông dụng với chế độ Parallel (PP/HVSP mode). - AVR 910 USB Programmer Cable, AVR STK500 USB Programmer (mạch nạp qua cổng USB). Nhờ các bạn bổ sung thêm nhé. • Giá cả: - AVR ISP Programmer Cable (100K) • Ưu nhược điểm của từng loại mạch nạp: Dùng mạch nạp cổng USB là tiện lợi nhất, tốc độ cao nữa, và máy nào cũng có cổng USB hết, máy Laptop bây giờ không còn cổng COM và LPT nữa rùi. CodevisionAVR v.s AVRstudio Bài viết của BOW tại diển đàn khongtenmien Theo tình hình BOW tui thấy các bạn làm quen với avr thường xài chương trình codevision để lập trình. hầu hết ở việt nam phần mềm codevison rất phổ biến, rất hiếm ai lập trình avr bằng AVRstudio (winavr). Sau đây là một vài ưu khuyết điểm khi xài 2 chương trình này Codevision: - Đây là chương trình do hãng hpinfortech viết, hỗ trợ lập trình vi điều khiển avr bằng ngôn ngữ C. đây là chương trình rất phổ biến ở việt nam (nhà nhà codevison người người codevision) - Chương trình này có 2 phiên bản, một phiên bản standard và một phiên bản light, giá của 2 phiên bản này rất khác nhau. Phiên bản light có giá 60EUR còn phiên bản standard có giá 150UER. đối với những nước phát triển, có bảo vệ bản quyền và người dùng cuối có ý thức về vấn đề sở hữu trí tuệ cao thì đây là giá khá cao. còn khi tới việt nam thì .... nó đã trở thành "vô giá" - BOW tui hồi mới tiếp cận với AVR cũng đã xài chương trình này (và tất nhiên là xài Cr*** ). - Nó hỗ trợ cho người dùng cuối rất nhiều, giúp chung ta dễ dàng tiếp xúc với avr trong "thời kỳ đồ đá". nhưng bù lại, chung ta phải phụ thuộc vào nó rất nhiều và nếu sa đà vô chức năng codeWizard của nó thì sẽ khó có thể hiểu cụ thể được sức mạnh của avr - Codevision cũng hỗ trợ xuất ra files COF để debug tren avrstudio. cũng cho phép tao chèn những dòng lệnh ASM trong môi trường C - Sử dụng chương trình nạp AVRbaster của chính chương trình codevision, tương thíc với mạch nạp AVR910 free mà anh chị em nhà ta hay sử dụng - Về tài liệu tiếng việt thì chương trình này chiếm đại đa số AVRStudio (WinAVR) - Đây là chương trình do chính hãng Atmel viết và phân phối, dành cho riêng dòng sản phẩm AVR của atmel - Sản phẩm chính hãng luôn được cập nhật bản vá lỗi và các dòng avr mới - Đây lại là sản phẩm được phân phối Free nên rất được phổ biến trên thế giới (trừ việt nam - có lẽ người việt chúng ta xài hàng cra** quen rồi nên khi gặp hàng chính hãng vừa rẻ vừa free lại chê ) - Nói cho vui vậy thôi, nhưng bow tui cũng ko biết lý do tại sao ở việt nam ko phổ biến chương trình này cho lắm (cũng có thể do atmel chê thị trường việt nam nhỏ quá nên ko tấn công vô chăng - điều này thì khác hoàn toàn so với PIC của microchip hén ). - Đây cũng chính là chương trình dùng để debug cho avr luôn (nếu bạn sử dụng codevison nếu muốn debug thì vẫn phải dùng thằng avrstudio này) - Chạy được trên nền linux (điều này là bow tui khoái nhất đóa) - Chương trình hỗ trợ 2 ngôn ngữ chính để lập trình cho avr, asm và c. điểm khác biệt cơ bản là thằng codevision sử dụng C standard làm nền còn thằng avrstudio có sử dụng thêm một vài đặc tính của C++ để mềm dẻo hơn (thực ra C và C++ cũng gân giống nhau) - Nếu mua những Kit học avr của chính atmel phân phối (STK500, STK600 ...) nữa thì thằng avrstudio này ko thể chê vô đâu được. (đôi khi cũng có lỗi, nhưng được fix và update rất nhanh) - Mới đầu làm quen sẽ hơi khó khăn, nhưng sau này sẽ giúp ta hiểu rất rõ về cấu trúc của AVR cũng như tập lệnh của nó - Rất nhiều tài liệu, code cũng như thư viện được liệng đầy trên mạng - Tương thíc với mạch avr910 Free mà anh em ưa sử dụng luôn - Nạp chương trình bằng Avrprog của chính hãng atmel (mặc định cài đặt avrstudio là có). chương trình nạp này nhanh gấp mấy trăm lần chương trình nạp của codevison - Khi viết code xong nhấn ctrl+F7 là debug luôn, khỏi phải lằng nhằng chuyển đôi - Điều quan trọng nhất là nó FREE và BOW tui rất khoái thằng này Trên đây là một vài chính kiến của Bow tui về codevision và avrstudio, ngoài 2 phần mềm này ra còn rất nhiều phần mềm khác sử dụng ngôn ngữ C để lập trình cho vi điều khiển avr, có soft thì free, cũng có soft tính phí. Thực ra thì thằng avrstudio nó chỉ hỗ trợ asm thôi, nếu ko cài thêm bộ Winavr. Nhưng để cho dễ hiểu đối với các bạn mới biết avr Bow tui nói đơn giản, (nếu pro nào đọc bài viết này cũng xin mạn phép bỏ qua cho) còn đối với các bạn newbie thì chỉ cần hiểu là avarstudio là được, chúng ta sẽ đi sâu hơn vào trong phần sau. |