แผนภาพการทำงานของโปรแกรมเมอร์ usb atmega8 โปรแกรมเมอร์ USB ขนาดเล็กสำหรับไมโครคอนโทรลเลอร์ AVR แผนผังของโปรแกรมเมอร์ USB

💖 ชอบไหม?แชร์ลิงก์กับเพื่อนของคุณ

06-01-2011

คำอธิบาย

โปรแกรมเมอร์ AVR ที่เรียบง่ายนี้จะช่วยให้คุณสามารถโหลดโปรแกรม hex ลงในไมโครคอนโทรลเลอร์ ATM AVR ส่วนใหญ่ได้อย่างง่ายดายโดยไม่ต้องเสียสละงบประมาณหรือเวลาของคุณ มีความน่าเชื่อถือมากกว่าโปรแกรมเมอร์ AVR ทั่วไปอื่นๆ ส่วนใหญ่ที่มีอยู่ และใช้เวลาในการประกอบน้อยกว่ามาก

โปรแกรมเมอร์ AVR ประกอบด้วยโปรแกรมเมอร์แบบอนุกรมในวงจร (พร้อมขั้วต่อ) และแผงวงจรพิมพ์ขนาดเล็กที่มีช่องเสียบ DIP ซึ่งคุณสามารถวางไมโครคอนโทรลเลอร์และตั้งโปรแกรมได้อย่างรวดเร็ว

คุณยังสามารถใช้โปรแกรมเมอร์นี้เป็นโปรแกรมเมอร์ในวงจรได้เท่านั้น ซึ่งคุณสามารถตั้งโปรแกรมไมโครคอนโทรลเลอร์ AVR ได้อย่างง่ายดายโดยไม่ต้องถอดออกจากอุปกรณ์

โปรแกรมเมอร์ AVR ทั้งหมดประกอบจากส่วนประกอบที่ใช้กันอย่างแพร่หลายและพอดีกับตัวเชื่อมต่อพอร์ต COM แผงวงจรพิมพ์ที่มีซ็อกเก็ต DIP ช่วยให้คุณสามารถแทรกไมโครคอนโทรลเลอร์ AVR ATmega8 28 พินในแพ็คเกจ DIP ลงไปได้ แต่คุณสามารถสร้างแผงวงจรพิมพ์สำหรับไมโครคอนโทรลเลอร์ในแพ็คเกจอื่น ๆ ได้ โปรแกรมเมอร์นี้เข้ากันได้กับซอฟต์แวร์ PonyProg ยอดนิยมซึ่งจะแสดงความคืบหน้าของกระบวนการเฟิร์มแวร์ในรูปแบบของแถบสถานะ

โปรแกรมเมอร์แบบอนุกรมในวงจร AVR

บอร์ดพร้อมช่องสำหรับ AVR

บอร์ดมีจำนวนส่วนประกอบขั้นต่ำและใช้สำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ภายนอกอุปกรณ์เป้าหมาย


บอร์ดประกอบด้วยซ็อกเก็ต DIP 28 พิน ตัวสะท้อนเสียงควอทซ์ 4 MHz หรือตัวสะท้อนเสียงที่มีตัวเก็บประจุ 22 pF สองตัว และขั้วต่อสองตัว ตัวเชื่อมต่อแบบสองพินใช้เพื่อเชื่อมต่อพลังงาน +5 V เข้ากับไมโครคอนโทรลเลอร์ AVR และใช้ตัวเชื่อมต่อแบบ 6 พินเพื่อเชื่อมต่อโปรแกรมเมอร์

การจ่ายไฟให้กับไมโครคอนโทรลเลอร์จากแหล่งแรงดันไฟฟ้าภายนอก แทนที่จะจ่ายไฟจากพอร์ตอนุกรมโดยตรง ช่วยให้มั่นใจได้ว่าคอนโทรลเลอร์จะได้รับไฟ 5V พอดี และรับประกันเฟิร์มแวร์ที่เชื่อถือได้และปราศจากข้อผิดพลาด

ซอฟต์แวร์ PonyProg

หากต้องการโหลดไฟล์ hex จากคอมพิวเตอร์ของคุณไปยังไมโครคอนโทรลเลอร์ คุณจะต้องดาวน์โหลดและติดตั้งซอฟต์แวร์ หลังการติดตั้ง สิ่งแรกที่ต้องทำคือกำหนดค่า PonyProg ให้ทำงานร่วมกับโปรแกรมเมอร์ AVR ในการดำเนินการนี้ไปที่เมนู "ตั้งค่า" และเลือก "การตั้งค่าอินเทอร์เฟซ" รูปด้านล่างเน้นตัวเลือกที่คุณควรเลือกอย่างแน่นอน

ขั้นตอนต่อไปคือเลือก "AVR micro" และประเภทของไมโครคอนโทรลเลอร์ที่คุณต้องการตั้งโปรแกรม (เช่น ATmega8)

ตอนนี้การกำหนดค่า PonyProg เสร็จสมบูรณ์แล้ว และเราสามารถเปิดไฟล์ hex ด้วยโปรแกรมที่จะฮาร์ดโค้ดลงในไมโครคอนโทรลเลอร์ได้ ไปที่เมนู "ไฟล์" เลือก "เปิดไฟล์โปรแกรม (FLASH) ... " และชี้ไปที่ไฟล์ hex ที่ต้องทำการแฟลช คุณควรเห็นค่าเลขฐานสิบหกคล้ายกับค่าที่แสดงในภาพด้านล่าง หากคุณยังไม่ได้เชื่อมต่อโปรแกรมเมอร์เข้ากับพอร์ตอนุกรมของคอมพิวเตอร์ ตอนนี้ก็ถึงเวลาดำเนินการแล้ว ตรวจสอบให้แน่ใจว่าโปรแกรมเมอร์ของคุณเชื่อมต่อทางกายภาพกับไมโครคอนโทรลเลอร์ AVR ผ่านทางซ็อกเก็ตบอร์ดหรือขั้วต่อ ICSP 6 พิน สุดท้าย คลิกที่ไอคอน "เขียนโปรแกรมหน่วยความจำ (FLASH)" ที่ไฮไลต์ไว้ หรือไปที่เมนู "คำสั่ง" และเลือก "เขียนโปรแกรม (FLASH)"

คลิกที่ปุ่ม "ใช่" เพื่อยืนยันรายการ

ตอนนี้นั่งลง ผ่อนคลาย และดูกระบวนการตั้งโปรแกรมโดยใช้ตัวบ่งชี้สถานะ PonyProg จะแฟลชไมโครคอนโทรลเลอร์ AVR และตรวจสอบว่าโหลดไฟล์ hex โดยไม่มีข้อผิดพลาดหรือไม่ โดยปกติกระบวนการนี้จะใช้เวลาระหว่าง 10 ถึง 30 วินาที ขึ้นอยู่กับขนาดของโปรแกรมที่คุณจะฝังลงในไมโครคอนโทรลเลอร์

