Thiết lập Fuse bit cho AVR khỏi sợ sai

Chào các bạn hôm nay chúng ta sẽ tìm hiểu về cách thiết lập fuse bits cho vi điều khiển AVR. Trong AVR được thiết kế sẵn một số mạch điện và các thiết bị hỗ trợ bên trong,chúng có tác  dụng điều khiển, debug, cấp xung clock, lưu trữ.... Để điều khiển các mạch điện này khi nạp chip chúng ta phải cấu hình Fuse bit cho chúng, hiểu nôm na là đóng cầu dao điện hoặc mở cầu dao điện.

 VD như ta thiết lập nguồn xung clock cho AVR: Vì trong AVR có tích hợp một mạch điện tạo dao động cho chip lên đến 8Mhz khi sử dụng mạch này các bạn không cần phải mắc thạch anh cho chip.
Mỗi loại chip avr đều có một cấu hình fuse khác nhau, ở đây ta sẽ lấy ví dụ cho một số chip hay dùng: ATmega8, ATmega16, ATmega32, .... Phần mềm nạp Progisp:


Chú ý: Khi cấu hình Fuse bit là bit 0 sẽ là kích hoạt,  còn 1 là không kích hoạt
Ta sẽ set một số Fuse của các chip trên:
1. BODLEVER là bit chọn mức điện áp tham chiếu sụt áp nguồn, khi ta cấu hình kích hoạt BODENBODLEVER=0 tức chọn mức điện áp 4.0V, còn nếu BODLEVER=1 là chọn mức điện áp 2.7V
Khi điện áp nguồn VCC mà bị sụt xuống mức giới hạn trên CHIP sẽ tự động được RESET không như 8051 treo luôn :)
2. BODEN là bit cho phép mạch phát hiện sụt áp nguồn hoạt động.
3. JTAGEN là bit cho phép module JTAG hoạt động, có tác dụng kiểm tra hoạt động trên chip và gỡ lỗi...
Lưu ý fuse này với chip ATmega32 khi mới mua về các PIN: TCK, TMS, TDO và TDI lần lượt PC2, PC3, PC4 và PC5 không thể sử dụng được, nếu ta không có việc gì cần đến cái này thì hãy vô hiệu hóa bằng cách set JTAGEN=1 để có thể sử dụng các chân trên như các PIN khác vì nếu ta để cấu hình JTAGEN=0 sẽ không sử dụng được các chân trên.
4. OCDEN là bit cho phép Debug, nếu ta không khai báo fuse này thì JTAGEN vô nghĩa khi JTAGEN=0. Không dùng Debug thì ta set OCDEN=1, nếu set OCDEN=0 thì chip sẽ chạy ở chế độ sleep mode (ngủ đông) và quá trình debug bắt đầu, ta không thể làm gì với chip
Tốt nhất ko sờ vào cái này không lại cứ tưởng con chip của mình vừa mới mua về sao đã tèo rồi thì mệt.
5. EESAVE là bit cho phép để lại (lưu lại) dữ liệu EEPROM trong mỗi lần nạp lại chip hay không, nếu EESAVE=0 thì toàn bộ dữ liệu trong EEPROM sẽ không bị xóa khi nap chip hoặc ngược lại.
6. BOOT LOADER là chương trình cho phép nạp chip không cần mạch nạp, VD như nạp qua UART.... cho phép khách hàng của mình có thể tự cập nhật phần mềm. Để làm được việc này ta phải cấu hình fuse cho 3 bit sau:
- BOOTRST là fuse cho phép chạy chương trình bootloader trong vùng lưu trữ bootloader. BOOTRST=1thì địa chỉ của chương trình sẽ bắt đầu từ địa chỉ 0x0000, còn BOOTRST=0 thì ô nhớ bắt đầu là vị trí đầu tiên của bootloader tức ctr bootloader được thực thi.
- BOOTSZ1 và BOOTSZ0 là 2 bit chọn phân vùng bộ nhớ cho bootloader ta xem bảng sau:
BOOTSZ1BOOTSZ0Boot Size (words)PageĐịa chỉ
1125640x3F00 - 0x3FFF
1051280x3E00 - 0x3FFF
011024160x3C00 - 0x3FFF
002048320x3800 - 0x3FFF
Trong các ứng dụng không đòi hỏi phải cập nhật phần mềm thì ta để mặc định, để dành bộ nhớ cho code.
7. RSTDISBL là bit cho phép sử dụng chân reset hay không trên một số chip như ATmega8 có tích hợp chung với PINC.6. Để sử dụng chân này làm chân RESET ta thiết lập fuse RSTDISBL=1 và ngược lại nếu ta muốn sử dụng chân này làm port xuất nhập.
8. WTDON cho phép WTD
9. SPIEN cho phép giao tiếp SPI
10. Set xung nhip cho chip, gồm 7 fuse: CKSEL3:0 (chọn xung nhịp), CKOPT (chọn chế độ khuêch đại) và SUT1:0 (thời gian khởi động- ko dùng, mặc định như nào để đó SUT1:0=10 )
CKSEL3:0Xung nhịpNguồn xung nhịpCKOPT
00011MhzOnchip 
00102MhzOnchip 
00114MhzOnchip 
01008MhzOnchip 
10101-16MhzThạch anh ngoài0
11111-16MhzThạch anh ngoài0
10101-8MhzThạch anh ngoài1
11111-8MhzThạch anh ngoài1
Hướng dẫn set fuse dùng xung nhịp RC onchip và thạch anh ngoài

