สารบัญ:

Atmega328P-PU Bootloader (Optiboot) คู่มือการเผาไหม้: 12 ขั้นตอน
Atmega328P-PU Bootloader (Optiboot) คู่มือการเผาไหม้: 12 ขั้นตอน

วีดีโอ: Atmega328P-PU Bootloader (Optiboot) คู่มือการเผาไหม้: 12 ขั้นตอน

วีดีโอ: Atmega328P-PU Bootloader (Optiboot) คู่มือการเผาไหม้: 12 ขั้นตอน
วีดีโอ: How To Run Atmega 328,168,88,8 without XTAL, How to Burn bootloader on Atmega without crystal, xtal 2024, กรกฎาคม
Anonim
คู่มือการเผาไหม้ Atmega328P-PU Bootloader (Optiboot)
คู่มือการเผาไหม้ Atmega328P-PU Bootloader (Optiboot)

อีก Atmega bootloader กำลังเบิร์น giude แต่คราวนี้ฉันเดิมพันที่ความพยายามครั้งแรกที่คุณจะประสบความสำเร็จ!!

นี่คือบทแนะนำการเบิร์น Bootloader ของ Nick Gammons สำหรับบอร์ด Arduino

ขั้นตอนที่ 1: คำไม่กี่คำ

คำไม่กี่คำ
คำไม่กี่คำ

ไมโครคอนโทรลเลอร์ Atmega328P-PU เป็นหนึ่งในชิป Arduino ที่ได้รับความนิยมมากที่สุดที่ใช้กันทั่วโลก แต่ที่สำคัญที่สุดคือ Atmega ที่เปลือยเปล่ายังคงทำในสิ่งที่ Uno R3 มาตรฐานสามารถทำได้ เหตุผลหลักที่ฉันชอบไมโครคอนโทรลเลอร์นี้คือโหมด "พลังงานต่ำ" ฉันได้เขียนภาพร่างใหม่สำหรับเซ็นเซอร์สองสามตัว และตอนนี้ฉันกำลังทดสอบพวกมันอยู่

ย้อนกลับไปเมื่อไม่กี่ปีที่ผ่านมา เมื่อฉันเริ่มเล่นกับ Arduino คำสั่งแรกของฉันคือไมโครคอนโทรลเลอร์ Atmega328P ต่อมาฉันรู้ว่าสิ่งที่ฉันสั่งจาก Aliexpress เป็นชิปเปล่า ชิปราคาถูกมากใน Ali คุณสามารถซื้อได้ตั้งแต่ 1.40 ดอลลาร์ แต่พวกเขาไม่มี Uno Bootloader (Optiboot) และหากไม่มีมันฉันก็ไม่สามารถอัปโหลดภาพร่างได้ แตกยากแฮะ??!! มันเป็นการอาบน้ำที่เย็นมากสำหรับฉัน ……. ดังนั้นฉันจึงค้นหาวิธีที่จะเบิร์น bootloader ลงในชิป ฉันได้ลอง 5 หรือ 6 วิธี แต่ไม่มีโชค หลังจากผ่านไปหนึ่งสัปดาห์ฉันพบหัวข้อในฟอรัมเว็บไซต์ที่กล่าวถึงบทแนะนำการเบิร์น bootloader ของ Nick Gammon ความพยายามครั้งแรกและความสำเร็จ!!:D ตอนนี้ฉันจะแสดงวิธีเบิร์น bootloader ให้กับชิป Atmega328P-PU เปล่าอย่างง่ายดายโดยไม่ต้องยุ่งกับ Arduino IDE

ขั้นตอนที่ 2: Bootloader คืออะไร (ออปติบูต)

bootloader เป็นโปรแกรมขนาดเล็ก (ไฟล์ HEX, 0.5Kbyte) ที่ให้คุณอัปโหลดภาพสเก็ตช์ไปยังหน่วยความจำแฟลชได้โดยตรงจาก Arduino IDE ไฟล์ HEX จะทำงานก่อนโปรแกรมหลักเสมอ และนั่นเป็นเหตุผลที่จำเป็น

ไม่มี bootloader:

- ไมโครคอนโทรลเลอร์ยังสามารถตั้งโปรแกรมได้! (ใช่ เป็นไปได้) แต่คุณจะต้องใช้โปรแกรมเมอร์ AVR โดยเฉพาะเพื่อทำเช่นนั้น และไม่ถูก!

- ไม่สามารถตั้งโปรแกรมผ่าน Arduino IDE ได้