หลังจากตั้งโปรแกรมแล้ว หน้าต่าง "เขียนสำเร็จ" จะปรากฏขึ้นเพื่อระบุว่าไมโครคอนโทรลเลอร์ AVR ได้รับการตั้งโปรแกรมไว้แล้วและพร้อมใช้งานแล้ว

  • ตรวจสอบการติดตั้งและการเชื่อมต่อกับไมโครคอนโทรลเลอร์เป้าหมาย
  • วงจรนี้ไม่มีการทหาร และไม่จำเป็นต้องสร้างมัน แต่ฉันเสียบพอร์ต com ของ Lonic เข้ากับคอมพิวเตอร์แล้วออกไปเลย แม้ว่าฉันจะยังมีบัฟเฟอร์อยู่ในพอร์ต com ก็ตาม เพื่อที่ฉันจะได้ไม่เผลอเผา สำหรับการใช้โปรแกรม Pony เราลืมสิ่งสำคัญอย่างหนึ่งที่จะพูด - เกี่ยวกับฟิวส์เพราะถ้าคุณติดตั้งไม่ถูกต้องชิปจะล็อค
  • พอร์ต com ล้าสมัยแล้ว หากมีเฉพาะ usb ก็ถือว่าการทำงานกับคอนโทรลเลอร์เสร็จสิ้นโดยไม่ต้องเริ่มด้วยซ้ำ ???? ไม่มีใครในเครือข่ายที่ให้บริการ usb-com และหากเป็นเช่นนั้นก็จะมีตัวควบคุมอยู่ในวงจร หากคุณประกอบเองตั้งแต่ต้น และไม่เหมือนที่หลาย ๆ คนทำตอนนี้ ฉันสั่งให้นักออกแบบยัดองค์ประกอบเข้าไปในรู บัดกรี แค่นี้ก็มีอัจฉริยะเพียงพอแล้ว และถ้าคุณถามคนแบบนั้นเขาก็จะไม่รู้จริงๆ แต่ฉันอยากรู้รายละเอียด
  • แน่นอนว่าไม่มีใครเสนอ (สะกดด้วยกัน!) เนื่องจากมีไมโครวงจรสำเร็จรูปจำนวนมากในการรวมโดยทั่วไป - สะพาน USB-COM สำหรับแหล่งจ่ายไฟ 5V และ 3.3V แต่โดยธรรมชาติแล้วพลเมืองที่รู้หนังสือมากจะไม่รู้เรื่องนี้ พวกเขาไม่ทราบเกี่ยวกับอะนาล็อก AVR910 จาก Prottos ซึ่ง MK จะแสดงผ่าน USB ด้วยพอร์ต COM เสมือนและตั้งโปรแกรมผ่าน ISP ตัวอย่างเช่น. ชนชั้นกระฎุมพีก็มีการออกแบบที่คล้ายกันมากมายเช่นกัน และแน่นอนว่าไม่มีคำอธิบายโดยละเอียด คุณต้องมองหาสิ่งนั้น และคุณต้องการบางสิ่งที่พร้อมทันที เพียงกดปุ่มเดียว ทุกอย่างก็อยู่บนจานสีเงิน หรืออาจจะดีกว่าที่จะสอนบทเรียน?
  • SergeBS ที่เคารพนับถือมาก ฟอรัมนี้ไม่ได้มีไว้สำหรับการสะกดผิด และโดยเฉพาะอย่างยิ่งไม่ใช่สำหรับการสอนเกี่ยวกับว่ามันคืออะไร ที่นี่จะขอความช่วยเหลือและคำแนะนำจากผู้รู้และเคยเจอปัญหานี้หรือปัญหานั้น แต่ความจริงที่ว่ามันเป็นแบบสำเร็จรูปและคุณสามารถซื้อได้โดยไม่ต้องรัดตัวเองก็เจ๋งอย่างแน่นอน ป.ล. อย่างไรก็ตามขอขอบคุณสำหรับการมีส่วนร่วมในปัญหา และขอขอบคุณเป็นพิเศษสำหรับคำสอนที่เป็นประโยชน์อย่างยิ่ง สวัสดีชนชั้นกระฎุมพี แต่ฉันไม่รู้ด้วยซ้ำว่าพวกเขามีอะไรมาก่อน? เราจะไปหาชาวนาที่ไหน?
  • ใช่. เช่นเดียวกับคนที่ "เจ๋ง" ที่เขียนอะไรก็ได้ที่พวกเขาต้องการ ยิ่งไปกว่านั้น พวกเขาไม่สามารถกำหนด "ปัญหา" ได้ด้วยซ้ำ น้ำมูกชอบ: “ฉันอยากรู้คำถามที่พบบ่อย แต่ฉันไม่รู้คำถามที่พบบ่อย” - ไม่นับ :)
  • คุณยังไม่รู้ว่าทั้งหมดนี้ทำมาจากอะไร... ที่ตลาดนัดในจีน ชิ้นส่วนสำหรับวงจรของคุณขายตามน้ำหนักเป็นกิโลกรัม และไม่มีมาตรฐานคุณภาพที่เกี่ยวข้องกับชิ้นส่วนดังกล่าว ซื้อเฉพาะสินค้าแบรนด์เนมจากบริษัทที่เกี่ยวข้อง
  • ฉันสั่งซื้อจากร้านค้าออนไลน์ (รัสเซีย) ลาก่อน (เอ่อ * 3) สำหรับข้อบกพร่อง/งานแฮ็ก ฯลฯ ไม่ได้บิน
  • สวัสดี! สวัสดีปีใหม่นะทุกคน! :) ฉันรวบรวมโปรแกรมเมอร์สำหรับ AVR ตามรูปแบบที่ระบุ (ตรวจสอบทุกอย่าง 3 ครั้ง) แต่ ponyprog 2000 ปฏิเสธที่จะเห็นและตั้งโปรแกรมคอนโทรลเลอร์ ATMega168-20PU - ทำให้อุปกรณ์มีข้อผิดพลาดสูญหายหรืออุปกรณ์ที่ไม่รู้จัก (-24) ฉันใช้ซีเนอร์ไดโอด KS407G, ทรานซิสเตอร์ KT3102AM และไดโอด KD522B ฉันมีควอตซ์ที่ 4.032 MHz ขับเคลื่อนโดย L7805 ก่อนที่ข้อผิดพลาดจะเกิดขึ้น ข้อความบริการจะมาถึง ซึ่งฉันตรวจสอบโดยใช้ Advanced Serial Port Monitor แต่ข้อความดังกล่าวจะเปิดและปิดเฉพาะในระหว่างขั้นตอนการบันทึกเท่านั้น ไม่มีข้อมูลสูญหาย ฉันตั้งค่า PonyProg2000 ตามคำแนะนำ เป็นขั้นเป็นตอน. อะไรอาจทำให้เกิดข้อผิดพลาดนี้ ฉันจำเป็นต้องเชื่อมต่อพิน 22 เข้ากับกราวด์และพิน 20 เข้ากับพลังงาน (กราวด์และพลังงานอะนาล็อก) หรือไม่ เหตุใดจึงไม่ได้ใช้การเลือกชิป (SS pin 16 ของคอนโทรลเลอร์) ขอบคุณสำหรับความช่วยเหลือ!
  • ฉันรวบรวมโปรแกรมเมอร์นี้และใช้: ตัวต้านทาน - ค่าที่ระบุ ทรานซิสเตอร์ - KT3102GM Diode H48 เป็นอะนาล็อกของไดโอดซีเนอร์ 1N4148 - BZX55C 5.1 โวลต์ นอกจากนี้ ควอตซ์ที่ 4 MHz และตัวเก็บประจุเซรามิก 2 ตัวที่ 22 pF แต่ฉันไม่คิดว่า จำเป็นเพราะว่า เราตั้งค่าการใช้ควอตซ์ภายใน/ภายนอกด้วยบิตที่ตั้งโปรแกรมได้ จากโรงงาน mikruhi ได้รับการตั้งโปรแกรมให้ใช้ควอตซ์ภายใน (ถ้าฉันจำไม่ผิด) ฉันต้องใช้พลังงานภายนอกจาก +5V พีซีเครื่องเดียวกับที่ฉันอัปโหลดเฟิร์มแวร์ ไดโอด H48 (เครื่องหมายนี้ไม่ปรากฏบนตัวเครื่องของไดโอดนี้) บนอินเทอร์เน็ตพวกเขาบอกว่านี่คืออะนาล็อกของ 1N4148 ทุกอย่างใช้งานได้สำหรับฉัน PonyProg 2000 อัปโหลดเฟิร์มแวร์ไปยัง ATmega8 สำเร็จ รูปภาพ http://i.imgur.com/34GhDcN.jpg http://i.imgur.com/gCzAuzA.jpg
  • ฉันอยากจะแนะนำหนึ่งในโปรเจ็กต์โคลน avr mk ii โดยอิงจาก lib และตัวอย่างจาก lufa คอนโทรลเลอร์ at90usb168 มักจะมาพร้อมกับ bootloader ซึ่งช่วยให้คุณอัปโหลดเฟิร์มแวร์ผ่าน USB หลังจากประกอบโดยไม่ต้องใช้โปรแกรมเมอร์ภายนอก รองรับ avr ปัจจุบันทั้งหมด รวมถึง xmega และ Tinki ใหม่ โปรโตคอล pdi/tpi ทำงานร่วมกับ avrstudio และเพื่อน ซึ่งเป็นเฟิร์มแวร์ที่แตกต่างกันสำหรับพวกเขา แหล่งที่มาเปิดอยู่ มีการแก้ไขจุดบกพร่องแล้ว ตัวอย่างเช่น สำหรับสตูดิโอใหม่ การเพิ่มเวอร์ชัน fw ในการตั้งค่าเฟิร์มแวร์ก็เพียงพอแล้ว กำลังรวบรวมเฟิร์มแวร์สำหรับ winavr เวอร์ชันของฉันในหัวข้อนี้ตั้งแต่อายุ 12 ปี พร้อมรูปถ่าย http://m.radiokot.ru/forum/viewtopic...rt=700&t=26417
  • สวัสดี ฉันรวบรวมโปรแกรมเมอร์นี้เพื่อแฟลชเฟิร์มแวร์ ATtiny 2313 ทุกอย่างใช้งานได้ เราอ่าน MK โดยไม่มีปัญหา แต่นี่คือปัญหา ผู้เขียนวงจรที่ฉันแฟลช MK เขียนว่าคุณสามารถแฟลชได้เป็นครั้งแรก มันไม่มีควอตซ์ภายนอก แต่ก่อนอื่นให้อัปโหลดเฟิร์มแวร์ MK แล้วเปลี่ยนฟิวส์ กล่าวโดยย่อคือฉันอัปโหลดเฟิร์มแวร์ ติดตั้งได้ดี จากนั้นฉันเปลี่ยนฟิวส์แล้วคลิกเขียน แต่หลังจากที่ฉันคลิกเขียนสิ่งนี้ออกมา: อุปกรณ์หายไปหรือไม่รู้จัก อุปกรณ์ (-24) และหลังจากนั้น MK จะไม่สามารถอ่านได้อีกต่อไป ปัญหาอาจเกิดจากอะไร
  • กลับมาแล้ว โปรดบอกฉันว่าฉันพยายามแฟลช ATtiny 2313 ด้วยควอตซ์ภายนอกและติดตั้งตัวเก็บประจุ 2 ตัว ควอตซ์ 8 MHz ตัวเชื่อมต่อ โปรแกรม เขาอ่าน MK เปิดเฟิร์มแวร์ในม้าตั้งค่าฟิวส์ซึ่งจำเป็นนี่คืออันจากโรงงาน http://i.imgur.com/rSdlENN.jpg และอันเหล่านี้จำเป็นต้องแฟลช http:/ /i.imgur.com/gc4yyxA.gif แต่อย่างอื่นที่ฉันสังเกตเห็นในการตั้งค่าจากโรงงานมีช่องทำเครื่องหมายหนึ่งช่องที่ไม่สามารถลบออกได้เรียกว่า SPIEN และช่องใดที่ต้องแฟลช ไม่มีช่องทำเครื่องหมายนี้ ตกลง ฉันจะดำเนินการต่อ ปัญหาหลังจากที่ผมเปิดเฟิร์มแวร์และตั้งค่า Fuse ดังภาพที่สอง ผมคลิก READ DEVICE เข้าสู่กระบวนการเฟิร์มแวร์ และสุดท้ายก็ออกมาเป็น http://i.imgur.com/UpR5qhE.jpg แล้วผมปิด ม้าแล้วเปิดอีกครั้งแล้วคลิกอ่าน MK และทำให้อุปกรณ์นี้หายไปหรืออุปกรณ์ที่ไม่รู้จัก (-24) เช่นเดียวกับที่ฉันแฟลชโดยไม่มีควอตซ์ภายนอกตามที่อธิบายไว้ข้างต้น และหลังจากนั้น MK นี้ก็ไม่ถูกอ่านอีกต่อไป ใครสามารถบอกฉันได้ว่ามีอะไร ผิด สิ่งที่ฉันทำผิด แค่ฉันได้ฆ่า MK ไป 3 ตัวแล้ว ขอบคุณมาก ฉันยังใหม่กับเรื่องนี้
  • ฉันได้รับข้อผิดพลาดนี้เฉพาะเมื่อฉันไม่ได้เชื่อมต่อแหล่งจ่ายไฟภายนอก แน่นอนว่าคุณอาจมีข้อผิดพลาดในวงจร บางทีคุณอาจกำหนดค่า pony prog สำหรับอุปกรณ์ผิด (แต่ไม่น่าเป็นไปได้เพราะฉันเป็นมือใหม่ ฉันอัปโหลดเฟิร์มแวร์แล้ว) SPIEN เป็นฟิวส์ที่ช่วยให้ MK ทำงานผ่านอินเทอร์เฟซ SPI ได้ ไมโครคอนโทรลเลอร์ทั้งหมดถูกปล่อยออกมาพร้อมกับบิต SPIEN ที่ตั้งค่าไว้แล้ว ถือเป็นฟิวส์อันตราย...
  • บิตฟิวส์ SPIEN ถูกตั้งค่าตามค่าเริ่มต้นในไมโครคอนโทรลเลอร์ AVR (โหมดการเขียนโปรแกรมในวงจร) และไม่สามารถลบออกได้โดยใช้ PonyProg และโดยทั่วไปแล้ว จะดีกว่าที่จะไม่แตะต้องมัน... หลังจากติดตั้งและตั้งโปรแกรมบิตฟิวส์ดังภาพสุดท้ายแล้ว คุณได้กำหนดค่าไมโครคอนโทรลเลอร์ให้ทำงานจากควอตซ์ 8 MHz ภายนอก ปิดการใช้งานตัวแบ่งความถี่สัญญาณนาฬิกาภายในด้วย 8 และเปิดใช้งาน Brown -Out Detector (โมดูลควบคุมพลังงาน) ที่ระดับ 2.7 V. และหลังจากนั้นโปรแกรมเมอร์ไม่เห็นไมโครคอนโทรลเลอร์ดังนั้นจึงสมเหตุสมผลที่จะจ่ายไฟภายนอกให้กับไมโครคอนโทรลเลอร์ (ไม่ใช่จาก PonyProg) แล้วลองอ่านอีกครั้ง PS: แน่นอน ถ้าทุกอย่างถูกต้องในตอนแรก (ประเภทของไมโครคอนโทรลเลอร์ในโปรแกรมเมอร์ถูกเลือกอย่างถูกต้องระหว่างการเขียนโปรแกรมและบิตฟิวส์ได้รับการตั้งค่าอย่างถูกต้อง)
  • ขอบคุณสำหรับคำตอบ ฉันเพิ่งแฟลชเฟิร์มแวร์สำหรับ 3 MK และตอนนี้โปรแกรมไม่เห็นมันและฉันต้องเปลี่ยนมัน และฉันก็มักจะจ่ายไฟภายนอกเสมอเมื่อทำการแฟลชเฟิร์มแวร์ แต่ม้าก็ยังไม่เห็นมัน แต่ MK ใช้งานได้ ฉันใส่มันลงในอุปกรณ์ที่ฉันคนงานทั้งสามคนเย็บมันให้ แต่ฉันต้องอัปโหลดคนอื่นที่นั่น ฉันถามผู้เขียนวงจรที่ฉันเย็บพวกเขาว่าจะเปลี่ยนมันอย่างไร เขาบอกฉันอย่างนั้น หากตรวจไม่พบควอตซ์ภายนอกคุณจะต้องสร้างเครื่องกำเนิดสัญญาณนาฬิกาภายนอกและส่งสัญญาณไปที่ XTAL 1 MK จากนั้นจึงตั้งโปรแกรม จะเห็น MK หากใครสามารถแสดงแผนภาพวงจรง่ายๆ ของเครื่องกำเนิดสัญญาณนาฬิกาภายนอกได้ ผม google บ่อยมากแล้วไม่พบอะไรเลย หรืออาจจะมีคนอื่นมีวิธี และ Fuse ก็ต้องจำอย่างแน่นอนว่าในภาพที่สองเป็นอย่างไร เพราะมันใช้กับโรงงานไม่ได้ ขอบคุณสำหรับความช่วยเหลือ
  • ขอบคุณสำหรับบทความ! อะแดปเตอร์ที่ยอดเยี่ยม มันทำงานได้อย่างรวดเร็วโดยไม่มีข้อผิดพลาด ก่อนอื่น ฉันบัดกรีพอร์ต LPT ฉันไม่มีปลั๊ก COM อยู่ในมือ พอร์ต LPT หมดระหว่างการเติมครั้งแรก ฉันต้องวิ่งไปที่ร้านเพื่อซื้อปลั๊ก COM ฉันแนะนำให้บัดกรีฟิวส์ของแพทย์ด้วยซึ่งเป็นสิ่งที่มีประโยชน์มาก ฉันเป็นคนแรกที่หลอมคริสตัลได้มาก ดูเหมือนว่ามันจะปลดปล่อยวิญญาณออกมาแล้ว (ควันสีฟ้า) แต่ก็ไม่! - ฟิวส์ Dokhdur ทำให้เขากลับมามีชีวิตอีกครั้งในทันที ปรากฎว่า: อะแดปเตอร์ + ฟิวส์ท่าเรือ = โปรแกรมเมอร์แบบขนานที่มีคุณสมบัติครบถ้วน
  • หลังจาก "หมอกควันสีฟ้า" ไม่มีแพทย์คนใดสามารถทำให้เขาฟื้นคืนชีพได้ และ "Doctor Fuse" - ใช่ มันอาจจะมีประโยชน์ในบางครั้ง แต่คุณสามารถทำได้โดยไม่ต้องใช้มันเกือบตลอดเวลา คุณเพียงแค่ต้องโอเวอร์คล็อก MK ไม่ใช่จากควอตซ์ แต่จากเครื่องกำเนิดไฟฟ้าภายนอก...
  • แต่ฉันโชคดีพอในการกำหนดค่าฟิวส์ครั้งแรก ที่สามารถกระแทกมันจนไม่มีเครื่องกำเนิดไฟฟ้าเพียงเครื่องเดียวที่สามารถช่วยชีวิตมันได้ ฉันไม่รู้ว่ามี 2 ตัวเลือกในการแสดงฟิวส์: โดยตรง (ตามประวัติศาสตร์, ตามบัญญัติ) และกลับด้าน (สะดวกโดยสังหรณ์ใจ) ดังนั้นฉันจึงใส่ช่องทำเครื่องหมายตามรูปแบบบัญญัติที่มีรูปถ่ายกลับหัว อย่างไรก็ตาม PonyProg ทำงานโดยใช้ฟิวส์ในลักษณะกลับหัว
  • อ่านสำหรับทุกคน:
ในชีวิตของผู้ใช้ทุกคนมาถึงช่วงเวลาที่จำเป็นต้องอัพเกรดฮาร์ดแวร์คอมพิวเตอร์ แต่ไม่ใช่ทุกสิ่งที่จะมีความสุขเท่าที่ควร - ผู้ผลิตคอมพิวเตอร์กำลังทิ้งสิ่งที่พวกเขาคิดว่าไม่จำเป็นเช่นพอร์ต COM และ LPT (เช่นเดียวกับเจ้าของแล็ปท็อป) แล้วผู้ใช้ที่โชคร้ายควรทำอย่างไรหากต้องการแฟลชไมโครคอนโทรลเลอร์ AVR ตัวอื่นสำหรับอุปกรณ์ของเขา มีทางเดียวเท่านั้น - สร้างโปรแกรมเมอร์ USB (หรือซื้อ) วันนี้เราจะทำสิ่งนี้... (หมายถึงการประกอบ) ดังนั้นเป้าหมายของเราคือการสร้างโปรแกรมเมอร์ USBasp

อย่างไรก็ตามมีปัญหาประการหนึ่งในการผลิตโปรแกรมเมอร์นี้ - คุณต้องแฟลชคอนโทรลเลอร์ที่ใช้ในโปรแกรมเมอร์นี้ ดังนั้นเราจึงกำลังมองหาเพื่อนที่มีพอร์ต COM หรือ LPT ที่ใช้งานได้บนคอมพิวเตอร์ของเขาและเมื่อซื้อเบียร์แล้วเราก็ไปหาเขา (เขาจะไม่ปฏิเสธของขวัญดังกล่าว) เมื่อฉันสร้าง USBasp ฉันใช้โปรแกรมเมอร์ ISP ที่ง่ายที่สุด - โปรแกรมเมอร์ของ Gromov (Gromov เป็นผู้พัฒนา Algorithm Builder) ฉันจะบอกวิธีใช้ USBasp ให้คุณฟัง ขั้นแรกเราประสานโปรแกรมเมอร์ Gromov ตามรูปแบบต่อไปนี้:

