Thông báo! Chúng tôi đang cố gắng khôi phục lại các link download, các bạn vui lòng tải lại sau (dự kiến 10/12/2022 hoàn thành). Cảm ơn các bạn!

Hướng dẫn mạch nạp vi điều khiển AVR Atmega 16/32

TuanPi | 7.6.15 | | |
.

Bài viết này 7segone sẽ hướng dẫn cách nạp chương trình cho Atmega16 và 32 với mạch nạp USBISP và phần mềm nạp Progisp bằng hình ảnh, giúp bạn có thể thực hiện ngay trong vài thao tác. Đồng thời hướng dẫn chi tiết về Fuse Bits.
Mạch nạp USBISP
Mạch nạp USBISP
Điều khác nhau cơ bản giữa ATmega8 và ATmega16(hoặc 32) là:

  • ATmega8 có WTDON ( WTDON luôn bằng 1 khi nạp chương trình )
  • ATmega16 ( hoặc 32 ) có JTAGEN (JTAGEN luôn bằng 1 khi nạp chương trình )

Phần mềm hỗ trợ

  • Driver của Windows XP: Download
  • Driver của Windows 7: Download
  • Chương trình nạp Progisp168 mới nhất: Download
Lưu ý: Driver cho USBasp : ( Các phiên bản mới mạch nạp hỗ trợ chuẩn HID nên không cần Driver), Các bạn down Driver tương thích với máy tính của mình và chương trình nạp Progisp về máy và việc cài đặt chúng rất dễ dàng.

Cách nạp chương trình cho ATmega16, ATmega32

Về cơ bản cách nạp cho ATmega16 và ATmega32 là giống nhau , trong bài viết này 7segone sẽ lấy ATmega16 là ví dụ:

Chú ý: Các ô vuông màu đỏ là những phần quan trọng.
Các chữ và ô vuông các màu còn lại là phần giải thích cho mọi người dễ hiểu.

1 Chạy chương trình nạp Progisp.
2 Chọn chíp
  • Chương trình nhận mạch nạp USBISP.
  • Chọn loại chip ATmega16 ( Nếu là ATmega32 thì bạn chọn loại chip ATmega32, còn về sau giống nhau)
3 (Mang tính chất giải thích)
Các thông số quan trọng khi nạp chương trình cho ATmega16 (Thông số quan trọng chương trình sẽ tự độngTích (V)khi bạn chọn chip tương ứng , bạn không cần thay đổi gì cả (Bên dưới là giải thích) )
4 Xóa chip ( Xóa chương trình cũ có trong chip ).
5 Cấu hình "Fuse And Lock Config" của ATmega16. ( Phần này rất quan trọng với AVR , nếu không rõ sẽ dẫn đến Fuse Bits => Lỗi Chip )

B5.1: Defaut : Trở về cấu hình ban đầu

B5.2: Read : Đọc Cấu Hình Fuse Và Lock Của Chip.

B5.3: JTAGEN : JATGEN luôn để là 1 khi cấu hình " Fuse And Lock Config " cho ATmega16.(JTAGEN =1: Tắt JTAGEN ) ( Note: Để sử dụng PORTC xem datasheet)

B5.4:Cấu hình Tần Số Clock. ( Trong code của bạn sử dụng tần số nào thì bạn phải cấu hình đúng như vậy )

B5.4.1: CKSEL0=1 : Sử dụng dao động nội 1 MHz

B5.4.2 : CKSEL1=1 : Sử dụng dao động nội 2Mhz

B5.4.3 : CKSEL0=1 và CKSEL1=1 : Sử dụng dao động nội 4Mhz

B5.4.4 : CKSEL2=1 : Sử dụng dao động nội 8MHz

B5.4.5: CKSEL0=CKSEL1=CKSEL2=CKSEL3=1 : Sử dụng bộ dao động
ngoài ( Thạch Anh)

B 5.5 : Write: Cấu hình tần số Thạch Anh từ chương trình vào chip.
Trong code của mình,mình sử dụng tần số Thạch Anh 1MHz nên mình chọn CKSEL0=1 và JTAGEN=1 sau đó là Write :

6 Nạp chương trình FLASH.

  1. Click Load Flash
  2. Tìm file hex trong chương trình của bạn
  3. Open thôi


7 Nạp chương trình Eeprom ( Nếu có )

  1. Click Load Eeprom
  2. Tìm file eep trong chương trình của bạn
  3. Open thôi


8 Load chương trình.
Click Auto : để load chương trình bạn vừa chọn.

9 Hoàn thành.
Khi có dòng chữ : Erase,Write Flash,Verify Flash,Verify Eeprom,Successfully done tức là bạn đã nạp xong chương trình.

Lên đầu trang