Nạp chương trình cho AVR Atmega với mạch nạp USBISP

Sau khi viết chương trình cho vi điều khiển, mô phỏng chỉ là bước đệm nhằm kiểm tra tính năng của chương trình. Hiện nay có rất nhiều loại mạch nạp, từ đơn giản rẻ tiền đến phức tạp với giá thành cao. Cụ thể với trường hợp sử dụng Atmel Studio, người ta có thể sử dụng mạch nạp AVRisp mkII, Dragon hay JTAGICE. Chúng hỗ trợ nhiều tính năng và kiểu nạp khác nhau như ISP, PDI cho linh kiện mới. Tuy nhiên những mạch nạp này khá đắt tiền. Trong loạt ví dụ này, chúng ta sử dụng Atmeg8 là loại vi điều khiển phổ thông nên có thể sử dụng những mạch nạp khác để tiết kiệm kinh phí. Điển hình nhất là mạch nạp USBISP cho AVR.

Mạch nạp USBISP giá rẻ trên thị trường thường được sản xuất tại Trung quốc. Tuy nhiên, chúng ta có thể tự làm mạch nạp vì mạch và phần mềm đều được cung cấp miễn phí. Một điểm cần chú ý là có hai loại mạch nạp giá rẻ thường bị nhầm lẫn và được gọi chung là USBisp hoặc USBasp.

Đối với loại USBasp, nó được phát triển bởi một nhóm kỹ sư tại Đức. Để nạp chương trình cho AVR bằng mạch nạp USBasp người ta thường sử dụng phần mềm avrdude hoặc phần mềm dựa trên avrdude như BASCOM, Khazama, xTreme Burner.

Mạch nạp USBasp

Tại châu Á, mạch nạp USBisp phổ biến hơn do được sản xuất bởi Trung quốc. Để sử dụng mạch nạp này thì phần mềm Progisp (tải tại đây) là phù hợp nhất. Tải chương trình về, giải nén và chạy trực tiếp không cần cài đặt.

Mạch nạp USBisp

Quy trình thực hiện nạp chương trình cho AVR bắt đầu với việc viết chương trình. Có thể sử dụng Atmel Studio như trong các ví dụ trước. Sau đó biên dịch để tạo ra tập tin .hex.

Trong bài này chúng ta không tác động lên Fuse & Lock bits. Vi điều khiển sử dụng bộ dao động nội 1MHz. Các thông số giữ như mặc định không cần thay đổi.

Khi gắn vi điều khiển vào mạch phải kiểm tra kỹ vị trí và thông số chân trước khi cấp nguồn. Để nạp chương trình cho vi điều khiển, tháo linh kiện ra khỏi breadboard một cách cẩn thận để tránh gẫy chân.

Cho nhíp vào giữa hai hàng chân và nâng nhẹ

Lặp lại phía còn lại

Không nạy hết từ một phía để tránh gãy chân

Đặt vi điều khiển vào đế nạp. Chú ý vị trí chân số 1 đặt đúng theo hướng trên đế nạp.

Gạt cần khóa vi điều khiển vào đế

Chạy chương trình Progisp

Chọn linh kiện Atmega8 

Đọc kiểm tra linh kiện tốt hoặc lỗi (Read Signature)

Đọc ID của chip

Xóa nội dung cũ trong vi điều khiển (Erase Chip)

Xóa cũ trước khi nạp mới

Tìm chương trình cần nạp (Load Flash)

Chú ý tốc độ nạp phải nhỏ hơn tốc độ xung nhịp của vi điều khiển

Nạp chương trình cho vi điều khiển. Kiểm tra thông tin nạp tại khung phía dưới của phần mềm (Write Flash)

Rút mạch USBisp khỏi máy tính, tháo vi điều khiển khỏi đế nạp và gắn lại vào mạch để kiểm tra. Chú ý vị trí chân trước khi cấp nguồn.

Vi điều khiển dùng xung nội 1MHz

One Reply to “Nạp chương trình cho AVR Atmega với mạch nạp USBISP”

  1. It’s nice to see an article like this, that shows the writer is commited to providing value! You certainly made me think! Thanks-I wouldn’t have thought of things this way otherwise. Gonna share this…

Leave a Reply

Your email address will not be published. Required fields are marked *