Cuối cùng sau khi cấu hình xong nhớ nhấn nút Write để ghi cấu hình vào chip nha!
Qua bài viết này các bạn có thể yên tâm khi nạp chương trình cho AVR không sợ bị set nhầm fuse.

Theo sangtaoclub
In bài này
Previous
Next Post »

1 comments:

Click here for comments
Anonymous
admin
28/3/18 ×

Greetings! This is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche.
Your blog provided us useful information to work on. You have done a marvellous job!

Congrats bro Anonymous you got PERTAMAX...! hehehehe...
Reply
avatar

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!! ConversionConversion EmoticonEmoticon

       Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

THƯ MỤC KHO TÀI LIỆU MIỄN PHÍ ECHIPKOOL

Code 8051 - ASM Code 8051 - C Code AVR - C Code led sao băng Code PIC - C Điện tử cơ bản điện tử viễn thông Đo Nhiệt Độ DS18B20 + LCD Đo Nhiệt Độ LM35 + LCD Đo Nhiệt Độ LM35 + Led 7 thanh Đo tốc độ động cơ Động cơ robo Ebook Đại Học ebook điện tử Ebook đồ án Học Orcad Học Protues Hồng ngoại Lập Trình 8051 Lập Trình AVR lập trình c++ Lập Trình Led Quảng Cáo lập trình PIC Lập trình Robot Lập trình VHDL Lcd16x2 Led Clock Led Quay Led RGB Mạch 7seg Mạch Amply.Mạch Loa Mạch Cảm Biến Mạch cube Mạch Đếm Sản Phẩm Mạch điện cơ bản Mạch điện hay Mạch Điện Ứng Dụng Mạch đọc file nhạc MP3 dùng Atmega 8 Mạch Động Cơ Mạch đồng hồ Mạch đồng hồ LCD Mạch đồng hồ Matrix Mạch giao thông Mạch in Mạch khóa số điện tử Mạch Led đơn Mạch Led Quảng Cáo Mạch Led Vumeter Mạch Ma trận Phím Mạch Matrix Mạch nạp Mạch nguồn Mạch Nút Bấm Mạch RS232 Mạch RS485 Mạch thu phát Mạch tổ hợp MSI Mạch trái tim Mạch truyền điện không dây Mạch Vi điều khiển Module Bluetooth Module Sim Module Sim548 Motor Nhiệt độ - Độ ẩm oscilloscope Phần mềm điện tử Phần Mềm Diệt Viruts Phần Mềm Hay Phần Mềm Led Quảng Cáo Phần mềm vi tính robocon Rule robocon Sạc Acquy Sản Phẩm Thương Mại Sáng tạo Smart Home Tài liệu Điện Tử Tranzitor Tụ điện TUT - 8051 - ASM TUT - 8051 - KeilC UART Ứng Dụng Led Quảng Cáo Ứng dụng USB USB TO COM Vi điều khiển - Ứng dụng Vi mạch số VOM Wifi ESP8266