Chúng ta đều biết về cách chip AVR ATmega32A được tốc độ. Trong tất cả các bài học trước của chúng tôi, chúng tôi đã sử dụng đồng hồ bên trong 1 MHz để điều khiển chip AVR. Đây là thiết lập đồng hồ mặc định với chip ATmega được vận chuyển từ nhà máy. Ở đây trong bài học này, chúng ta sẽ học cách thiết lập các bit cầu chì AVR để sử dụng tốc độ xung nhịp khác nhau cho các ứng dụng khác nhau. Điều quan trọng là chúng tôi yêu cầu thời gian chính xác và chính xác nói ví dụ để triển khai UART nối tiếp, Giao tiếp qua USB. Chúng tôi có bit cầu chì trong vi điều khiển AVR. Chúng ta có thể sử dụng các bit cầu chì này để đồng bộ vi điều khiển với tần số mong muốn.
Trước hết hãy hiểu khái niệm và ý tưởng cơ bản liên quan đến việc thiết lập nguồn đồng hồ (đồng hồ bên trong hoặc bên ngoài). Tôi khuyên bạn nên mở datasheet của ATmega32A (hoặc bất kỳ vi điều khiển của bạn) cho thời gian của hướng dẫn này, và một thời gian ngắn lướt qua chương về đồng hồ hệ thống và tùy chọn đồng hồ (Trang 25) bấm vào đây để Datasheet ATmega32A.
AVR Fuse Bits là gì?
Như chúng ta đều biết bộ vi điều khiển AVR nói chung, ba vùng nhớ: FLASH, được dành riêng cho mã chương trình, SRAM cho biến thời gian chạy và EEPROM, có thể được sử dụng bởi mã người dùng để lưu trữ dữ liệu phải được lưu giữ khi MCU được TẮT. Bây giờ các khóa / cầu chì với nhau tạo thành một khu vực bộ nhớ thứ tư có sẵn cho lập trình. Điều này chứa một vài byte cho cầu chì: Low Byte, High Byte.
Trước khi chúng tôi bắt đầu phân tích cầu chì và khóa bit. Chúng ta phải ghi nhớ rằng một chút thiết lập để '0' có nghĩa là lập trình và một chút thiết lập để '1' có nghĩa là un-lập trình. Điều này hơi phức tạp và rất quan trọng cần lưu ý trước khi chúng tôi tiến hành thêm nữa.
Trong hướng dẫn này, chúng tôi muốn hiển thị, làm thế nào bạn có thể đồng hồ vi điều khiển của bạn với tần số khác nhau (thiết lập bit cầu chì avr). Thông thường, chỉ có hai byte fuse: một byte cao và thấp nhất. Chúng tôi sẽ tập trung hơn vào cách sử dụng của nó. Ví dụ thực tế trong hướng dẫn này sẽ cho phép bạn hiểu khái niệm kỹ lưỡng và bạn sẽ sẵn sàng để thử nghiệm thêm bằng cách của riêng bạn. Chúng tôi sẽ bao gồm khóa bit trong bài học trong tương lai. Vị trí của các bit cầu chì cụ thể khác nhau giữa tất cả các byte cầu chì tùy thuộc vào chip AVR được sử dụng. SO chắc chắn để viết chúng xuống trước khi thiết lập chúng. Ví dụ, chúng tôi lấy vi điều khiển ATmega32A và đây là tất cả các byte fuse cho nó.
Giá trị mặc định của bit cầu chì ATmega32 / 32A là 0x99E1 nghĩa là cầu chì cao: 0x99 và cầu chì thấp: 0xE1 với tần số cài đặt mặc định này được đặt thành 1 MHz, Dao động RC nội bộ, thời gian khởi động: 6CK + 64ms:
Disclaimer: Hướng dẫn này là dành cho mục đích thông tin; làm các bit cầu chì thiết lập nguy cơ của riêng bạn.
Giải thích về mỗi bit cầu chì:
BODLEVEL: Mức kích hoạt của BOD (Brown-out Detection) có thể được lựa chọn bởi bit cầu chì này. Khi được lập trình (0) cấp độ kích hoạt là 4V và khi không được lập trình (1) mức kích hoạt là 2.7V
BODEN: ATmega32A có mạch phát hiện chip màu nâu (BOD) để giám sát mức VCC trong quá trình hoạt động bằng cách so sánh nó với mức kích hoạt cố định. Khi BOD được kích hoạt (BODEN được lập trình), và VCC giảm xuống một giá trị dưới mức kích hoạt, thiết lập lại Brown-out được kích hoạt ngay lập tức. Khi VCC tăng lên trên mức kích hoạt, nó sẽ khởi động lại vi điều khiển.
SUT1: 0: Các bit này chọn thời gian khởi động. Giá trị mặc định của SUT1: 0 dẫn đến thời gian khởi động tối đa (6CK & 65ms chậm trễ bổ sung từ RESET [Tham khảo Bảng: 8-9, Trang No: 30].
CLKSEL [3-0]: Những bit này được sử dụng để chọn các tùy chọn đồng hồ khác nhau có sẵn. Giá trị mặc định của CLKSEL [3..0] là 0001 tức là bộ dao động RC bên trong chạy ở 1 MHz Nếu bạn muốn thêm tinh thể bên ngoài thì bạn cần thay đổi giá trị theo [Bảng 8-1, Trang No: 26]. Một số giá trị bit cầu chì phổ biến được đưa ra ở cuối bài viết này.
OCDEN: Pin này được sử dụng để bật hoặc tắt khi gỡ lỗi chip. Điều này cho phép mô phỏng thời gian thực của vi điều khiển khi chạy trong hệ thống đích. Theo mặc định, nó bị vô hiệu hóa là '1' có nghĩa là không được lập trình.
JTAGEN: Có sẵn các giao diện JTAG để gỡ lỗi. Nó được kích hoạt trong vi điều khiển mới. Đây là lý do tại sao một số newbie nói, "PORTC của ATmega32 không hoạt động như mong đợi" vô hiệu hóa nó nếu bạn không sử dụng JTAG bằng cách làm cho JTAGEN bit 1 (cao).
SPIEN: 0 giá trị (được lập trình) có nghĩa là lập trình nối tiếp của ATmega32 / 32A được kích hoạt. Đừng thay đổi điều này trừ khi bạn có lập trình song song! Bởi vì một khi vô hiệu hóa ATmega32A không thể được lập trình bằng cách sử dụng lập trình nối tiếp.
CKOPT: Cầu chì CKOPT chọn giữa hai chế độ bộ khuếch đại dao động khác nhau. Khi CKOPT được lập trình, đầu ra dao động sẽ dao động với một swing toàn bộ đường sắt-to-rail trên đầu ra. Khi không được lập trình, bộ dao động có đầu ra nhỏ hơn. Nếu bạn đang sử dụng bộ dao động bên ngoài, tốt hơn nên lập trình CKOPT tức là CKOPT = 0
EESAVE: Nếu được lập trình (0) nó sẽ lưu EEPROM khỏi quá trình xóa trong quá trình xóa chip khác EEPROM cũng sẽ bị xóa bằng flash.
BOOTSZ0 và BOOTSZ1: Các bit này được sử dụng để đặt kích thước của bộ nạp khởi động
BOOTRST: Nếu bit BOOTRST được lập trình (0), Thiết bị sẽ nhảy lên khối bộ nạp khởi động địa chỉ đầu tiên.
Ví dụ: Thiết lập các bit cầu chì AVR
Tại thời điểm này bạn đã sẵn sàng để đồng hồ vi điều khiển của bạn với tần số khác nhau. Trong ví dụ này, chúng ta sẽ tạo ra tiếng bíp bằng cách sử dụng đĩa Piezo. Và tác động sẽ được thể hiện dưới dạng thay đổi trong tiếng bíp. Hãy tính toán các bit cầu chì, cho tần số đồng hồ khác nhau. Đây là một chương trình tuyệt vời để tính toán các bit cầu chì cho bạn AVR Fuse Calculator
Đồng hồ nội bộ 1: 1 MHz (mặc định), Cầu chì thấp: Cầu chì cao 0xE1: 0x99
Trường hợp 2: 8 MHz Đồng hồ bên trong, Cầu chì thấp : 0xE4 Cầu chì cao: 0x99
Vỏ ngoài 3: 16 MHz Pha lê bên ngoài, Cầu chì thấp: Cầu chì cao 0xFF: 0x99
Chúng tôi hy vọng hướng dẫn này sẽ giúp bạn hiểu AVR Cầu chì. Chúng tôi khuyên bạn nên chơi xung quanh chip AVR để đốt cháy cầu chì và xem tác động. Đừng ngại tự mình thử và Hãy đăng câu hỏi / bình luận bên dưới.
Đây là video, là hướng dẫn từng bước. Tác động cũng được thể hiện qua demo trực tiếp: Thiết lập các bit cầu chì AVR
Không có nhận xét nào:
Đăng nhận xét