Mục lục:
Video: Cách lập trình AVR (arduino) với Arduino khác: 7 bước
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Lệnh này hữu ích nếu:
* bạn đã có arduino của mình với atmega168 và bạn đã mua một atmega328 tại cửa hàng điện tử địa phương. Nó không có bộ nạp khởi động arduino * bạn muốn tạo một dự án không sử dụng arduino - chỉ là chip AVR thông thường (như USBTinyISP) - bạn có một attiny2313 / attiny48, v.v. sạch mà bạn muốn ghi phần sụn vào. Thông thường, bạn sẽ phải có ISP (In System Programmer) như USBTinyISP để lập trình chip mới của mình. Có arduino, bạn có thể dạy nó trở thành một lập trình viên nhờ công lao tuyệt vời của Randall Bohn. Anh ấy đã tạo ra Mega-ISP - một bản phác thảo arduino hoạt động như một lập trình viên.
Bước 1: Bạn cần gì?
* một Arduino đang hoạt động (hoặc một bản sao - tôi đang sử dụng BBB - BareBonesBoard và RBBB - RealBareBonesBoard của ModernDevices) * một con chip mà bạn muốn lập trình (được thử nghiệm với atmega8, atmega168, atmega368, attiny2313, attiny13) * một breadboard hoặc bảng có tiêu đề ISP * 3 đèn LED + 3 điện trở * dây bảng mạch
Bước 2: Tạo lập trình Mega-isp trên Breadboard
Có hai cách để kết nối Arduino của bạn với lập trình chip.
Bạn có thể cắm chip avr của mình vào breadboard và kết nối 5v và GND với các chân tương ứng (kiểm tra biểu dữ liệu!) + Một điện trở pullup để đặt lại và nối các chân từ arduino của bạn đến chip. Đây là các dòng trên Arduino và chức năng của chúng 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Hoặc bạn có thể tạo một tiêu đề ISP 2x3pin mà bạn có thể cắm vào bảng cung cấp một bảng (bảng arduino khác). Sơ đồ chân của tiêu đề ISP nằm trên hình thứ ba Có 3 đèn led để biểu thị trạng thái của người lập trình. chân 9 - đèn led màu xanh - đó là nhịp tim của lập trình viên. chân 8 - đèn LED màu đỏ - cho biết lỗi chân 7 - đèn LED màu xanh lá cây - cho biết rằng chương trình đang diễn ra (tôi lười biếng nên tôi đã không phù hợp với màu sắc trong thiết lập của mình) Đây là các bản vẽ được thực hiện bằng Fritzing Bạn có thể alsa thực hiện Lá chắn MEGA-isp. Yaroslav Osadchyy thiết kế chiếc khiên hình đại bàng. Bạn có thể lấy các tệp đại bàng trên trang web của anh ấy:
Bước 3: Tải lên bản phác thảo
Tải xuống bản phác thảo từ mã google mega-isp. (Avrisp.03.zip tại thời điểm viết bài). Giải nén nó và chạy arduino Ide và mở avrisp.pde. Tải nó lên bảng arduino của bạn. Nhịp tim dẫn nên bắt đầu đập.
Bước 4: Sử dụng với Avrdude
Để sử dụng với avrdude (và tất cả các GUI sử dụng nó), bạn phải chọn trình lập trình 'avrisp'. tốc độ bit an toàn nhất là 19200.
Để kiểm tra atmega168 mới của bạn từ dòng lệnh, hãy thử: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 là cổng mà arduino được kết nối với hộp linux của tôi (của bạn có thể là com5). Điều này có thể được kiểm tra trong arduino IDE trong Công cụ -> Cổng nối tiếp. Bạn sẽ nhận được: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: Thiết bị AVR được khởi tạo và sẵn sàng chấp nhận hướng dẫn Đọc | ##################################################### | 100% trung bình 0,13 giây: Chữ ký thiết bị = 0x1e9406 trung bình: safemode: Cầu chì OK avrdude xong. Cảm ơn bạn. Điều đó có nghĩa là mọi thứ đều ổn. Nếu bạn gặp lỗi - hãy kiểm tra bước cuối cùng.
Bước 5: Ghi chương trình cơ sở USBtinyISP sang Attiny2313
USBTinyISP là một lập trình viên tuyệt vời của LadyAda với giá thực sự rẻ - 22 đô la. Tôi có một chiếc attiny2313 dự phòng và một số bộ phận nên tôi quyết định tự làm một chiếc. Nếu bạn không có bất kỳ kinh nghiệm nào trong việc chế tạo PCB, tôi khuyên bạn nên mua bộ này vì nó có chất lượng cao hơn bạn có thể tự làm:). Ít nhất hãy mua PCB nếu bạn muốn chế tạo một chiếc. Bạn có thể lấy nó từ Adafruit. Kết nối ATtiny2313 Trong hình cuối cùng, bạn có thể thấy attiny2313 với các chân được sử dụng cho ISP màu đỏ. Hình ảnh là từ hướng dẫn của LadyAda avr. Ghi chương trình cơ sở: Giải nén chương trình cơ sở USBTinyISP. Truy cập spi dir và chạy $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 để kiểm tra xem mọi thứ có ổn không với chip. Bây giờ đặt cầu chì: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Bây giờ bạn nên gắn bộ dao động bên ngoài 12mhz vào chip. Và ghi phần vững: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Thì đấy. Attiny2313 của bạn có phần sụn USBTinyISP.
Bước 6: Ghi bộ nạp khởi động Arduino
Tôi đã gian lận một chút vì tôi đã sử dụng RBBB để đơn giản hóa các kết nối. Lược đồ trên hình số 2. Nếu bạn sử dụng 2 arduinos, hãy sử dụng hình # 3 và kết nối chân ISP với ICSP 2x3header trên arduino thứ hai (nô lệ). Chỉ kết nối nguồn usb với bo mạch thứ nhất. Cách làm GUI Đây là một chút phức tạp vì bạn không thể chỉ sử dụng Tools-> Burn Bootloader -> w / AVR ISP vì tốc độ mặc định quá lớn so với mega-isp. Tìm avrdude.conf đi kèm với arduino IDE (trong arduino / hardware / tools / avrdude.conf) và thay đổi giới hạn cho lập trình viên avrisp từ 115200 thành 19200 (khoảng dòng 312) Tìm và thay đổi trong avrdude.conf lập trình viên id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # mặc định là 115200 type = stk500;; thành: lập trình viên id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # mặc định là 115200 type = stk500;; Bây giờ bạn có thể sử dụng Công cụ -> Ghi Bootloader -> w / AVR ISP (sau khi bạn chọn bảng thích hợp từ menu Công cụ) Commanline Bạn cũng có thể sử dụng dòng lệnh: Chỉnh sửa arduino / phần cứng / bootloaders / atmega / Makefile và thay đổi ISPTOOL / PORT / SPEED thành: # nhập các thông số cho công cụ avrdude isp ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 không, bạn có thể viết $ make diecimila_isp để ghi cầu chì và bộ nạp khởi động. Kiểm tra Bây giờ hãy kết nối bạn arduino mới với usb và đốt cháy chớp mắt!
Bước 7: Khắc phục sự cố
Lỗi Avrdude: avrdude: ser_open (): không thể mở thiết bị "/ dev / ttyUSB0": Không có tệp hoặc thư mục như vậy Bạn đã chỉ định sai cổng (-P) hoặc arduino của bạn không được kết nối. kiểm tra mức trung bình của kết nối: Device signature = 0x000000 avrdude: Rất tiếc! Chữ ký thiết bị không hợp lệ. Kiểm tra kỹ các kết nối và thử lại hoặc sử dụng -F để ghi đè kiểm tra này. Đây là loại lỗi chung. Con chip của bạn không được nhận dạng. Kiểm tra kết nối trên bo mạch (GND / 5V được kết nối với các chân?) Bạn sẽ gặp lỗi này khi chip của bạn được định cấu hình để sử dụng bộ tạo dao động bên ngoài và nó không hoạt động (không có hoặc nó không dao động thích hợpl - mũ 22pf mất tích ?)