Giới Thiệu Về ATmega16

Giới Thiệu Về ATmega16

Tổng quan

Atmega16 là bộ vi điều khiển công suất thấp 40 chân được phát triển bằng công nghệ CMOS.

CMOS là một công nghệ tiên tiến được sử dụng chủ yếu để phát triển các mạch tích hợp. Nó có mức tiêu thụ điện năng thấp và khả năng chống nhiễu cao.

Atmega16 là bộ điều khiển 8-bit dựa trên kiến trúc RISC (Reduced Instruction Set Computing) tiên tiến AVR. AVR là dòng vi điều khiển được Atmel phát triển vào năm 1996.

Nó là một máy tính chip đơn đi kèm với CPU, ROM, RAM, EEPROM, bộ định thời, bộ đếm, ADC và bốn cổng 8-bit được gọi là PORTA, PORTB, PORTC, PORTD trong đó mỗi cổng bao gồm 8 chân I / O.

Atmega16 có các thanh ghi tích hợp được sử dụng để tạo kết nối giữa CPU và các thiết bị ngoại vi bên ngoài. CPU không có kết nối trực tiếp với các thiết bị bên ngoài. Nó có thể nhận đầu vào bằng cách đọc thanh ghi và đưa ra đầu ra bằng cách ghi thanh ghi.

Atmega16 đi kèm với hai bộ định thời 8 bit và một bộ định thời 16 bit. Tất cả các bộ định thời này có thể được sử dụng làm bộ đếm khi chúng được tối ưu hóa để đếm tín hiệu bên ngoài.

Hầu hết các thiết bị ngoại vi cần thiết để chạy các chức năng tự động đều được tích hợp trong thiết bị này như ADC (bộ chuyển đổi analog sang kỹ thuật số), bộ so sánh tương tự, USART, SPI, giúp tiết kiệm hơn so với bộ vi xử lý yêu cầu thiết bị ngoại vi bên ngoài thực hiện các chức năng khác nhau.

Atmega16 đi kèm với 1KB RAM tĩnh là một bộ nhớ dễ bay hơi, tức là lưu trữ thông tin trong thời gian ngắn và phụ thuộc nhiều vào nguồn điện liên tục. Trong khi đó 16KB bộ nhớ flash, còn được gọi là ROM, cũng được tích hợp trong thiết bị với bản chất không bay hơi và có thể lưu trữ thông tin trong thời gian dài và không bị mất bất kỳ thông tin nào khi nguồn điện bị ngắt.

Atmega16 hoạt động trên tần số tối đa 16MHz, các lệnh được thực hiện trong một chu kỳ máy.

Kiến trúc

Kiến trúc của Atmega16 dựa trên Kiến trúc Harvard và đi kèm với các bus và bộ nhớ riêng biệt. Các lệnh được lưu trữ trong bộ nhớ chương trình.

CPU

CPU giống như bộ não của vi điều khiển giúp thực hiện một số lệnh. Nó có thể xử lý các ngắt, thực hiện các phép tính và điều khiển các thiết bị ngoại vi với sự trợ giúp của các thanh ghi. Atmega16 đi kèm với hai bus gọi là bus hướng dẫn và bus dữ liệu. CPU đọc lệnh trong bus hướng dẫn trong khi bus dữ liệu được sử dụng để đọc hoặc ghi dữ liệu tương ứng. CPU chủ yếu bao gồm bộ đếm chương trình, các thanh ghi mục đích chung, stack pointer, thanh ghi lệnh và bộ giải mã lệnh.

ROM

Chương trình điều khiển được lưu trữ trong ROM, còn được gọi là bộ nhớ flash lập trình không bay hơi. Bộ nhớ flash có độ phân giải ít nhất 10.000 chu kỳ ghi / xóa. Bộ nhớ flash chủ yếu được chia thành hai phần được gọi là phần flash ứng dụng và phần flash booth. Chương trình của bộ điều khiển được lưu trữ trong phần flash ứng dụng. Trong khi phần flash booth được tối ưu hóa để hoạt động trực tiếp khi bộ điều khiển được bật nguồn.

RAM

SRAM (bộ nhớ truy cập ngẫu nhiên tĩnh) được sử dụng để lưu trữ thông tin tạm thời và đi kèm với các thanh ghi 8-bit, giống như một RAM máy tính thông thường được sử dụng để cung cấp dữ liệu thông qua thời gian chạy.

EEPROM

EEPROM (Bộ nhớ chỉ đọc có thể xóa bằng điện tử) là bộ nhớ không thay đổi được sử dụng như một bộ lưu trữ thời gian dài. Nó không liên quan đến việc thực thi chương trình chính. Nó được sử dụng để lưu trữ cấu hình của hệ thống và các thông số thiết bị tiếp tục hoạt động trong thiết lập lại bộ xử lý ứng dụng. EEPROM đi kèm với chu kỳ ghi giới hạn lên đến 100.000 trong khi chu kỳ đọc là không giới hạn. Trong khi sử dụng EEPROM, hãy viết các lệnh tối thiểu theo yêu cầu, để bạn có thể nhận được lợi ích từ bộ nhớ này trong thời gian dài hơn.

Ngắt

Ngắt được sử dụng cho trường hợp khẩn cấp đặt chức năng chính ở trạng thái chờ và thực hiện các lệnh cần thiết tại thời điểm đó. Khi ngắt được gọi và thực thi, mã sẽ chuyển trở lại chương trình chính.

