Đôi khi chúng ta có file nạp cho chip .hex, hoặc các bạn làm xong một dự án trên board Arduino, các bạn không cần bootloader (nhất là chíp Atmega8), và các bạn muốn phát triển trên một bảng mạch riêng thì lúc đó ta sẻ nạp trực tiếp file .hex cho chip, và hôm nay mình sẻ hướng dẩn các bạn nào chưa biết một cách nạp file .hex (firmware) đơn giản và an toàn. Có rất nhiều cách nạp firmware các bạn có thể tìm hiểu trên Internet.
Xin chào các bạn !
Mình sẽ hướng dẫn các bạ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.
Hạn chế tối đa cho các bạn chưa biết về Fuse Bits.
Đ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 )
1. Chuẩn Bị
- Firmware tức file có đuôi .hex
- Mạch nạp AVR (có rất nhiều mạch ở đây mình dùng mạch 89/AVR USBasp/USBisp).
- Chip cần nạp (chip này cần có giao tiếp SPI). Ở đây mình Attiny13 làm ví dụ.
- Phần mềm ICProgV2_tcl47
2. Kết nối
Các bạn nhìn trên thân USBisp có sơ đồ chân
và xem data trên chip cần nạp ở đây mình lấy Attiny13 làm ví dụ
các bạn kết nối các chân VCC,GND, MISO, MOSI, SCK, RST giửa mạch nạp và chíp, cẩn thận chân VCC và GND kẻo mua chip mới.
3. Bắt đầu
Bước 1: Chạy chương trình nạp Progisp
Bước 2
- Chương trình nhận mạch nạp USBISP.
- Chọn loại chip.
Bước 3: Các thông số quan trọng khi nạp chương trình
(Thông số quan trọng chương trình sẽ tự động Tí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) )
- Chip Erase: Cho phép xóa chip
- Programe Flash: Nạp file Hex Cho Chip
- Verify Flash: Kiểm tra lỗi của chương trình Flash
- Data Reload: Tự động cập nhật dữ liệu khi có sự thay đổi file Hex, Eeprom
- Programe EEPROM: Nạp file Eeprom Cho Chip (nếu có)
- Verify EEPROM: Kiểm tra lỗi của chương trình EEPROM
Bước 4: Xóa chip (xóa chương trình cũ có trong chip)
Bước 5: Nạp chương trình FLASH
- Click Load Flash
- Tìm file hex trong chương trình của bạn
- Open thôi
Bước 7 : Nạp chương trình Eeprom (Nếu có)
- Click Load Eeprom
- Tìm file .eep trong chương trình của bạn
- Open thôi
Bước 8 : Load chương trình.
Click Auto: để load chương trình bạn vừa chọn.
Bước 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.
CHÚ Ý!
Khi các bạn Click vào button ... thì sẽ đưa đến bảng cấu hình tần số hoạt động của chíp (fuse bit)
Các bạn nên cẩn thận vì nếu cấu hình sai thì chíp sẻ khó cứu.
Sau đây là cách fuse bit cho chip Atmega8
1. Defaut
Trở về cấu hình ban đầu.
2. Read
Đọc tần số Thạch Anh từ chip vào chương trình.
3. WTDON
WTDON luôn để là 1 khi cấu hình "Fuse And Lock Config" cho ATmega8.
(WTDON =1 : Chống Reset chip )
4. Cấu hình Thạch Anh
(Trong code của bạn sử dụng tần số Thạch Anh nào thì bạn phải cấu hình đúng như vậy )
4.1. CKSEL0=1
Sử dụng Thạch Anh 1 MHz
4.2. CKSEL1=1
Sử dụng thạch anh 2Mhz
4.2. CKSEL0=1 và CKSEL1=1
Sử dụng thạch anh 4Mhz
4.3. CKSEL2=1
Sử dụng thạch anh 8MHz
4.4. CKSEL0=CKSEL1=CKSEL2=CKSEL3=1
Sử dụng Thạch Anh ngoài
5. Write
Cấu hình tần số Thạch Anh từ chương trình vào chip.( ở đây lấy ví dụ là 1MHz nội)
Chúc các bạn thành công!
Nhận xét