Mục lục:

SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR: 8 bước
SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR: 8 bước

Video: SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR: 8 bước

Video: SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR: 8 bước
Video: Cân Tất Cả Các Thể Loại Vi Điều Khiển Trong 30 Phút | 21 Ngày Trở Thành Chiến Binh IoT ( Ngày 3) 2024, Tháng bảy
Anonim
SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR
SỬ DỤNG EXtreme Burner để lập trình vi điều khiển AVR

Tất cả các bạn là tình huynh đệ người dùng AVR ngoài kia, và những người mới tham gia luồng, Một số bạn bắt đầu với vi điều khiển PIC và một số bắt đầu với ATMEL AVR, điều này được viết cho bạn!

Vì vậy, bạn đã mua một USBASP vì nó rẻ và hiệu quả để flash ROM trên thiết bị Atmega của bạn hoặc có thể là phạm vi ATTINY. Bạn có thể mua những thứ này với giá dưới 5 đô la, dưới dạng bản sao của Trung Quốc của USB-ASP nguồn mở! AVRdude là phần mềm để lập trình chúng.

Bạn chắc chắn biết cách tạo tệp Hex bằng Atmel Studio (Tôi vẫn sử dụng AVR Studio v4.19 thay vì v7 mới nhất vì nó nhanh hơn và nhanh hơn trên máy tính xách tay CPU lõi đơn nhẹ của tôi) / Cài đặt Netbook và WINAVR nếu bạn đang đọc phần này. Bất kỳ thứ gì được viết bằng DotNet đều chạy CHẬM! và các phiên bản sau này được thiết kế để làm cho máy tính xách tay của bạn chạy như rùa bò! Bạn có thể sử dụng Studio v4.19 phiên bản Studio tuyệt vời nhất từ ATMEL dành cho vi điều khiển AVR, chuyển sang phiên bản 7 khi bạn thực sự cần nó cho các chip mới hơn và giúp thời gian của bạn trên máy tính xách tay hiệu quả hơn, làm việc thay vì chờ đợi! Đây là những gì tôi đề nghị.

Một dòng lệnh AVR dude điển hình để lập trình Atmega với tệp Hex, chạy như sau:

VIẾT THÀNH FLASH: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

ở đây pwmeg1.hex là tệp hex Intel được "ghi" hoặc "chiếu" vào "MCU mục tiêu" trong vi điều khiển Lingo

Đó là một điều đáng nhớ! Bạn có thể viết một tập tin hàng loạt và chạy nó trong dòng lệnh trong windows, đặt tên cho nó là write_flash.bat. Tương tự để đọc các cầu chì, một đoạn miệng khác của một dòng để ghi nhớ! Nó trở nên tẻ nhạt.