bootloaders ที่รองรับของวิธีนี้:

Atmega8 (1024 ไบต์)

Atmega168 Optiboot (512 ไบต์)

Atmega328 Optiboot (สำหรับ Uno ฯลฯ ที่ 16 MHz) (512 ไบต์)

Atmega328 (8 MHz) สำหรับ Lilypad เป็นต้น (2048 ไบต์)

Atmega32U4 สำหรับ Leonardo (4096 ไบต์) Atmega1280 Optiboot (1024 ไบต์)

Atmega1284 Optiboot (1024 ไบต์)

Atmega2560 พร้อมการแก้ไขปัญหาตัวจับเวลาจ้องจับผิด (8192 ไบต์)

Atmega16U2 - bootloader บนชิปอินเตอร์เฟส USB ของ Uno

Atmega256RFR2 - bootloader บนบอร์ด Pinoccio Scout

รหัสสำหรับโปรแกรมโหลดบูตต่อไปนี้รวมอยู่ในภาพร่าง และจะถูกดาวน์โหลดโดยขึ้นอยู่กับว่าตรวจพบลายเซ็นใด

ดังนั้นเราจึงมีทุกสิ่งที่เราต้องการ

ขั้นตอนที่ 3: Arduino Sketches Master

Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master
Arduino Sketches Master

ก่อนอื่นคุณต้องมีห้องสมุด Arduino

ดาวน์โหลดได้จากที่นี่:

หรือดาวน์โหลดได้จากที่นี่

หลังจากที่คุณดาวน์โหลดแตกไฟล์ไปยังห้องสมุด Arduino แล้วมองหา Board Programmer เปิดและเรียกใช้ Board Programmer.ino

ขั้นตอนที่ 4: การตั้งค่าฮาร์ดแวร์

การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์
การติดตั้งฮาร์ดแวร์

มี 3 วิธีในการต่อสายก่อนตั้งโปรแกรม:

- ใช้โล่ AVR ISP

- Arduino A ถึง Arduino B

- และวิธีการเขียงหั่นขนม

ในภาพคุณสามารถดูวิธีการวางสาย บนเขียงหั่นขนม ตัวเก็บประจุเซรามิกไม่จำเป็นจริงๆ แต่ต้องเพิ่มคริสตัล 16Mhz

ฉันใช้โล่ AVR ISP ของฉันในครั้งนี้

เป้าหมายของวิธีนี้คือโปรแกรมใช้มอนิเตอร์แบบอนุกรมเพื่อเข้าถึงหน่วยความจำแฟลชเพื่อเขียน Optiboot (bootloader)

ขั้นตอนที่ 5: การเขียนโปรแกรม

การเขียนโปรแกรม!
การเขียนโปรแกรม!
การเขียนโปรแกรม!
การเขียนโปรแกรม!

หลังจากตั้งค่าฮาร์ดแวร์เสร็จแล้ว ให้รัน Board Programmer.ino!

รวบรวมและอัปโหลดไปยัง Arduino ของคุณ แต่อย่าปิดหน้าต่าง !! คุณจะต้องการมัน:)

การอัปโหลดจะใช้เวลาสองสามวินาที

ขั้นตอนที่ 6: ตัดการเชื่อมต่อ

หลังจากที่คุณอัปโหลดภาพสเก็ตช์แล้ว ยกเลิกการเชื่อมต่อ Arduino จากพีซีของคุณและเชื่อมต่อทุกอย่างหากคุณวางแผนที่จะทำเช่นนี้บนเขียงหั่นขนม

หากคุณใช้ตัวป้องกัน AVR ให้ใส่ชิป Atmega ลงในซ็อกเก็ต ZIF และ "ล็อค" ไว้

สำคัญมาก: ตราบใดที่ไม่ได้ตั้งค่าฮาร์ดแวร์ โปรเซสเซอร์จะต้องไม่ได้รับ VCC!! ด้วยวิธีนี้คุณจะเสี่ยงเสียหาย!!

ขั้นตอนที่ 7: เชื่อมต่อ

เชื่อมต่อ!
เชื่อมต่อ!

ตกลง! ฮาร์ดแวร์ได้รับการตั้งค่าและทุกอย่างอยู่ในตำแหน่งที่เราเชื่อมต่อ Arduino กับพีซี

ถัดไปเปิด Serial monitor และตั้งค่า baud rate 115200 แล้วคุณจะเห็นสิ่งนี้

ในจอภาพแบบอนุกรม คุณจะเห็นว่า Arduino เข้าสู่โหมดการเขียนโปรแกรมแล้ว เย็น!!:)

เนื่องจากเราต้องการตั้งโปรแกรม Uno (Atmega328P) ให้พิมพ์ "U" ในข้อความแจ้งและกด Enter

ขั้นตอนที่ 8: สถานะการเขียนโปรแกรม

สถานะการเขียนโปรแกรม!
สถานะการเขียนโปรแกรม!

ในหน้าต่างถัดไปคุณจะเห็นสิ่งนี้

เราจะไม่เลิกหรือยืนยัน พิมพ์ G แล้วกด Enter!

ขั้นตอนที่ 9: ความสนุกเริ่มต้นขึ้น!:)

ความสนุกเริ่มต้นขึ้น!:)
ความสนุกเริ่มต้นขึ้น!:)

หลังจากกด Enter คุณจะเห็นสิ่งนี้:

กำลังลบชิป …กำลังเขียน bootloader …

ยอมรับหน้าเริ่มต้นที่ 0x7E00 ยอมรับหน้าเริ่มต้นที่ 0x7E80

คอมมิตเพจเริ่มต้นที่ 0x7F00

คอมมิตเพจเริ่มต้นที่ 0x7F80

เขียน. กำลังตรวจสอบ …

ไม่พบข้อผิดพลาด

กำลังเขียนฟิวส์ …LFuse = 0xFF

HFuse = 0xDE

EFuse = 0xFD

ล็อคไบต์ = 0xEF การปรับเทียบนาฬิกา = 0x9E

เสร็จแล้ว.

โหมดการเขียนโปรแกรมปิดอยู่ พิมพ์ 'C' เมื่อพร้อมใช้ชิปตัวอื่นต่อ …

และวันแห่งความสุข!!:D ชิป Atmega328P ของคุณพร้อมที่จะอัปโหลดภาพร่างแล้ว!

มันง่ายใช่มั้ย:)

ขั้นตอนที่ 10: ชิปใหม่

หากคุณต้องการตั้งโปรแกรมชิปตัวอื่นให้ถอด Arduino จากพีซีของคุณ ให้แทนที่ชิปด้วยอันเปล่า เชื่อมต่อ Arduino อีกครั้งและทำตามขั้นตอนอีกครั้ง

หากจอภาพอนุกรมไม่ตอบสนองหลังจากเชื่อมต่อ Arduino อีกครั้ง อย่าตกใจเพียงแค่ปิดและเปิดใหม่

ขั้นตอนที่ 11: การปฏิเสธความรับผิด !

ฉันไม่ได้เป็นเจ้าของสิ่งนี้ !! เครดิตทั้งหมดเป็นของ Nick Gammon !!

ฉันเพิ่งแสดงวิธีนี้ในคำแนะนำนี้

หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์

ขอให้เป็นวันที่ดี.

ขั้นตอนที่ 12: เมื่อสิ่งแปลก ๆ เกิดขึ้น

เมื่อเรื่องแปลกๆ เกิดขึ้น
เมื่อเรื่องแปลกๆ เกิดขึ้น
เมื่อสิ่งแปลกประหลาดเกิดขึ้น
เมื่อสิ่งแปลกประหลาดเกิดขึ้น

เมื่อเร็ว ๆ นี้ฉันได้รับ Arduino Nano พร้อมโปรเซสเซอร์ Atmega328P-MU

ดังนั้นฉันจึงลองอัปโหลดภาพสเก็ตช์ไปยังมัน แต่ก็ทำไม่ได้ โปรเซสเซอร์ไม่ตอบสนองต่อตัวเลือก Atmega328

ตกลง! ดังนั้น bootloader อาจเสียหายและจำเป็นต้องเขียนใหม่ ฉันต่อสายเข้ากับ Arduino ตัวอื่นและทำการเบิร์น bootloader ยังคงไม่มีอะไร……!!!!

โอเค ฉันต้องการเบรก (กาแฟกับบุหรี่)!! เป็นโอกาสสุดท้ายที่ฉันเลือก Arduino Uno อีกครั้งเป็นเป้าหมาย อัพโหลดเสร็จแล้ว:D

ในเวลานี้ฉันมีนาโนที่ทำหน้าที่เหมือน Arduino Uno ฉันไม่รู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น แต่ฉันคิดว่านี่เป็นเพราะลายเซ็นโปรเซสเซอร์ อย่างไรก็ตามมันทำให้วันของฉันเป็นจริงและมันค่อนข้างตลก:)

แนะนำ: