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.
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.
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.
Lặp lại phía còn lại
Đặ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
Đọc kiểm tra linh kiện tốt hoặc lỗi (Read Signature)
Xóa nội dung cũ trong vi điều khiển (Erase Chip)
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.