để đọc flash + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Giải pháp là sử dụng một trong những công cụ giao diện người dùng GUI thân thiện với người dùng cho AVRdude như Bitburner, lập trình viên Khazama, những công cụ này có giá trị gần tương tự. eXtreme Burner. Tôi đã sử dụng công cụ miễn phí để sử dụng: eXtreme Burner rất nhiều, tính linh hoạt, đáng tin cậy của nó, và hướng dẫn này là về điều đó. Nó không chỉ có thể flash tệp / chương trình hex của bạn sang MPU, sử dụng các lệnh được cấp cho AVRdude ở chế độ nền, nó còn có thể giúp bạn thiết lập FUSES, một chủ đề phức tạp thường gây nhầm lẫn cho người mới bắt đầu lập trình AVR. Đây là một liên kết đến một hướng dẫn tuyệt vời về chủ đề FUSES mà bạn có thể xem qua hoặc tìm hiểu thêm. Lời cảnh báo: ATMEL sử dụng trạng thái '1' của một bit FUSE để biểu thị trạng thái 'mặc định' của nó (trạng thái chưa được đặt hoặc chưa được lập trình) và '0' để biểu thị trạng thái được lập trình hoặc thiết lập hoặc kích hoạt của nó! Điều này hoàn toàn ngược lại với những gì bạn làm với các bit FUSE trong vi điều khiển PIC. Hãy cẩn thận khi bạn sửa đổi các bit cầu chì đồng hồ như làm cho đồng hồ RC bên trong thay đổi thành tinh thể bên ngoài vì điều này sẽ tạo ra các vấn đề trong việc kết nối với chip mà không có thiết lập tinh thể bên ngoài. Tương tự, hãy cẩn thận khi bạn thay đổi trạng thái của các bit cầu chì quan trọng như SPIEN và RESET DISABLE (chúng phải luôn được đặt thành SPIEN = 0 và RESET DISABLE = 1 nếu bạn muốn tiếp tục giao tiếp với MCU bằng USB-ASP của mình ở chế độ ISP / SPI Nếu bạn làm hỏng điều này, bạn sẽ cần một lập trình viên Điện áp cao để 'giải phóng' AVR của bạn.

Nếu bạn đang thắc mắc "cầu chì là cái quái gì" và "chúng để làm gì"? Đọc bài viết xuất sắc này:

Một chủ đề liên quan khác là cách đặt Tốc độ đồng hồ của AVR MPU của bạn có khả năng đạt tốc độ từ 1Mhz đến 16 hoặc 20Mhz. Ngoài ra còn có tùy chọn tinh thể tần số thấp 31,25kHz đặc biệt, nếu được thiết kế phù hợp có thể làm cho AVR của bạn sử dụng hết pin AA trong 3 tháng!

Cả hai điều này, bit Cầu chì đồng hồ (cả tần số và Loại đồng hồ bên trong RC / tinh thể bên ngoài và các bit Cầu chì khác) có thể được đặt thông qua tab FUSES trong eXtreme Burner. Trước tiên, chúng tôi sẽ hướng dẫn bạn đọc ROM, sau đó là cách flash tệp hex bằng eXtreme Burner. Tất nhiên, bạn cũng có thể sử dụng các trang web cầu chì AVR trực tuyến, nhưng tùy chọn mà tôi giải thích có thể được sử dụng khi bạn ngoại tuyến, ở bất kỳ đâu.

Bước 1: Cài đặt được thực hiện:

Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện
Cài đặt được thực hiện

Hình ảnh hiển thị các CÀI ĐẶT sẽ được thực hiện trước khi bạn bắt đầu công việc của mình. (chỉ một lần duy nhất). Trong mục menu phụ 'Cài đặt phần cứng', chúng tôi chọn 375Hz vì hầu hết MCU từ nhà máy ATMEL được đặt thành Cài đặt mặc định của xung nhịp CPU 1 Mhz trên bộ dao động RC nội bộ. Tốc độ ISP là 1/4 F_cpu. Điều đó cho chúng tôi tốc độ gần nhất là 375 Khz, bạn cũng có thể đi đến tốc độ thấp hơn, nó sẽ không tạo ra nhiều sự khác biệt. Bạn có thể cố gắng kết nối để cài đặt này ở chế độ mặc định và đưa ra thông báo 'đọc tất cả', nếu nó không thành công thì bạn có thể đến đây và thay đổi tốc độ, làm cho tốc độ thấp hơn.

Bởi vì nếu bạn không thể kết nối (thông báo sẽ được đưa ra trong cửa sổ lập trình "không thể giao tiếp với chip, không thể SCK" có nghĩa là tín hiệu đồng hồ từ PC của bạn không thể đồng bộ hóa với chip mà bạn đang cố đọc hoặc chương trình)., bạn sẽ không thể thay đổi Tốc độ đồng hồ của CPU hoặc thay đổi tốc độ và kiểu của nó! Vì vậy, kết nối là cơ sở của tất cả mọi thứ! Nó giống như "LIÊN HỆ ĐẦU TIÊN" như bạn thấy trong các bộ phim của Spielberg. Nếu bạn thành công trong việc này, bạn luôn có thể tăng tốc độ xung nhịp của MCU bằng cách lập trình các cầu chì cho phù hợp và sau đó sử dụng tốc độ cao hơn để kết nối.

Vì vậy, hãy xem qua ảnh chụp nhanh cài đặt phần cứng được cung cấp ở đây, sau đó đặt cả loại thiết bị (chip bạn đang cố gắng lập trình, số kiểu của nó).

Bước 2: Đặt loại thiết bị của bạn

Đặt loại thiết bị của bạn
Đặt loại thiết bị của bạn
Đặt loại thiết bị của bạn
Đặt loại thiết bị của bạn
Đặt loại thiết bị của bạn
Đặt loại thiết bị của bạn

xem ảnh chụp màn hình, Pic 1, chúng tôi đã đặt "ATTINY44A". Đây là Vi điều khiển 14 chân không có UART. Tôi đã sử dụng cái này gần đây, phiên bản SSU. Nếu bạn đã cài đặt phiên bản cổ phiếu Extreme burner, bạn sẽ không thấy Attiny44A trong danh sách thả xuống lựa chọn thiết bị, bạn sẽ thấy Attiny44 cho mọi mục đích mà chúng tôi có thể sử dụng để lập trình Attiny44A, để giới thiệu bất kỳ thiết bị nào không được liệt kê trong danh sách thả xuống này, hãy đọc "Hacking eXtreme Burner" có thể hướng dẫn khác của tôi.

Tôi đã và đang sử dụng Atmega88PA-AU cũng với eXtreme Burner nhưng trong phần Có thể hướng dẫn này, chúng tôi đề cập đến "Attiny44A" ở khắp mọi nơi. Bây giờ bạn làm thế nào để tạo một phiên bản breadboard của chip SMD vuông 7mm và thử nghiệm nó với các chương trình của bạn? (xem các bức ảnh cho biết kích thước chip), Đối với điều này, hãy xem hướng dẫn khác của tôi, nơi tôi trình bày cách tạo Mô-đun Plug-in phù hợp với Breadboard bằng cách sử dụng Attiny44A-SSU và ATmega88PA-AU

Một khi bạn học kỹ thuật này, bạn sẽ có thể kiểm tra bất kỳ con chip nào mà bạn muốn tìm hiểu, cho dù gói SMD hay DIL của nó. Ví dụ, tôi thậm chí đã sử dụng một chip SMD có trong gói Quad độ cao 0,8mm 32 chân (Atmega88A) theo cách tương tự!

. Hoặc bạn có thể chỉ cần sử dụng phiên bản 28pin DIL của Attiny44A cho AVR có thể hướng dẫn này hoặc bất kỳ AVR nào bạn đang sử dụng hiện tại để dùng thử eXtreme Burner để lập trình AVR..

Bước 3: Phát hành READ ALL hoặc READ FLASH

Phát hành READ ALL hoặc READ FLASH
Phát hành READ ALL hoặc READ FLASH
Phát hành READ ALL hoặc READ FLASH
Phát hành READ ALL hoặc READ FLASH

Kết nối USBasp của bạn với cổng USB của máy tính xách tay của bạn, tôi cho rằng bạn đã tải đúng trình điều khiển đi kèm với bộ lập trình của bạn và nó được phát hiện chính xác. Nó sẽ xuất hiện trong 'Thiết bị và Máy in' trong menu bắt đầu của windows nếu có, ngay khi nó được cắm vào cổng USB! Kết nối chip mục tiêu của bạn trên bo mạch của nó với USBasp của bạn (các chân SDI // ISP có liên quan sử dụng cáp 6 chân hoặc 10 chân phải được kết nối giữa hai chân, cụ thể là các chân: MOSI, RESET, MISO, SCK, Vcc, Ground).

Phát hành ĐỌC TẤT CẢ từ MENU của Xtreme Burner. Xem các bức ảnh và tin nhắn mà chúng tôi thu được. Ban đầu màn hình của bạn hiển thị 'FF' cho ROM trong TAB đầu tiên của ổ ghi, sau khi đọc tất cả, nó sẽ hiển thị nội dung ROM thực trên chip. Nếu bạn sử dụng chip mới xuất xưởng hoặc chip đã bị xóa, bạn sẽ thấy FF trong nội dung sau "Đọc tất cả". Một chip chưa được lập trình sẽ hiển thị 'FF' trong bộ nhớ của nó, EEPROM (tab thứ hai trong bộ lập trình) cũng vậy, tab cuối cùng hiển thị FUSES.

Sau khi ĐỌC TẤT CẢ 3 tab sẽ hiển thị thông tin chính xác có trong chip. Trước đó thì không, vì vậy hãy phát hành Đọc tất cả trước ngay sau khi bạn kết nối mọi thứ.

Bước 4: Ghi vào Flash (File Hex của bạn đã được flash vào ROM trên chip)

Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)
Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)
Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)
Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)
Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)
Ghi vào Flash (Tệp Hex của bạn được Lưu trữ trong ROM trên Chip)