คำถามเช่น: “กระดานวาดรูปอยู่ที่ไหน” จะไม่ได้รับคำตอบเพราะว่า คำตอบอยู่ในเอกสารสำคัญ ฉันจะสังเกตจุดหนึ่ง: คอนโทรลเลอร์ที่ถูกแฟลชต้องใช้แรงดันไฟฟ้า 5 โวลต์ (+ และ -) ซึ่งสามารถนำมาจากแหล่งจ่ายไฟของคอมพิวเตอร์ (ฉันใช้ตัวเชื่อมต่อจากฟล็อปปี้ดิสก์) ในการทำเช่นนี้เราได้จัดเตรียมพื้นที่บนบอร์ดโปรแกรมเมอร์ AVR สำหรับเชื่อมต่อสายไฟ 2 เส้น มันจะมีลักษณะดังนี้:

การดำเนินการเตรียมการขั้นพื้นฐานเสร็จสิ้นแล้ว และตอนนี้เราเริ่มดำเนินการเพื่อให้บรรลุเป้าหมายหลัก - การประกอบ USBasp

ไม่มีอะไรพิเศษที่จะอธิบายเกี่ยวกับชุดประกอบเนื่องจากทุกอย่างชัดเจนที่นี่ สำหรับตัวฉันเองฉันแยกจัมเปอร์ Jmp1 และ Jmp3 ออกจากวงจรแทนที่ Jmp2 ด้วยสวิตช์และแทนที่ตัวเชื่อมต่อ ISP ประเภท BH-10 ฉันติดตั้ง DB-9M คอนโทรลเลอร์ถูกแฟลชแยกกันโดยใช้บอร์ดนี้:


โปรแกรมเมอร์ AVR USB ที่ประกอบแล้วถูกใส่ไว้ในกล่องพลาสติกที่เหมาะสม:

และตอนนี้ฉันจะบอกคุณถึงวิธีทำให้ USBasp ทำงาน สิ่งที่เรามีอยู่ (ซอฟต์แวร์ทั้งหมดอยู่ในไฟล์เก็บถาวร):

1. โปรแกรมเมอร์ Gromov;
2. ซอฟต์แวร์ชื่อ Uniprof
3. โปรแกรมเมอร์ USBasp;
4. เฟิร์มแวร์สำหรับคอนโทรลเลอร์ USBasp;
5. ไดรเวอร์สำหรับติดตั้ง USBasp บนระบบ

บน USBasp ที่ประกอบแล้วเราใส่จัมเปอร์ Jmp1 (วงจรรีเซ็ต) และ Jmp2 (+5V) เชื่อมต่อโปรแกรมเมอร์ Gromov เข้ากับมันและเชื่อมต่อทั้งหมดเข้ากับพอร์ต COM ของคอมพิวเตอร์โดยไม่ลืมจ่ายไฟ 5 โวลต์ เราเปิดตัว Uniprof หากทุกอย่างประกอบและเชื่อมต่ออย่างถูกต้อง ควรกำหนดประเภทของคอนโทรลเลอร์ที่จะแฟลช:

คลิกปุ่มที่มีรูปภาพโฟลเดอร์และจารึก HEX และระบุเส้นทางไปยังไฟล์เฟิร์มแวร์คอนโทรลเลอร์ USBasp เป็นผลให้เราได้รับสิ่งต่อไปนี้:

สิ่งที่เหลืออยู่คือการกดปุ่ม Prog พร้อมลูกศรสีแดงเพื่อเริ่มโหมดกระพริบ เรากำลังรอให้ไฟล์ hex ทำการเติมให้เสร็จสิ้น และตอนนี้คราดที่ใหญ่ที่สุดคือเฟิร์มแวร์ของบิตฟิวส์ ในช่องทำเครื่องหมาย "เบรค" (ช่องเหนือแก้วเบียร์) ให้ทำเครื่องหมายในช่อง (สำคัญโดยเฉพาะสำหรับวิศวกรระบบที่รวดเร็ว) กดปุ่ม "ฟิวส์" (ค้อนและเคียว :-D) และตั้งฟิวส์ตามที่ระบุไว้ใน รูปภาพ:

หลังจากทำเครื่องหมายในช่องแล้ว ให้กดปุ่ม "เขียน" ในแต่ละไบต์

หมายเหตุ (เผื่อใครก็ตามจะยังคงใช้โปรแกรมเมอร์ของ Gromov ต่อไป): ใน Uniprof ช่องทำเครื่องหมายถัดจากฟิวส์หมายความว่าตั้งค่าเป็น 1 (ใน PoniProg ช่องทำเครื่องหมายหมายความว่าตั้งค่าเป็น 0)

คุณถาม? ยอดเยี่ยม! ถอดจัมเปอร์ J1 ออกแล้วเสียบโปรแกรมเมอร์เข้ากับคอมพิวเตอร์ ตอนนี้เราป้อนฟืนและอุปกรณ์ใหม่ที่เรียกว่า USBasp ปรากฏในระบบ หากต้องการเฟิร์มแวร์ตัวควบคุมแฟลช ให้ดาวน์โหลด avrdude แต่มีข้อเสียเปรียบ - เป็นแบบคอนโซล อย่างไรก็ตาม คนดีไม่ได้ทิ้งเราให้อยู่ในภาวะเซถลาและสร้างเปลือกกราฟิกสำหรับ avrdude เรียกว่า USBASP_AVVRDUDE_PROG เมื่อกระพริบบิตฟิวส์ผ่าน avrdude ช่องทำเครื่องหมายถัดจากบิตจะหมายถึง 0

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

สิ่งง่ายๆ อีกประการหนึ่งในแง่ของการผลิตคือโปรแกรมเมอร์ COM หากคุณใช้โหมดทางเลือกของพอร์ต Bitbang COM ไม่จำเป็นต้องแปลงอินเทอร์เฟซพอร์ต RS232 COM เป็น SPI ซึ่งจำเป็นสำหรับการเขียนโปรแกรม สิ่งที่เหลืออยู่คือการทำให้ระดับสัญญาณพอร์ต COM (-12V, +12V) ไปถึงระดับที่ต้องการ (0, +5V) นี่คือสิ่งที่มันทำ
วงจรโปรแกรมเมอร์ COM สำหรับไมโครคอนโทรลเลอร์ AVR:

วงจรโปรแกรมเมอร์นี้ค่อนข้างธรรมดาและเป็นที่รู้จักในชื่อโปรแกรมเมอร์ Gromov ชื่อนี้ได้มาจากผู้เขียนโปรแกรม Gennady Gromov ซึ่งเป็นผู้เสนอโครงการดังกล่าว

ในการประกอบโปรแกรมเมอร์ Gromov เราจำเป็นต้องมีสิ่งต่อไปนี้:

ไดโอด KD522, KD510, 1N4148 หรือที่คล้ายกัน คุณสามารถใช้ตัวต้านทานใดๆ ก็ได้ที่คุณพบ คุณสามารถใช้สายเคเบิล IDE เป็นสายเคเบิลได้ เมื่อเชื่อมต่อแบบวนซ้ำ เพื่อให้การทำงานของโปรแกรมเมอร์มีเสถียรภาพมากขึ้น สาย "สัญญาณ" แต่ละเส้นจะต้องสลับกับสาย "กราวด์" วิธีนี้จะช่วยลดระดับการรบกวนที่เกิดขึ้นในสายและเพิ่มความยาวของสายการเขียนโปรแกรม ความยาวของสายเคเบิลควรอยู่ภายใน 50 ซม. คุณต้องมีขั้วต่อเพื่อเชื่อมต่อกับอุปกรณ์ที่ตั้งโปรแกรมได้
สำหรับการตั้งโปรแกรมในวงจร Atmel ขอแนะนำตัวเชื่อมต่อมาตรฐานต่อไปนี้:


หากคุณวางแผนที่จะจริงจังกับไมโครคอนโทรลเลอร์ ให้สร้างขั้วต่อให้เป็นมาตรฐาน สำหรับการเขียนโปรแกรมอุปกรณ์เพียงครั้งเดียว ฉันแนะนำให้ใช้โปรแกรมเมอร์ (ตัวเชื่อมต่อเหล่านี้ใช้สำหรับเชื่อมต่อปุ่มและไฟ LED ของเคสคอมพิวเตอร์เข้ากับเมนบอร์ด - นั่นคือสิ่งที่ฉันใช้) และหมุดตัวผู้ PLS บนบอร์ด ทำให้สามารถจัดวางโครงร่างของบอร์ดอุปกรณ์ได้ง่ายขึ้นเนื่องจากหมุดสำหรับโปรแกรมเมอร์ติดตั้งอยู่ใกล้กับขาไมโครคอนโทรลเลอร์ ขา MOSI, MISO, SCK ของไมโครคอนโทรลเลอร์ AVR จะอยู่ติดกันเสมอ ดังนั้นจึงสามารถใช้ขั้วต่อสามตัวได้ เราทำการเชื่อมต่อแยกกันสำหรับ "กราวด์" - GND และ "รีเซ็ต" - รีเซ็ต

การประกอบโปรแกรมเมอร์ COM ไม่ใช่เรื่องยาก:

ฉันไม่ได้ตั้งใจให้แผงวงจรพิมพ์สำหรับโปรแกรมเมอร์นี้เนื่องจากวงจรนั้นง่ายและยุ่งยากกับการเดินสายและการแกะสลักบอร์ดก็ไม่ได้พิสูจน์ตัวเอง

เพื่อให้โปรแกรมเมอร์ COM ของเราทำงานได้จำเป็นซึ่งเราจะเชื่อมต่อโปรแกรมเมอร์สำหรับไมโครคอนโทรลเลอร์

— เนื่องจากโหมด Bitbang ไม่ได้มาตรฐานสำหรับพอร์ต COM ของคอมพิวเตอร์ การทำงานผิดพลาดจึงเป็นไปได้ (แม้ว่าฉันจะไม่ประสบกับสิ่งนี้ก็ตาม) โดยเฉพาะอย่างยิ่งสำหรับแล็ปท็อป เพื่อเป็นแนวทางแก้ไขปัญหานี้ เราสามารถแนะนำให้ "ลองเล่น" ด้วยการตั้งค่าพอร์ต COM (ความเร็ว บิตข้อมูล ตัวเลือกการควบคุมการไหล ขนาดบัฟเฟอร์...)
— ขอแนะนำให้เชื่อมต่อขั้วต่อแยกสำหรับกราวด์ก่อน เพื่อให้ศักย์กราวด์ของอุปกรณ์ที่ตั้งโปรแกรมได้และคอมพิวเตอร์เท่ากัน สำหรับผู้ที่ไม่ทราบว่าหากคอมพิวเตอร์ของคุณเสียบเข้ากับเต้ารับปกติโดยไม่มีหน้าสัมผัสสายดิน ดังนั้นเนื่องจากลักษณะเฉพาะของตัวกรองแหล่งจ่ายไฟของคอมพิวเตอร์ จึงมีศักยภาพที่ 110V บนเคสคอมพิวเตอร์เสมอ

บทสรุป:

— โปรแกรมเมอร์ COM ของ Gromov นั้นเรียบง่ายและเชื่อถือได้ ฉันไม่ได้หยุดใช้แม้หลังจากประกอบโปรแกรมเมอร์ USB แล้ว (หากไมโครคอนโทรลเลอร์ตัวใดหยุดถูกตั้งโปรแกรมโดยโปรแกรมเมอร์ USB ฉันจะตรวจสอบกับโปรแกรมเมอร์ของ Gromov อีกครั้งอย่างแน่นอน)
— เนื่องจากโปรแกรมเมอร์ของ Gromov ประกอบขึ้นจากองค์ประกอบแบบพาสซีฟ จึงไม่จำเป็นต้องใช้พลังงาน ยิ่งไปกว่านั้น เนื่องจากพลังของปรสิต ไมโครคอนโทรลเลอร์จึงสามารถตั้งโปรแกรมได้โดยไม่ต้องเชื่อมต่อแหล่งพลังงานเลย! แม้ว่าฉันจะไม่แนะนำให้เขียนโปรแกรมด้วยวิธีนี้ แต่ความจริงก็น่าสนใจ
— มีโบนัสที่ดีสำหรับผู้ใช้ Algorithm Builder! โปรแกรมเมอร์นี้สามารถใช้สำหรับการแก้ไขข้อบกพร่องบนชิป (ซอฟต์แวร์ JTAG)

ในกรณีของฉันนี่คือเจ้าของสถิติความเร็วในการจัดส่ง - ประมาณ 5 เดือนของการเดินไปมาอย่างไม่ระมัดระวัง แม้จะมีการหน่วงเวลาอย่างมหันต์ แต่ฉันยังคงได้รับพัสดุซึ่งฉันมีความสุขอย่างไม่น่าเชื่อแม้จะมีข้อบกพร่องซึ่งฉันจะบอกคุณด้านล่าง เนื่องจากฉันมีความทรงจำที่แย่มาก ฉันจึงจำเป็นต้องรวมข้อมูลที่เป็นประโยชน์ที่ฉันพบในที่เดียวในรูปแบบของการแจ้งเตือน การเก็บรวบรวมทีละเล็กทีละน้อยในซอกมุมต่างๆ ของเครือข่ายกลายเป็นเรื่องไม่สำคัญ งาน ดังนั้นผมจะแยกมันทั้งหมดไว้ในโพสต์แยกต่างหาก
USB ISP เป็นโปรแกรมเมอร์คอนโทรลเลอร์ AVR ที่ถูกที่สุดที่มีจำหน่ายในท้องตลาด โดยมีวัตถุประสงค์เพื่อขยายขอบเขตและศึกษา AVR ในเชิงลึกมากขึ้น
การตรวจสอบประกอบด้วย: คำอธิบายของโปรแกรมเมอร์, วิธีเชื่อมต่อกับชิป, การตั้งค่าการทำงานในโปรแกรม AvrDude Prog, Khazama, Atmel Studio 7 และไม่เพียงเท่านั้น

แน่นอน คุณสามารถใช้ Arduino UNO กับภาพร่าง ArduinoISP ที่เย็บเข้าไปแทนได้ แต่ไม่สะดวก การเล่นซอกับสายไฟ โดยเฉพาะอย่างยิ่งถ้ามี UNO เพียงอันเดียว จะทำให้หมดกำลังใจ คงจะง่ายกว่าถ้ามีโปรแกรมเมอร์แยกกันหรือสองคน ด้วยเหตุผลสองประการ:
1) ก่อนการซื้อก็ชัดเจนว่าจากบทวิจารณ์ว่าคุณภาพการบัดกรีของอุปกรณ์เหล่านี้ลดลงและบางส่วนยังได้รับอุปกรณ์เหล่านี้ด้วยซีเนอร์ไดโอดที่แตกหัก มีการตัดสินใจที่จะเล่นอย่างปลอดภัยโดยสั่งซื้อสองอัน
2) โปรแกรมเมอร์ตัวหนึ่งสามารถเย็บร่วมกับอีกตัวหนึ่งได้โดยการเลื่อนจัมเปอร์บนอุปกรณ์สเลฟ

ข้อมูลจำเพาะ

ระบบปฏิบัติการที่รองรับ:วินโดวส์, MacOS, ลินุกซ์
ซีพียู: Atmega8A
อินเตอร์เฟซการเชื่อมต่อพีซี:ยูเอสบี
อินเตอร์เฟซการเขียนโปรแกรม: ISP (ในวงจร)
แรงดันไฟฟ้าในการเขียนโปรแกรม: 5V หรือ 3.3V (ขึ้นอยู่กับตำแหน่งของจัมเปอร์ JP2)
ความถี่ในการเขียนโปรแกรม: 375kHz (ค่าเริ่มต้น) และ 8kHz (เมื่อปิดจัมเปอร์ JP3)
คอนโทรลเลอร์ที่รองรับ: AVR ทั้งหมดที่มีอินเทอร์เฟซ SPI
คำอธิบาย:

รายชื่อไมโครคอนโทรลเลอร์ที่รองรับ

เอทีเมก้า ซีรีส์

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

ซีรีย์เล็กๆ

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

ซีรีส์คลาสสิก

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

สามารถซีรีส์

AT90CAN128

ซีรีย์พีเอ็มดับเบิลยู

AT90PWM2 AT90PWM3

รูปร่าง

ชุดการส่งมอบมีน้อย - โปรแกรมเมอร์ + สายเคเบิลที่ไม่มีแถบยางยืด ในกรณีของฉัน ให้เพิ่มเป็นสองเท่า

วัฒนธรรมการแสดงนั้นง่อยมาก หวีที่บัดกรีแบบคดเคี้ยวดึงดูดสายตาของฉันทันที ทุกที่ที่เป็นไปได้มีร่องรอยของฟลักซ์และเห็นได้ชัดว่าโปรแกรมเมอร์นอนอยู่ในโกดังเป็นเวลานานด้วยออกไซด์และพวกเขาก็รวมตัวกันด้วยความเร็วปกติของชาวจีน















บางรูไม่ได้บัดกรีจนเต็ม



องค์ประกอบ SMD ก็ถูกบัดกรีแบบคดเคี้ยวเช่นกัน



ฉันยืดหวีให้ตรงในภายหลังเล็กน้อยมันไม่เป็นที่พอใจอย่างยิ่งเมื่อมองดูความเอียงนี้ฉันบัดกรีองค์ประกอบแล้วล้างกระดาน



ขนาดของบอร์ดใหญ่กว่าตัวแปลง USB-TTL ใน CP2102 เล็กน้อย



ความยาวของรถไฟประมาณ 30 ซม. มีความเห็นว่ารถไฟยิ่งสั้นก็ยิ่งดี บางคนก็ย่อให้สั้นลงโดยเฉพาะ หากคุณสั่งซื้อ USBASP ดั้งเดิม สายเคเบิลทั้งเส้นจะมีขนาดยาว 50 ซม. แล้ว



การควบคุมออนบอร์ด

บนบอร์ดมีจัมเปอร์สามตัวที่ตั้งค่าโหมดการทำงานต่าง ๆ ของโปรแกรมเมอร์:
เจพี1-ปิดหากมีการอัพเดตเฟิร์มแวร์ของโปรแกรมเมอร์เอง
เจพี2-จัมเปอร์สามตัว คุณสามารถเลือกแรงดันไฟฟ้าที่จะจ่ายให้กับไมโครคอนโทรลเลอร์ที่กำลังกระพริบ 5V (ตำแหน่งซ้าย) และ 3.3V (ตำแหน่งขวา)
เจพี3-หากปิดอยู่การตั้งโปรแกรมคอนโทรลเลอร์จะเกิดขึ้นที่ความถี่ลดลงอย่างไรก็ตามชาวจีนไม่ได้บัดกรีหวีที่นี่เพราะ ไม่จำเป็นสำหรับเฟิร์มแวร์นี้
อย่างที่คุณเห็นโปรแกรมเมอร์นั้นสร้างขึ้นบนพื้นฐานของ Atmega8 พร้อมควอตซ์ 12 MHz องค์ประกอบด้านบนขวาสุดซึ่งมีป้ายกำกับว่า F1 ซึ่งมีหมายเลขกลับด้าน 4 คือฟิวส์ที่รีเซ็ตตัวเองได้ซึ่งจะช่วยปกป้องพอร์ต USB ของพีซี/แล็ปท็อป หากเกิดไฟฟ้าลัดวงจรกะทันหันบนบอร์ดที่กำลังกะพริบ ใต้ทับหลัง เจพี2มีโคลง LDO 662Kซึ่งจะลดแรงดันไฟฟ้าจาก 5V เป็น 3.3V หากจัมเปอร์ถูกตั้งค่าในตำแหน่งที่ถูกต้อง

การติดตั้งไดรเวอร์

ในการเริ่มใช้งานโปรแกรมเมอร์ คุณต้องติดตั้งไดรเวอร์ก่อน ฉันเสียบโปรแกรมเมอร์ใด ๆ เข้ากับพอร์ต USB ของพีซี สัญญาณเสียงเกี่ยวกับอุปกรณ์ใหม่ดังขึ้น ไฟ LED บนอุปกรณ์จะสว่างขึ้น แต่ไม่มีการค้นหาไดรเวอร์โดยอัตโนมัติ
บันทึก.ก่อนที่จะติดตั้งไดรเวอร์ คุณต้องปิดใช้งานการตรวจสอบลายเซ็นดิจิทัลใน Windows
1) ดาวน์โหลด แกะในที่ที่สะดวก
2) ตัวอย่างเช่น ไปที่ "ตัวจัดการอุปกรณ์" วางเคอร์เซอร์ไว้เหนือปุ่มหลัก (Win10) กด RMB และเลือก "ตัวจัดการอุปกรณ์"

3) ในสาขา “อุปกรณ์อื่นๆ” คุณจะเห็นอุปกรณ์ USBASP ที่ไม่ปรากฏชื่อซึ่งมีสามเหลี่ยมสีส้ม -> เลื่อนเมาส์ไปเหนืออุปกรณ์นั้น คลิกขวา -> “อัปเดตไดรเวอร์...”

4) ระบุเส้นทางไปยังโฟลเดอร์ที่คลายแพ็กก่อนหน้านี้พร้อมไดรเวอร์ - "libusb_1.2.4.0" คลิก "ตกลง"

5) “ติดตั้งไดรเวอร์นี้ต่อไป”

6) เสร็จแล้ว ตอนนี้สามเหลี่ยมสีส้มหายไป ติดตั้งไดรเวอร์แล้ว



เฟิร์มแวร์ของพี่ชาย

ฉันรู้มาก่อนแล้วว่าคนจีนขายโปรแกรมเมอร์เหล่านี้ไม่ใช่เฟิร์มแวร์ล่าสุด ฉันตัดสินใจอัปเดตเฟิร์มแวร์กับหนึ่งในนั้นก่อนจากนั้นเพื่อความสนุกสนานเปรียบเทียบโปรแกรมเมอร์ทั้งสองที่ใช้งานอยู่ ในการทำเช่นนี้ฉันเชื่อมต่ออุปกรณ์ทั้งสองด้วยสายเคเบิลบนต้นแบบ (ซึ่งฉันเสียบเข้ากับพอร์ต USB) ไม่มีการแตะจัมเปอร์และบนโปรแกรมเมอร์ทาส (ซึ่งเราจะอัปเดตเฟิร์มแวร์) ฉันย้ายจัมเปอร์จาก เจพี2บน เจพี1:



ฉันเข้าไปในโปรแกรม Khazama AVR Programmer เลือก ATmega8 จากรายการแบบเลื่อนลงและอ่านหน่วยความจำแฟลชก่อนผ่านรายการเมนู "Command" -> "อ่าน FLASH to Buffer" เพื่อบันทึกเฟิร์มแวร์จากโรงงานในจีน เผื่อไว้.

ในกรณีนี้ข้อผิดพลาดดังกล่าวจะปรากฏขึ้นเป็นระยะ ๆ การปิดหน้าต่างโปรแกรมจะทำงานต่อไป

กำลังดำเนินการอ่าน ซึ่งจะลงท้ายด้วยหน้าต่างป๊อปอัปที่ระบุว่าการอ่านหน่วยความจำ FLASH ลงในบัฟเฟอร์สำเร็จ

ตอนนี้คุณต้องบันทึกเนื้อหาของบัฟเฟอร์: “ไฟล์” -> “บันทึกบัฟเฟอร์แฟลชเป็น...” เลือกตำแหน่งที่สะดวกที่จะบันทึกเฟิร์มแวร์เก่า ตั้งชื่อ (เช่น ฉันเรียกมันว่า Firmware_1) และเพิ่มนามสกุล *.hex - หากคุณไม่เขียนมันจะถูกบันทึกเป็นเพียงไฟล์ที่ไม่มี ส่วนขยาย


ฉันดาวน์โหลดเฟิร์มแวร์สำหรับโปรแกรมเมอร์จากหน้าเก็บถาวร usbasp.2011-05-28.tar.gz(ไฟล์เก็บถาวรเดียวกันมีไดรเวอร์สำหรับ Windows ฉันแกะเนื้อหาในที่ที่สะดวก
ในระหว่างนี้ ฉันจะโหลดเฟิร์มแวร์ที่ดาวน์โหลดมาลงในบัฟเฟอร์ใน Khazama "ไฟล์" -> "โหลดไฟล์ FLASH ไปยังบัฟเฟอร์" ฉันเลือกเฟิร์มแวร์ที่เขียนชื่อ atmega8 เนื่องจากโปรแกรมเมอร์ที่กำลังแฟลชอยู่บนชิปนี้

อย่างที่คุณเห็นมีเฟิร์มแวร์สามตัวที่นี่ - สำหรับ Atmega8, 48 และ 88 ในกรณีของเรา Atmega 8 - นั่นคือสิ่งที่ฉันเลือก

ฉันกำลังเย็บ. "คำสั่ง" -> "เขียนไฟล์ FLASH ไปยังบัฟเฟอร์" เกิดข้อผิดพลาดอีกครั้ง แต่กระบวนการยังคงดำเนินต่อไปและจบลงด้วยความสำเร็จ



เนื่องจากในแง่ปกติ "โปรแกรม" หมายถึงการตั้งค่าเป็น 1 เมื่อทำงานกับฟิวส์ทุกอย่างจะตรงกันข้ามซึ่งทำให้เกิดความสับสนและในกรณีนี้คุณสามารถบล็อกคอนโทรลเลอร์โดยไม่ตั้งใจจากนั้นจะไม่สามารถแฟลชได้อีกต่อไป โปรแกรมเมอร์โปรแกรม Khazama AVR สะดวกในการดูบิตฟิวส์ซึ่งคุณสามารถมองเห็นได้ชัดเจน กำหนดไว้อันไหนติดตั้งอันไหนไม่ได้

ตั้งอยู่ตามเส้นทาง “Command” -> “Fuses and Lock Bits...” หน้าต่างจะเปิดขึ้น:

โดยที่เมื่อคุณกดปุ่ม "อ่านทั้งหมด" ฟิวส์และบิตล็อคจะถูกนับและข้อผิดพลาดฉาวโฉ่จะปรากฏขึ้นมากถึง 5 ครั้งติดต่อกัน เกิดข้อผิดพลาดกับเฟิร์มแวร์จีนจากโรงงาน แต่ถ้าคุณใส่โปรแกรมเมอร์ที่แฟลชใหม่ลงในพอร์ต USB โดยดาวน์โหลดเฟิร์มแวร์จากลิงค์ด้านบนข้อผิดพลาดเหล่านี้จะไม่ปรากฏขึ้นอีกต่อไปอย่างไรก็ตามข้อบกพร่องจะปรากฏในที่อื่น แต่จะเพิ่มเติมในภายหลัง

การสื่อสารกับบอร์ด Pro Mini (Atmega 168, 3.3V/8MHz)

ในกรณีนี้ หมุดโปรแกรมเมอร์จะเชื่อมต่อกับหมุดบอร์ด Pro Mini ดังแสดงในแผนภาพด้านล่าง ไม่สามารถจัดเรียงจัมเปอร์ใหม่ได้ เช่น คงอยู่ในตำแหน่ง 5V
แม้ว่าบอร์ด Pro Mini จะมีป้ายกำกับว่า 3.3V แต่ Atmega รุ่นที่ 168 ก็สามารถจ่ายไฟ 5V ได้เช่นกัน อย่างไรก็ตามโคลง 3.3V AMS1117 นั้นถูกบัดกรีออกจากบอร์ดอย่างสมบูรณ์



AVRDUDE PROG 3.3
โปรแกรมคอนโซลสำหรับไมโครวงจรแฟลชไม่มีอินเทอร์เฟซแบบกราฟิกของตัวเอง ในสต็อกมันใช้งานได้จากบรรทัดคำสั่ง แต่ผู้ที่ชื่นชอบได้เขียนเชลล์จำนวนมากไว้เพื่อความสะดวกในการทำงานกับมัน หนึ่งในเชลล์เหล่านี้เรียกว่า AVRDUDE PROG ซึ่งสร้างโดยนักพัฒนาที่พูดภาษารัสเซีย ในความคิดของฉันเชลล์นี้สะดวกสำหรับแฟลชที่กระพริบ MK เท่านั้น หลังจากเปิดตัวแล้ว คอนโทรลเลอร์จะถูกเลือก ในกรณีนี้คือ Atmega168 และประเภทของโปรแกรมเมอร์ - USBasp หลังจากนั้นคุณสามารถเริ่มเขียน/อ่านความทรงจำได้ ไม่ว่าจะเป็นเฟิร์มแวร์จากโรงงานหรือเฟิร์มแวร์ใหม่ - ในทั้งสองกรณีไม่มีปัญหาในการสื่อสารกับ Atmega168 เพื่อความสนุกสนาน ฉันฉายภาพร่างการกะพริบมาตรฐานของ Arduino ซึ่งส่งออกเป็นไฟล์ไบนารี HEX ทุกอย่างราบรื่น




โปรแกรมเมอร์ Khazama AVR
ที่นี่คุณเพียงแค่ต้องเลือกไมโครคอนโทรลเลอร์จากรายการแบบเลื่อนลง และคุณสามารถทำงานกับหน่วยความจำ/บิตได้แล้ว
อย่างไรก็ตามหากติดตั้งเฟิร์มแวร์จากโรงงานในโปรแกรมเมอร์เอง ข้อผิดพลาดเหล่านี้จะปรากฏขึ้นเป็นระยะ ๆ ดังที่กล่าวไว้ข้างต้นแล้ว ข้อผิดพลาดเหล่านี้จะไม่มีอีกต่อไป


การสื่อสารกับคอนโทรลเลอร์ ATtiny13A ในแพ็คเกจ SOIC8

การเชื่อมต่อตามแผนภาพด้านล่าง แต่ที่นี่สิ่งต่าง ๆ น่าสนใจยิ่งขึ้นเล็กน้อย

เนื่องจากชิปเปลือยอยู่ในแพ็คเกจ SOIC8 SMD ในกรณีนี้ ฉันวางไว้ในอะแดปเตอร์ SOIC8-DIP8 เพื่อความสะดวกในการเชื่อมต่อกับโปรแกรมเมอร์ในอนาคต คุณสามารถอ่านบทวิจารณ์ของอะแดปเตอร์นี้ได้

AVRDUDE PROG 3.3
ที่นี่คุณเลือกจากรายการคอนโทรลเลอร์ที่มีชื่อเดียวกันโปรแกรมเมอร์ USBasp และหากโปรแกรมเมอร์แฟลชด้วยเฟิร์มแวร์จีนจากโรงงานการดำเนินการทั้งหมดก็จะราบรื่นและราบรื่น อย่างไรก็ตามหากคุณแทนที่โปรแกรมเมอร์ด้วยเฟิร์มแวร์ที่อัพเดตแล้วข้อผิดพลาดจะเกิดขึ้นระหว่างการดำเนินการใด ๆ

ปรากฏขึ้นเนื่องจากทั้งโปรแกรมและโปรแกรมเมอร์ไม่สามารถสลับไปยังโหมดการเขียนโปรแกรมช้าที่จำเป็นสำหรับ ATtiny13 ได้โดยอัตโนมัติ แต่มีอย่างน้อยสองวิธี:
1) เหล็ก: ปิดจัมเปอร์ เจพี3

2) ซอฟต์แวร์: แก้ไขไฟล์ “programm.ini” ในโฟลเดอร์ด้วยโปรแกรม AVRDUDE PROG 3.3


ป้อนโค้ดสี่บรรทัดที่นั่นแล้วบันทึก (ถ่าย)
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

บันทึก.ที่นี่ใช้สวิตช์ "-B" ซึ่งจะสลับโปรแกรมเมอร์ให้มีความถี่ในการเขียนโปรแกรมต่ำลง ค่า "3" - เวลาเป็นไมโครวินาที

หลังจากนั้นให้รัน AVRDUDE PROG 3.3 อีกครั้งและเลือก UsbaspSpeed ​​​​ในรายการโปรแกรมเมอร์แบบเลื่อนลง ขณะนี้การทำงานร่วมกับ ATtiny13 บนโปรแกรมเมอร์ที่มีเฟิร์มแวร์ใหม่จะไม่ปราศจากข้อผิดพลาดอีกต่อไป และในกรณีนี้จะไม่จำเป็นต้องปิดจัมเปอร์ JP3 อีกต่อไป

โปรแกรมเมอร์ Khazama AVR
ตัวควบคุมถูกเลือกจากรายการและสถานการณ์เกือบจะเหมือนกัน

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

แต่มันก็คุ้มค่าที่จะปิดจัมเปอร์ เจพี3และคุณสามารถทำงานได้อย่างสงบสุข


หรือเพียงตั้งค่าความถี่การทำงานจากรายการแบบเลื่อนลงตามเส้นทาง "คำสั่ง" -> "ตัวเลือกโปรแกรม" ฉันตั้งค่าความถี่เป็น 187.5 kHz

บันทึก.ความถี่ในการเขียนโปรแกรมจะต้องน้อยกว่าความถี่สัญญาณนาฬิกาของชิปที่กำลังกระพริบอย่างน้อย 4 เท่า แต่ถ้าคุณดูฟิวส์ที่อ่านจาก ATtiny13 แล้วในบรรทัดสุดท้ายคือ Int.Rc.Osc ระบุ 9.6 MHz
อย่างน้อยมือใหม่จะมีคำถาม: เหตุใดข้อผิดพลาดเดียวกันจึงปรากฏที่ 1.5 MHz ที่ตั้งไว้ใน KHazame และทำไมถ้าคุณเขียนใน AtmelStudio เช่นรหัสสำหรับการกะพริบ LED ที่มีความถี่หนึ่งครั้งต่อวินาทีและเขียนในแมโคร:
#define f_cpu 9600000 แล้วโหลดโค้ดบน Attiny13 จะทำให้ไฟ LED กระพริบช้ามาก?
- ดูเส้นสุดท้ายว่าอยู่ไหน แบ่งนาฬิกาด้วย 8 ภายใน- นี่คือพรีสเกลเลอร์ความถี่ที่รวมไว้ ซึ่งแบ่ง 9.6 MHz นี้ด้วย 8 ดังนั้นความถี่ชิปจริงที่นี่คือ 1.2 MHz ดังนั้นเมื่อเลือกความถี่ 187.5 kHz หรือน้อยกว่า ข้อผิดพลาดจะหายไปและคุณสามารถทำงานกับคอนโทรลเลอร์ได้ตามปกติ

โน้ต 2.วิธีการเลือกความถี่ใน KHazame จะเร็วกว่าวิธีการปิดจัมเปอร์ JP3 หลายเท่า เนื่องจากในกรณีหลังความถี่จะลดลงเหลือ 8 kHz

การรวมโปรแกรมเมอร์เข้ากับ Atmel Studio 7

Atmel Studio เป็นสภาพแวดล้อมการพัฒนาจาก Atmel แต่ไม่สามารถทำงานกับ USBASP ได้โดยตรง โดยเฉพาะ USBASP ของจีน อย่างไรก็ตาม ต้องขอบคุณโปรแกรม AVRDUDE เดียวกันที่รวมอยู่ในแพ็คเกจ AVRDUDE PROG 3.3 ซึ่งจะมีบทบาทเป็นตัวกลางที่นี่ คุณสามารถสร้าง "ไม้ยันรักแร้" จากนั้นในสภาพแวดล้อมนั้นคุณสามารถเพิ่มความสามารถในการแฟลช MK เชื่อมต่อผ่าน USBASP

ก่อนอื่นเราต้องเปิดตัวสภาพแวดล้อม ถือว่ามีการเขียนและประกอบโค้ดบางส่วนแล้ว ในตัวอย่างของฉัน นี่คือไฟกะพริบ LED แบบธรรมดา - กะพริบ

บนแถบเครื่องมือด้านบน เลือก "เครื่องมือ" - "เครื่องมือภายนอก..."

หน้าต่างเล็ก ๆ จะเปิดขึ้น คลิก "เพิ่ม"

ในสนามบนสุด "ชื่อ:"ใส่ชื่อไหนสะดวกก็เขียนว่า “Atmega168” เพราะ การกำหนดค่าที่ฉันจะให้ด้านล่างนี้ใช้กับคอนโทรลเลอร์นี้โดยเฉพาะ และสำหรับคอนโทรลเลอร์อื่น ๆ จะได้รับการกำหนดค่าแยกกัน
ในช่องขนาดใหญ่ที่ด้านบน ชื่อของเครื่องดนตรีจะถูกทำซ้ำโดยอัตโนมัติ

บรรทัดที่สอง ฟิลด์ "สั่งการ:"- ที่นี่คุณต้องระบุเส้นทางไปยังไฟล์ “avrdude.exe” ซึ่งอยู่ในโฟลเดอร์ที่มีโปรแกรมด้านบน

บรรทัดที่สาม ฟิลด์ "ข้อโต้แย้ง:"คุณต้องป้อนการกำหนดค่าจริง

การกำหนดค่าสำหรับ Atmega168

P m168 -c usbasp -P usb -U แฟลช:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p - ชื่อคอนโทรลเลอร์
-s - โปรแกรมเมอร์คนไหน
-P - พอร์ตที่จะอัพโหลดเฟิร์มแวร์
-U - การดำเนินการใดจะดำเนินการกับหน่วยความจำใด (ในกรณีนี้คือการเขียนไปยัง Flash)
หากคุณต้องการกำหนดค่าสำหรับ MK อื่นจะต้องเปลี่ยนพารามิเตอร์ "m168" เป็นคอนโทรลเลอร์ที่เกี่ยวข้องที่จะกระพริบ ตัวอย่างเช่น “m8” สำหรับ Atmega8 หรือ “m328p” ถ้า Atmega328p ดูพารามิเตอร์สำหรับ MK อื่น ๆ - คุณจะพบคำอธิบายของคีย์ AVRDUDE ที่นั่นด้วย

การกำหนดค่าสำหรับ ATtiny13


หลังจากกรอกข้อมูลในช่องแล้วคลิก "สมัคร" และ "ตกลง" หน้าต่างจะปิดลง

ตอนนี้ หากคุณคลิกที่ "เครื่องมือ" อีกครั้ง เครื่องมือที่สร้างขึ้นใหม่จะปรากฏขึ้นที่นั่น และเมื่อคุณคลิกที่มัน โค้ดที่คอมไพล์แล้วจะถูกแฟลชเข้าสู่คอนโทรลเลอร์โดยอัตโนมัติ

แต่การดำเนินการนี้เกิดขึ้นในคลิกสองครั้งซึ่งไม่สะดวกนัก คุณต้องย้ายเครื่องมือนี้ไปที่แถบเครื่องมือหลักเพื่อให้มองเห็นได้ตลอดเวลา
โดยไปที่ "เครื่องมือ" อีกครั้ง จากนั้นคลิกที่ "ปรับแต่ง..."
หน้าต่างต่อไปนี้จะเปิดขึ้น:

ไปที่แท็บ "คำสั่ง" - คลิกปุ่ม "เพิ่มคำสั่ง..."

หน้าต่างอื่นจะปรากฏขึ้น ในคอลัมน์ด้านซ้ายเลือก "เครื่องมือ" และเลือก "คำสั่งภายนอก 1" ในคอลัมน์ด้านขวา คลิก "ตกลง"

“คำสั่งภายนอก 1” จะอยู่ที่ด้านบนของรายการและให้ความสนใจกับแถบเครื่องมือเอง - รายการ “Atmega168” ปรากฏในอินเทอร์เฟซ

แต่สำหรับฉันดูเหมือนว่าสถานที่ที่จัดสรรไว้นั้นไม่ค่อยดีนัก แนะนำให้เลื่อนไปทางขวา โดยกดปุ่ม "ย้ายลง" (คลิกเดียว = เลื่อนไปทางขวาหนึ่งตำแหน่ง) หลังจากนั้นคุณสามารถปิดหน้าต่างได้โดยใช้ปุ่ม "ปิด" และเย็บชิปโดยตรงจากสตูดิโอด้วยการคลิกเพียงครั้งเดียวผ่านโปรแกรมเมอร์ที่ได้รับการตรวจสอบ


เมื่อทำการแฟลชชิปด้วยวิธีนี้ หน้าต่างคอนโซล AVRDUDE จะปรากฏขึ้นครู่หนึ่ง แต่อาจจำเป็นต้องบันทึกบันทึกนี้เพื่อดูเพิ่มเติม - จากนั้นในหน้าต่าง "เครื่องมือภายนอก" คุณต้องทำเครื่องหมายที่ช่อง "ใช้หน้าต่างเอาต์พุต"

และตอนนี้บันทึกจะปรากฏในหน้าต่างเอาต์พุตที่ด้านล่างของโปรแกรม ATmel Studio 7 คุณสามารถตั้งค่าช่องทำเครื่องหมายนี้แยกกันสำหรับคอนโทรลเลอร์แต่ละตัวที่เพิ่มใน "เครื่องมือภายนอก"

เพิ่มเติมเกี่ยวกับฟิวส์โปรแกรมเมอร์

จากเอกสาร READMI ที่มาพร้อมกับไดรเวอร์และเฟิร์มแวร์สำหรับ USBASP ปรากฏในภายหลังว่านักพัฒนาแนะนำให้ตั้งค่าการกำหนดค่าบิตฟิวส์ที่กำหนดการทำงานของตัวสะท้อนเสียงภายนอก
ข้อเสียของ khazam คือหน้าต่างที่มีฟิวส์ไม่แสดงค่า HEX ของบิตที่ตั้งไว้ สิ่งนี้สามารถเห็นได้ใน AVRDUDE PROG ฟิวส์จากโรงงานที่ตั้งค่าโดยชาวจีนมีลักษณะเช่นนี้ ( อย่าลืมใส่จุด "ผกผัน" - เน้นด้วยสี่เหลี่ยมสีน้ำเงิน):

สิ่งนี้จำเป็นต้องยกเลิกการเลือกช่องทำเครื่องหมายสองช่องจาก "BODEN" และ "SUT1" (เน้นด้วยวงรีสีแดง)
ทำเครื่องหมายสองช่องสำหรับ "CKOPT" และ "SUT0" (เน้นด้วยสี่เหลี่ยมสีเขียว)
ค่า HEX ของบิตที่เปลี่ยนแปลงจะแสดงในคอลัมน์ด้านขวา (เน้นด้วยสี่เหลี่ยมสีแดงตัวหนา): ล็อคไบต์: 3เอฟฟิวส์ไบต์สูง: C9ฟิวส์ไบต์ต่ำ: อีเอฟ.

หากทุกอย่างถูกต้องคุณสามารถกด “การเขียนโปรแกรม”

ความสนใจ.ฟิวส์โกรธเอาชนะ RSTDISBL- อย่าสัมผัสมันไม่ว่าในกรณีใด ๆ มิฉะนั้นการติดตั้งจะบล็อกคอนโทรลเลอร์และจะไม่สามารถแฟลชผ่าน USBASP ได้อีกต่อไป
_____________________________________

ข้อสรุป

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

รายการลิงค์

บอกเพื่อน