Module I/O và kỹ thuật số

Module I / O kỹ thuật số được sử dụng để thiết lập giao tiếp kỹ thuật số giữa bộ điều khiển và các thiết bị bên ngoài. Trong khi module I / O analog được sử dụng để truyền thông tin analog. Bộ so sánh analog và ADC thuộc loại module I / O analog.

Bộ định thời/Bộ đếm

Bộ định thời được sử dụng để tính toán tín hiệu bên trong bộ điều khiển. Atmega16 đi kèm với hai bộ định thời 8 bit và một bộ định thời 16 bit. Tất cả bộ định thời này hoạt động như một bộ đếm khi chúng được tối ưu hóa cho các tín hiệu bên ngoài.

WDT (Watch Dog Timer)

Watchdog timer là một bổ sung đáng chú ý trong bộ điều khiển này được sử dụng để tạo ngắt và đặt lại bộ định thời. Nó đi kèm với nguồn CLK riêng biệt 128kHz.

Giao tiếp nối tiếp

Atmega16 đi kèm với các đơn vị USART và SPI được sử dụng để phát triển giao tiếp nối tiếp với các thiết bị bên ngoài.

Sơ đồ chân

Atmega16 được ưa thích hơn các bộ vi điều khiển khác như Atmel 8051 vì nó có khả năng thực thi các lệnh nhanh hơn nhiều và bao gồm bộ xử lý RISC đã được sửa đổi.

Nó có một flash tích hợp đi kèm với các tính năng của một bộ nạp khởi động. Nó có ADC, SPI, PWM và EEPROM 10-bit được tích hợp sẵn.

Atmega16 có 40 chân, mỗi chân được sử dụng để thực hiện một nhiệm vụ cụ thể, có tổng cộng 32 chân I / O và bốn cổng, mỗi cổng bao gồm 8 chân I / O.
PORTA = 8 chân (Chân 33-40)
PORTB = 8 chân (Chân 1-8)
PORTC = 8 chân (Chân 22-29)
PORTD = 8 chân (Chân 14-21)

PORTA: Các chân từ 33 đến 40 thuộc PORTA. Nó hoạt động giống như đầu vào analog cho bộ chuyển đổi A / D. Tuy nhiên, trong trường hợp không có bộ chuyển đổi A / D, PORTA được sử dụng làm cổng I / O hai chiều 8 bit. Nó đi kèm với điện trở kéo bên trong.

PORTB: Các chân từ 1 đến 8 thuộc về PORTB. Đây là các chân hai chiều I / O. Cổng này cũng bao gồm các điện trở kéo lên bên trong.

PORTC: PORTC là cổng I / O hai chiều bao gồm 8 chân. Chân từ 22 đến 29 thuộc về cổng này, tương tự như các cổng khác, nó đi kèm với điện trở kéo bên trong.

PORTD: Chân từ 14 đến 21 thuộc về cổng này. Đây là cổng hai chiều trong đó mỗi chân có thể được sử dụng làm chân đầu vào hoặc đầu ra. Tuy nhiên, có các tính năng bổ sung liên quan đến cổng này như ngắt, giao tiếp nối tiếp, bộ hẹn giờ và PWM.

Reset: Chân 9 là chân reset mức thấp đang hoạt động. Xung mức thấp dài hơn độ dài xung tối thiểu sẽ tạo ra reset. Các xung ngắn không có khả năng tạo ra reset.

VCC: Chân 10 là chân cấp nguồn cho bộ điều khiển này. Nguồn điện của cần phải có 5 V để đặt bộ điều khiển này trong điều kiện đang chạy. 

GND: Chân 11 là chân nối đất.

AREF: Chân 32 là chân tham chiếu tương tự chủ yếu được sử dụng cho bộ chuyển đổi A / D .

AVCC: Chân 30 là AVCC là chân điện áp cung cấp cho PORTA và ADC. Nó được kết nối với VCC thông qua bộ lọc thông thấp khi có ADC. Tuy nhiên, trong trường hợp không có ADC, AVCC được kết nối bên ngoài với VCC. 

Chân 12 & 13: Một bộ dao động tinh thể được kết nối với các chân này. Atmega16 hoạt động ở tần số bên trong 1MHZ; bộ dao động được thêm vào để tạo ra xung clock và tần số cao.

Phần mềm CodeVision

CodeVisionAVR – là một môi trường phát triển tích hợp phần mềm cho vi điều khiển Atmel AVR. Nó cung cấp sự hỗ trợ rộng rãi cho các thiết bị AVR và tạo ra một đoạn mã nhỏ gọn và hiệu quả.

Cách cài đặt cũng như sử dụng, mình sẽ đề cập trong bài viết sau.

Mạch nạp

Mạch nạp AVR ISP
Đế nạp T49 AVR ATmega16

Ứng dụng

  • Thiết bị y tế
  • Tự động hóa nhà
  • Những hệ thống nhúng
  • Project Arduino
  • Được sử dụng trong ô tô và tự động hóa công nghiệp
  • Thiết bị gia dụng và hệ thống an ninh
  • Thiết bị kiểm soát nhiệt độ và áp suất

Đinh Xuân Hậu

Đinh Xuân Hậu Trường: Đại học Sư phạm Kỹ thuật Hưng Yên Khoa: Công nghệ Thông tin Bộ môn: Hệ thống Thông tin

Đăng nhận xét

Mới hơn Cũ hơn