Chọn tệp bằng hộp thoại Duyệt sẽ mở ra khi bạn nhấp vào biểu tượng đầu tiên trong thanh MENU ở trên. Chúng tôi đã chọn một tệp như bạn thấy trong ảnh. Khi bạn chọn tệp hex (định dạng hex intel), thanh Menu hiển thị "không có tệp nào được tải" đã thay đổi thành tên tệp mà bạn đã tải.

Bây giờ Phát hành Ghi Flash từ Menu của phần mềm. Các thông báo sẽ cho bạn biết những gì đang xảy ra. xem các bức ảnh.

Sau khi ghi thành công, bạn sẽ thấy 'FF' đánh dấu sự thay đổi ROM mới hoặc đã bị xóa đối với những gì chương trình hoặc tệp hex của bạn chứa. Kích thước hoặc số byte mà tệp của bạn chiếm trong ROM cũng được bạn biết khi nhìn vào màn hình này, màn hình này hiển thị cho bạn nội dung ROM thực của chip mục tiêu mà bạn vừa mới flash.

Bước xác minh cũng được thực hiện bằng cách đọc chip, theo các CÀI ĐẶT mà chúng tôi đã làm ở bước đầu tiên. Điều này được thấy trong các thông báo xác minh cũng đã thành công.

Bước 5: FUSES: Cách thiết lập chúng trong EXtreme Burner

FUSES: Cách thiết lập chúng trong EXtreme Burner
FUSES: Cách thiết lập chúng trong EXtreme Burner

Khi bạn phát hành ĐỌC TẤT CẢ, các cầu chì đã được đọc từ chip. Đó là bức ảnh ĐẦU TIÊN được hiển thị fuses.jpg.

Bây giờ có lẽ bạn cần thay đổi chúng sang một cái gì đó khác. Các cầu chì bao gồm 4 ô trong TAB cuối cùng trên màn hình eXtreme Burner của bạn. Cụ thể là LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE và HALIBRATION BYTE. theo thứ tự đó chúng được hiển thị.

Bạn có thể chỉ cần sử dụng máy tính cầu chì TRỰC TUYẾN và điền chúng vào. Giống như công cụ tại

eleccelerator.com/fusecalc/fusecalc.php?

Hoặc bạn có thể sử dụng eXtreme burner để làm điều đó cho bạn. tự ngoại tuyến bất cứ lúc nào: Chọn từ danh sách thả xuống xuất hiện khi bạn nhấp vào nút CHI TIẾT ở đó bên dưới mỗi loại byte cầu chì. Chỉ cần nhấp đúp vào bất kỳ dòng nào trong màn hình CHI TIẾT và xem nó thay đổi từ SET thành ĐÃ XÓA và chuyển đổi trạng thái của nó bằng cách nhấp chuột của bạn trên mỗi dòng. Fuse Byte trong hộp phía trên nó sẽ thay đổi tương ứng.

Nếu bạn đang thắc mắc "cầu chì là cái quái gì" và "chúng để làm gì"? Đọc bài viết xuất sắc này:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

Bước 6: Đặt cầu chì bằng Máy tính cầu chì EXtreme Burner

Đặt cầu chì bằng máy tính cầu chì EXtreme Burner
Đặt cầu chì bằng máy tính cầu chì EXtreme Burner
Đặt cầu chì bằng máy tính cầu chì EXtreme Burner
Đặt cầu chì bằng máy tính cầu chì EXtreme Burner
Đặt cầu chì bằng máy tính cầu chì EXtreme Burner
Đặt cầu chì bằng máy tính cầu chì EXtreme Burner

Bạn có thể thấy Màn hình Chi tiết xuất hiện cho từng byte cầu chì (THẤP, CAO, MỞ RỘNG, KHÓA và Hiệu chỉnh). Byte Hiệu chuẩn nên được giữ nguyên vì nó hiển thị byte dữ liệu hiệu chuẩn trong AVR áp dụng cho bộ dao động RC bên trong. Byte LOCK thường chỉ là FF, (không được thảo luận trong các bức ảnh ở trên) vì bạn sẽ không khóa Flash hoặc EEPROM khi đang trong giai đoạn học. Bạn sẽ chỉ thay đổi các byte THẤP, CAO và MỞ RỘNG. Hãy cẩn thận !

Nếu bạn thay đổi bit SPIEN thành 1 (trạng thái chưa được lập trình là 1 trong vi điều khiển AVR), bạn sẽ không thể giao tiếp với chip của mình bằng USBASP hoặc bất kỳ bộ lập trình nào! Trạng thái mặc định cũng được hiển thị trên màn hình của bạn cho mỗi bit cầu chì. Điều này cảnh báo bạn rằng SPIEN mặc định luôn là 0 (trạng thái được lập trình) để cho phép bạn sử dụng chế độ SPI để lập trình ISP. Debug-wire hoặc DW bit luôn được để 1 (chưa được lập trình) khi SPIEN được đặt thành 0. Đây cũng là trạng thái mặc định của nó. Ngoài ra, trong Extended Fuse bits, "Self Programming Enable" phải là "1" (chưa được lập trình) nếu bạn đang sử dụng USB-ASP để lập trình chip mục tiêu của mình (không sử dụng ROM bộ nạp khởi động như trong ARDUINO).

Bạn có thể thay đổi các bit ĐỒNG HỒ (3 số) để chọn RC bên trong hoặc tinh thể bên ngoài. Tôi thường để nó cho RC nội bộ, cho phép bạn có thêm 2 chân để giải phóng tinh thể bên ngoài để sử dụng làm chân PORT cho các dự án AVR của bạn. Thông thường tinh thể bên ngoài là cần thiết khi bạn cần thời gian chính xác cao trong dự án của mình. Đối với người học RC nội bộ là đủ.

Thông thường, một khi bạn ổn định với một số kết hợp cầu chì, bạn sẽ không thay đổi nó. Nó sẽ là một lần. Bạn sẽ chỉ flash ROM hoặc đôi khi cả EEPROM. Để nhấp nháy, tệp.eep riêng biệt EEPROM được tạo bởi studio WINAVR / ATMEL của bạn nếu chương trình của bạn sử dụng EEPROM để lưu trữ dữ liệu. Nếu không, EEPROM không được sử dụng, chứa đầy dữ liệu 'FF' hiển thị 'trạng thái KHÔNG DỮ LIỆU' của EEPROM.

Bước 7: Giá trị cuối cùng của Bits cầu chì

Giá trị cuối cùng của Bits cầu chì
Giá trị cuối cùng của Bits cầu chì

Sau khi thiết lập tất cả các bit Cầu chì và đóng các hộp CHI TIẾT mà bạn đã sử dụng, bạn có thể thấy giá trị của các bit Cầu chì như được chương trình tính toán (xem hình). Tất cả những gì còn lại là đưa ra một "Cầu chì ghi" bằng cách sử dụng menu Và xem các thông báo báo cáo đã ghi thành công. Sau đó, bạn cũng có thể đưa ra ĐỌC TẤT CẢ từ menu và kiểm tra xem các cầu chì được đọc trong TAB cuối cùng của màn hình ổ ghi có trùng với những gì bạn muốn ghi vào chip hay không. (Xác minh cầu chì).

Bạn sẽ nhận thấy rằng ở phần đầu của Có thể hướng dẫn này khi chúng tôi thực hiện ĐỌC FUSES, màn hình hiển thị các giá trị FUSE giống như chúng ta thấy ở đây! Đó là bởi vì đây là những cầu chì tôi thường sử dụng và hiếm khi thay đổi chúng khi tôi đặt chúng trong MCU của mình, trừ khi tôi thay đổi tần số từ 1 Mhz đến 4Mhz cho một số dự án. AVR có thể được đặt ở mức tối đa 20Mhz (một số chip chỉ lên đến 16Mhz). Tần số bạn đặt cho F_cpu cũng phụ thuộc vào Điện áp bạn cung cấp cho chip! Ví dụ: nếu chip của bạn hoạt động từ 1,8V Vcc đến 5,5V Vcc (tham khảo bảng dữ liệu), bạn sẽ không mong đợi chip của mình chạy ở 20 mhz nếu bạn chỉ cung cấp 1,8V cho nó! bạn đang mong đợi quá nhiều từ nó! Một bảng trong bảng dữ liệu cho bạn biết ở mức điện áp nào mà tần số xuất hiện ở con số nào. Tần suất hoạt động của chip càng cao, càng nhiều nhiệt và càng tiêu tốn nhiều điện năng. Hãy nghĩ về Tần số giống như Nhịp tim của động vật. Một con Chim ruồi có nhịp tim cao sẽ đốt cháy năng lượng mỗi phút cao hơn so với Cá voi hoặc voi có nhịp tim thấp hơn nhiều! Nhưng sau đó nó có thể làm được nhiều hơn thế trong thời gian ngắn hơn. MCU chỉ là như vậy.

Bước 8: Kết thúc

Bây giờ bạn đã hoàn thành tất cả các bước trong eXtreme burner, bạn đã đọc ROM của chip, bạn mở một tệp HEX và flash nó vào chip và xác minh đèn flash đã OK, bạn cũng học cách đặt cầu chì và flash chúng vào chip.

Nếu bạn có bất kỳ câu hỏi nào, tôi sẽ sẵn lòng trả lời hoặc sửa đổi hướng dẫn để làm cho nó rõ ràng hơn.

Đối với một số chip, bạn có thể thấy mục nhập của nó bị thiếu trong danh sách thả xuống lựa chọn chip trong menu. Hoặc bạn có thể phải đối mặt với lỗi ghi và xác minh lỗi. Trong những trường hợp như vậy, vui lòng đọc "Hacking eXtreme Burner" có thể hướng dẫn khác của tôi để giải quyết vấn đề.

Chúc bạn lập trình vui vẻ.

Đề xuất: