สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
นี่เป็นคำแนะนำเล็กน้อยในการแฟลชเฟิร์มแวร์ใหม่บน USBasp-clone เช่นของฉัน คู่มือนี้เขียนขึ้นโดยเฉพาะสำหรับ USBasp-clone ที่เห็นในรูปภาพ แต่ควรทำงานร่วมกับผู้อื่นได้ การเดินสายไฟแสดงในขั้นตอนที่ 5 มี TL;DR ในขั้นตอนที่ 9
สนุก!
ขั้นตอนที่ 1: ปัญหา
Avrdude บอกฉันว่าโปรแกรมเมอร์ที่ฉันใช้อยู่มีเฟิร์มแวร์ที่ล้าสมัย จัมเปอร์ปกติสำหรับการเขียนโปรแกรมด้วยตนเองไม่มีอยู่บนกระดานของฉัน นี่คือวิธีการแก้ไข แผนผังสำหรับ USBasp สามารถพบได้ที่ fischl.de
ขั้นตอนที่ 2: วัสดุที่จำเป็น
คุณจะต้องการ…
- หัวแร้ง
- Arduino (ควรเป็นนาโน)
- สายจัมเปอร์บางส่วน
- พีซีที่ติดตั้ง Arduino IDE และ avrdude
ขั้นตอนที่ 3: การแก้ปัญหา
เพื่อให้เราสามารถแฟลชเฟิร์มแวร์ใหม่บน ATmega8 ได้ เราจำเป็นต้องควบคุมพิน RESET ของมัน โดยปกติจัมเปอร์บน USBasp สามารถปิดได้เพื่อเปิดใช้งานการตั้งโปรแกรมด้วยตนเอง อย่างไรก็ตาม ผู้ผลิตบอร์ดของฉันไม่ได้รวมไว้
บน ATmega8 พิน RESET คือพิน 29 ซึ่งเป็นพินที่สี่ที่ด้านบนจากด้านซ้าย มันถูกเชื่อมต่อกับตัวต้านทานแบบดึงขึ้น 10k ถึง 5V เราต้องเชื่อมต่อกับพิน 5 ของส่วนหัว ICSP
เราสามารถลองบัดกรีลวดโดยตรงบนตัวต้านทานหรือตัวพิน อย่างไรก็ตาม มันน่าเบื่อหน่ายและอาจทำให้บอร์ดของคุณเสียหายได้ (ฉันลองแล้วดึงตัวต้านทานแบบดึงขึ้นออก ฉันไม่แนะนำ) นอกจากนี้ยังมีวิธีที่ง่ายกว่านั้นมาก!
แม้ว่าผู้ผลิตจะไม่ได้ใส่จัมเปอร์จริงเพื่อเปิดใช้งานการตั้งโปรแกรมด้วยตนเอง แต่เขาได้วางส่วนหัวไว้ใต้ไมโครคอนโทรลเลอร์ เราสามารถบัดกรีลวดข้ามและ…
ขั้นตอนที่ 4: Voila
เราได้เชื่อมต่อหมุดรีเซ็ตสองตัวแล้ว! สองรูที่ด้านล่างเชื่อมต่อพิน 29 และพิน 14 ของไมโครคอนโทรลเลอร์
ขั้นตอนที่ 5: การตั้งค่า Arduino
ในการแฟลชเฟิร์มแวร์ใหม่ไปยังโปรแกรมเมอร์ เราจำเป็นต้องมีโปรแกรมเมอร์อีกตัวหนึ่ง ในกรณีนี้คือ Arduino พร้อมร่าง ArduinoISP เพียงเพื่อให้แน่ใจว่าการตั้งค่าของคุณเหมือนกัน โปรดยกเลิกการใส่เครื่องหมายบรรทัด 81
// #define USE_OLD_STYLE_WIRING
ตอนนี้เชื่อมต่อ Arduino กับส่วนหัว ICSP บนโปรแกรมเมอร์ของคุณ
Arduino USBasp
5V ขา 2 (VCC) GND ขา 4/6/8/10 (GND) ขา 10 ขา 5 (รีเซ็ต) ขา 11 ขา 9 (MISO) ขา 12 ขา 1 (MOSI) ขา 13 ขา 7 (SCK)
USBasp ยังคงไม่ได้เสียบปลั๊กจากพีซี
เปิดเทอร์มินัลแล้วพิมพ์
avrdude -cavrisp -pm8 -b19200 -P[หมายเลขพอร์ตของคุณอยู่ที่นี่ มันควรจะเหมือนกับใน Arduino IDE]
หากทุกอย่างถูกต้อง avrdude ควรพิมพ์ข้อมูลบางอย่างเกี่ยวกับ ATmega8 (ฟิวส์ ลายเซ็น ฯลฯ)
ขั้นตอนที่ 6: กระพริบ ATmega8
ในการแฟลชชิป เรายังต้องการเฟิร์มแวร์ ตรงไปที่ fisch.de และดาวน์โหลดเวอร์ชันใหม่ล่าสุด แตกไฟล์เก็บถาวรและไปที่มันโดยใช้เชลล์
การรวบรวมรหัสไม่ได้ผลสำหรับฉัน แต่โชคดีที่ไฟล์เก็บถาวรมีโปรแกรมที่คอมไพล์ทั้งหมดภายใต้
ถังขยะ/เฟิร์มแวร์
ที่นี่คุณควรเห็นไฟล์.hex สามไฟล์ เลือกอันที่มีชื่อเดียวกับชิปของคุณ โปรแกรมเมอร์ของฉันใช้ ATmega8 ดังนั้นฉันจึงเลือก
usbasp.atmega8.yyyy-mm-dd.hex
ด้วยการเชื่อมต่อที่ใช้งานได้กับ ATmega8 การกะพริบควรต้องพิมพ์เท่านั้น
avrdude -cavrisp -pm8 -b19200 -P[PORT] -U flash:w:[ไฟล์ฐานสิบหก]
หากทุกอย่างถูกต้อง avrdude ควรเขียนและตรวจสอบเฟิร์มแวร์ที่เลือก
ขั้นตอนที่ 7: ตรวจสอบให้แน่ใจว่าโปรแกรมเมอร์ทำงาน
หากต้องการใช้ USBasp เป็นโปรแกรมเมอร์อีกครั้ง เราต้องถอดการเชื่อมต่อระหว่างพิน 29 และพิน 14 ออก การตัดจัมเปอร์ที่ด้านล่างน่าจะเพียงพอ อย่างไรก็ตาม การถอดจัมเปอร์ออกก็ไม่เสียหายเช่นกัน
คุณสามารถลองใช้งานได้โดยเสียบกลับเข้าไปในพีซีแล้วพิมพ์
avrdude -cusbasp -pm8
แม้ว่า avrdude ไม่สามารถเข้าถึงเป้าหมายได้ แต่อย่างน้อยก็ควรยอมรับเฟิร์มแวร์ใหม่ของโปรแกรมเมอร์ของเรา
ขั้นตอนที่ 8: การแก้ไขปัญหา
หากแสดงข้อผิดพลาดเช่นนี้ อาจเกี่ยวข้องกับคุณสมบัติการรีเซ็ตอัตโนมัติของ Arduino เพื่อหลีกเลี่ยงปัญหานี้ โปรดเพิ่มตัวเก็บประจุระหว่าง RESET และ GND ของ Arduino โดยทั่วไปแนะนำให้ใช้ตัวเก็บประจุขนาด 10µF แต่ในกรณีของฉัน ตัวเก็บประจุขนาด 100µF ก็ทำงานได้ดี
คุณควรได้รับข้อผิดพลาดเช่น
avrdude: ข้อผิดพลาด: เปิดใช้งานโปรแกรม: เป้าหมายไม่ตอบ 1
หรือมีการส่งคืนลายเซ็นที่ไม่ถูกต้อง โปรดตรวจสอบการเดินสายของคุณ ฉันมีปัญหากับสายไฟของฉันเป็นสนิมและไม่นำไฟฟ้าอีกต่อไป ฉันแนะนำให้ตรวจสอบสายจัมเปอร์ทั้งหมดล่วงหน้า
ตรวจสอบให้แน่ใจว่าได้สลับพิน 11 และพิน 12 บน Arduino หากปัญหายังคงมีอยู่
โปรดตรวจสอบให้แน่ใจว่าได้ตั้งค่าอัตราบอดที่ถูกต้องสำหรับ Arduino เป็น ISP, 19200 ซึ่งสามารถตั้งค่าได้ด้วยตัวเลือก
-b19200
หากมีข้อสงสัยหรือพบเห็นผิดพลาดแจ้งได้นะคะ:)
ขั้นตอนที่ 9: TL;DR
- บัดกรีลวดผ่านหมุดสองตัวที่ด้านล่างของบอร์ด
- ตั้งค่า Arduino เป็น ISP ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานสคีมาการเดินสายแบบเก่าแล้ว
- เชื่อมต่อ Arduino กับโปรแกรมเมอร์ผ่านส่วนหัว ICSP
- แฟลชเฟิร์มแวร์ใหม่ไปยังโปรแกรมเมอร์
- ถอดการเชื่อมต่อที่ด้านล่าง
- อย่าฉีกตัวต้านทาน SMD ใด ๆ