RSS
English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified
Thứ Sáu, 1 tháng 1, 2010

MẠCH NẠP AVR USB TẤT CẢ TRONG 1 - AVR ISP USB AIO

I. Giới thiệu.
Bài viết trước, tôi đã giới thiệu loại mạch nạp thông dụng là AVR910 USB, tuy nhiên loại mạch nạp này chưa thực sự ổn định và nạp không nhanh lắm.
Bài viết này sẽ giới thiệu với các bạn từng bước thực hiện 1 mạch nạp AVR cực kỳ hữu ích. Loại mạch nạp này sử dụng bootloader nên có thể load nhiều firmware của nhiều loại mạch nạp khác nhau như: Jtag, AVRISPmkII, STK500v2...(tất nhiên là firmware đã được chỉnh sửa cho phù hợp với phần cứng). Khi muốn dùng loại mạch nạp nào, ta chỉ cần load firmware bằng phần mềm đi kèm. Mạch này do người Đức thực hiện các bạn tham khảo và tìm bản mới nhất của firmware tại đây


II. Phần cứng.
Sau đây xin giới thiệu sơ đồ gốc của nhà sản xuất.
AVR ISP ALL IN ONE                                                                                                                                


Sơ đồ này là hoàn chỉnh và thực sự chạy tốt, tuy nhiên, để chuẩn nạp sử dụng header 5x2 hơi có dùng, tính năng truyền nhận dữ liệu (TX, RX) không thực sự cần và lý do cuối cùng là Zener 3V3 có thể khó tìm ở 1 số nơi. Vì vậy tôi đã hiệu chỉnh lại sơ đồ như sau:


AVR_ISP_USB_AIO                                                                                                                                


Chú thích.
+Các diode D4 và D5 sử dụng zener 3V3, khi đó diode D6 (1N4148) được nối tắt. Khi không tìm được zener 3V3 thì có thể dùng zener 3V6 thay thế, khi đó D6 phải mắc diode 1N4148.
+Jumper SLOW SCK: dùng cho chuẩn nạp tốc độ thấp, ở điều kiện bình thường thì nó không được nối tắt.
+Jumper SELF PROG: dùng để nạp lại chip master khi bootloader bị vô hiệu hóa( dùng các firmware USB - không phải COM ảo). Bình thường nó không được nối tắt và chỉ dùng khi cần nạp lại chip master.
+Jumper VTAR(CON2): dùng để cấp nguồn cho mạch đích (mạch cần nạp). Nếu mạch cần nạp đã có nguồn ngoài thì jump này được để hở.
+Chuẩn nạp được thiết kế theo thứ tự chân của các dòng AVR 40 pin như ATmega16: MOSI, MISO, SCK, RESET. Khi cần nạp lại chip master các chân nạp này cũng dùng để nạp cho chip master theo đúng thứ tự vừa nêu.


Sau đây là mạch in đã vẽ xong, tuy nhiên, mạch này vẽ chưa gọn và chưa đẹp, các bạn có khả năng nên tự vẽ lại theo sơ đồ nguyên lý trên:


PCB_OV


Nhìn tổng thể.


PCB_TOP
 Mặt đồng.


PCB_BOT


Sắp xếp và thông số linh kiện.


Lưu ý: qua thực nghiệm, điện trở hạn dòng cho cổng nạp (1k-100-1k-1k-từ trên xuống) là hơi lớn và có thể nạp không tốt ở 1 số dòng chip vì vậy các điện trở này có thể giảm giá trị xuống như sau: 680-68-680-680. Nếu vẫn chưa ổn các bạn có thể thay đổi giá trị điện trở theo hướng giảm xuống nhưng không nên bỏ qua các điện trở này.


III. Phần mềm.
Sau khi thi công xong mạch các bạn tiến hành các bước sau:
+Bước 1: Gắn jump SELF PROG để chuẩn bị nạp chip master ATmega8. Gắn jump VTAR để cấp nguồn cho mạch.
+Bước 2: Dùng 1 chương trình nạp thông dụng nạp file BOOTLOADER_M8.hex vào chip master ví dụ: codevision avr, cụ thể như sau:
Chọn Tools=>Chip Programer=>File=>Load FLASH(duyệt đến nơi lưu file:BOOTLOADER_M8.hex =>Chọn chip ATmega8=>Thiết lập các Fuse Bit như sau:
FUSEBIT2


Tiếp tục chọn Program=> FLASH.
Sau khi nạp xong tiếp tục chọn  Program=>Fuse bit.
Vậy là xong phần mềm, khi nào cần nạp lại thì thực hiện lại các bước trên nhưng không cần phải fuse bit lại. Khi nạp xong nhớ rút jump SELF PROG ra.


III. Giao tiếp với máy tính.
1. Cài phần mềm quản lý AVR USB LAB TOOLS.


AVR_LABS_TOOLS
Phần mềm chạy khi chưa gắn mạch nạp vào.
Gói phần mềm này các bạn tải dưới bài viết hoặc vào trang chủ để tìm  bản mới nhất. 


2. Cắm mạch nạp vào.
Khi cắm mạch nạp vào, máy tính nhận ra thiết bị mới (AVR ISP). Để cài driver ta chọn như sau:
NEW_HARD


Sau đó chọn đến thư mục cài đặt USB AVR LAB TOOL / DRIVER mặc định là C:\Program Files\USB AVR-Lab Tool\driver.
DRIVER 


Sau khi chương trình cài đặt driver hoàn tất khởi động lại máy tính và tiến hành nạp firmware của mạch nạp muốn dùng bằng chương trình USB AVR LAB TOOLS. Cụ thể như sau:
+Khởi động chương trình.
+Chọn firmware cần nạp.
+Chọn nút program để nạp.
+Chọn nút start application để hiệu lực firmware.
NAPFIRM1
http://www.flickr.com/photos/34249786@N04/4235124215/in/photostream/
Khi đó bootloader không còn hiệu lực. Vì vậy để đổi lại firmware khác, các bạn phải chọn nút có hình *(chuyển sang chế độ boot) để chọn cổng COM ảo mà firmware giả lập(nếu có). Nếu firmware là giao tiếp USB chuẩn thì chương trình sẽ tự nhận lại bootloader. Tuy nhiên, nếu chương trình không tự nhận lại bootloader thì ta phải tiến hành các bước nạp lại chip master rồi nạp lại firmware.
+Sau khi bấm nút start application thì window sẽ báo nhận ra thiết bị mới, chính là mạch nạp vừa được hiệu lực. Khi đó window sẽ yêu cầu cài đặt driver và ta lại thực hiện các bước cài driver như trên.
+Theo kinh nghiệm thì firmware AVRISP MkII hoạt động hiệu quả nhất, tuy nhiên mỗi lần muốn thay đổi firmware phải nạp lại chip master ATmega8. 
Lưu ý: Khi dùng các firmware chuẩn USB, có thể phải cài thêm driver giao tiếp USB ngoài driver của mạch nạp. Yêu cầu lúc này là máy có sẵn chương trình AVR STUDIO. Các bạn vào My computer =>Properties=> Hardware=>Device Manager=>Tìm tên mạch nạp mà bạn đã chọn firmware ở trên, nếu thấy nó có dấu hỏi màu vàng thì ấn chuột phải chọn update driver=>Yes this time only=>Install from a list or specific location=>Include this location in the search=> chọn đường dẫn đến driver USB trong thư mục cài đặt AVR Studio mặc định như sau:C:\Program Files\Atmel\AVR Tools\usb. Chờ khi cài xong driver là bạn đã sẵn sàn sử dụng.

Vậy là bạn đã hoàn tất mạch nạp với nhiều loại firmware khác nhau nên có thể gọi đây là mạch nạp tất cả trong 1. Chúc các bạn thành công.
Các bạn tải tất cả dữ liệu của bài viết tại đây: http://hotfile.com/dl/23401660/f0560a8/AVR_USB_ISP_AIO_WWW.EEELABS.ORG.rar.html
Chú ý: Khi in mạch, nếu dùng phương pháp in lụa thì in file AVR_ISP_TOP_MIRORED. Tất cả các bản in phải đảm bảo zoom 100%.






Mọi chi tiết, các bạn có thể để lại comment dưới bài viết này để đặt câu hỏi hoặc trao đổi thông tin. 
Bài viết trên đây có sự tham khảo thông tin từ thành viên ITX và HOANGDAI của diễn đàn điện tử VN.
Đặc biệt gửi lời cảm ơn đến Mr Sơn - mmlovely(dientuvietnam.net) (doanh nghiệp LED Sơn Phú - Cần Thơ) đã hỗ trợ công cụ thí nghiệm
Video hướng dẫn chi tiết.



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

3 nhận xét:

Trần Thừa nói...

oni05

gamowaxaky nói...

Bạn cho hỏi muốn chuyển mạch thành JTAGICE mkII để debug thì phải kết nối mạch chủ với mạch đích như thế nào? (các chân MISO, MOSI, SCK,... sẽ nối vào chân nào của con AVR cần debug)

Xin bạn giải thích rõ được ko?

Trần Thừa nói...

Thật ra mạch này tôi giới thiệu nhằm thay thế mạch AVR910USB để dùng theo chuẩn ISP, vì vậy mạch đã được sửa đổi chuẩn nạp để tiện khai thác chức năng nạp ISP.
Nếu bạn muốn sử dụng tính năng JTAGIGE mkII để debug thì phải vẽ mạch lại theo sơ đồ gốc của mạch này:http://wiki.ullihome.de/index.php/USBAVR-ISP-Download/de
Sau đó bạn vào chế độ boot của mạch nạp, chọn vào firmware JTAGICE mkII để đọc hướng dẫn kết nối chân tương ứng theo sơ đồ. Sau cùng là tra datasheet để biết các chân theo chuẩn JTAGICE mkII.

NỘI QUY NHẬN XÉT

Các bạn có thể viết lời bình của mình cho bài viết, và tuân thủ một số quy tắc sau:
>>Các nhận xét phải nghiêm túc, không dung tục, không spam.
>>Các nhận xét phải ghi bằng tiếng Việt có dấu
>>Nội dung phải liên quan đến bài viết
>>Hãy để lại tên hoặc email để chúng tôi tiện trả lời bạn.

[▼/▲] More Emoticons
oni01 oni02 oni03 oni04 oni05 oni06 oni07 oni08 oni09 oni10 oni11 oni12 oni13 oni14 oni15 oni16 oni17 oni18 oni19 oni20 oni21 oni22 oni23 oni24 oni25 oni26 oni27 oni28 oni29 oni30 oni31 oni32 oni33 oni34 oni35 oni36 oni37 oni38 oni39 oni40 oni41 oni42 oni43 oni44 oni45 oni46 oni47 oni48 oni49 oni50

Lên đầu trang
Vào giữa trang
Xuống cuối trang