แบบแผนและวัสดุ การอัพเดตเฟิร์มแวร์โปรแกรมเมอร์

เช่นเดียวกับที่โรงละครเริ่มต้นด้วยที่แขวน ดังนั้นการเขียนโปรแกรมไมโครคอนโทรลเลอร์จึงเริ่มต้นด้วยการเลือกโปรแกรมเมอร์ที่ดี ตั้งแต่ฉันเริ่มเชี่ยวชาญไมโครคอนโทรลเลอร์ของบริษัท เอทีเมลจากนั้นฉันก็ต้องทำความคุ้นเคยกับสิ่งที่ผู้ผลิตเสนอให้อย่างละเอียดถี่ถ้วน พวกเขาเสนอสิ่งที่น่าสนใจและอร่อยมากมายในราคาที่สูงเกินไปเท่านั้น ตัวอย่างเช่น ผ้าพันคอที่มีไมโครคอนโทรลเลอร์ 20 ขาหนึ่งตัวพร้อมตัวต้านทานและไดโอดหนึ่งคู่เป็นสายรัดมีราคาเหมือนกับ "เครื่องบิน" ดังนั้นคำถามเกี่ยวกับการประกอบตัวเองของโปรแกรมเมอร์จึงเกิดขึ้น หลังจากศึกษาการพัฒนาของนักวิทยุสมัครเล่นที่มีประสบการณ์มาเป็นเวลานานแล้วก็ตัดสินใจรวบรวมโปรแกรมเมอร์ที่ได้รับการพิสูจน์แล้ว USBASP สมองซึ่งเป็นไมโครคอนโทรลเลอร์เอตเมกา8 (ยังมีตัวเลือกเฟิร์มแวร์สำหรับ atmega88 และ atmega48) การเดินสายขั้นต่ำของไมโครคอนโทรลเลอร์ทำให้คุณสามารถประกอบโปรแกรมเมอร์ขนาดเล็กที่คุณสามารถพกพาติดตัวไปได้ตลอดเวลาเช่นแฟลชไดรฟ์

เมื่อตัดสินใจประกอบโปรแกรมเมอร์ขนาดเล็กแล้ว ฉันจึงสร้างวงจรใหม่สำหรับไมโครคอนโทรลเลอร์ Atmega8 ในตัวเครื่อง มคสป32(pinout ของไมโครคอนโทรลเลอร์แตกต่างจาก pinout ในแพ็คเกจ DIP):

Jumper J1 จะใช้หากจำเป็นต้องแฟลชไมโครคอนโทรลเลอร์ที่มีความถี่สัญญาณนาฬิกาต่ำกว่า 1.5 MHz อย่างไรก็ตาม จัมเปอร์นี้สามารถกำจัดทั้งหมดได้โดยการวางขาที่ 25 ของ MK ลงบนพื้น จากนั้นโปรแกรมเมอร์จะทำงานที่ความถี่ลดลงเสมอ โดยส่วนตัวแล้วฉันสังเกตเห็นว่าการเขียนโปรแกรมด้วยความเร็วที่ลดลงจะใช้เวลานานกว่าเสี้ยววินาที ดังนั้นตอนนี้ฉันจะไม่ดึงจัมเปอร์ แต่เย็บด้วยจัมเปอร์อย่างต่อเนื่อง
ซีเนอร์ไดโอด D1 และ D2 ใช้เพื่อจับคู่ระดับระหว่างโปรแกรมเมอร์และบัส USB มันจะทำงานได้หากไม่มี แต่ไม่ใช่ในคอมพิวเตอร์ทุกเครื่อง
ไฟ LED สีน้ำเงินแสดงว่าวงจรพร้อมที่จะตั้งโปรแกรมแล้ว ไฟ LED สีแดงจะสว่างขึ้นระหว่างการตั้งโปรแกรม หน้าสัมผัสการเขียนโปรแกรมอยู่ที่ตัวเชื่อมต่อ IDC-06 โดย pinout เป็นไปตามมาตรฐาน ATMEL สำหรับตัวเชื่อมต่อ ISP 6 พิน:


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


ขั้วต่อการเขียนโปรแกรมและจัมเปอร์เพื่อลดความเร็วของโปรแกรมเมอร์จะอยู่ที่ส่วนท้ายของอุปกรณ์ซึ่งสะดวกมาก


เฟิร์มแวร์ของไมโครคอนโทรลเลอร์ควบคุม

ดังนั้นหลังจากประกอบอุปกรณ์แล้ว สิ่งที่สำคัญที่สุดที่เหลืออยู่คือการแฟลชไมโครคอนโทรลเลอร์ควบคุม เพื่อนที่ยังมีคอมพิวเตอร์ที่มีพอร์ต LPT เหมาะอย่างยิ่งสำหรับวัตถุประสงค์เหล่านี้ :)โปรแกรมเมอร์ห้าสายที่ง่ายที่สุดสำหรับ AVR
สามารถแฟลชไมโครคอนโทรลเลอร์ได้จากขั้วต่อการเขียนโปรแกรมโดยเชื่อมต่อพินรีเซ็ตของไมโครคอนโทรลเลอร์ (ขา 29) และขั้วต่อ มีเฟิร์มแวร์สำหรับรุ่น Atmega48, Atmega8 และ Atmega88 ขอแนะนำให้ใช้หนึ่งในสองสโตนสุดท้ายเนื่องจากการรองรับเวอร์ชัน Atmega48 ถูกยกเลิกแล้วและเวอร์ชันเฟิร์มแวร์ล่าสุดมีอายุย้อนไปถึงปี 2009 และเวอร์ชันสำหรับสโตนที่ 8 และ 88 นั้นได้รับการอัปเดตอย่างต่อเนื่องและดูเหมือนว่าผู้เขียนกำลังวางแผนที่จะเพิ่มดีบักเกอร์ในวงจรให้กับฟังก์ชันนี้ เราได้รับเฟิร์มแวร์จากหน้าภาษาเยอรมัน ในการอัปโหลดโปรแกรมควบคุมไปยังไมโครคอนโทรลเลอร์ ฉันใช้โปรแกรม PonyProg เมื่อตั้งโปรแกรมจำเป็นต้องตั้งค่าคริสตัลให้ทำงานจากแหล่งสัญญาณนาฬิกาภายนอกที่ 12 MHz สกรีนช็อตของโปรแกรมพร้อมการตั้งค่าจัมเปอร์ฟิวส์ใน PonyProg:


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

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

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


เลือกโฟลเดอร์ที่มีฟืนอยู่ แล้วคลิกถัดไป


หน้าต่างจะปรากฏขึ้นทันทีพร้อมคำเตือนว่าไดรเวอร์ที่กำลังติดตั้งไม่มีลายเซ็นดิจิทัลสำหรับซอฟท์แวร์ขนาดเล็ก:


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


เพียงเท่านี้โปรแกรมเมอร์ก็พร้อมใช้งานแล้ว

โปรแกรมเมอร์ Khazama AVR

ในการทำงานร่วมกับโปรแกรมเมอร์ ฉันเลือกโปรแกรมเมอร์โปรแกรมเมอร์ Khazama AVR โปรแกรมที่ยอดเยี่ยมพร้อมอินเทอร์เฟซที่เรียบง่าย


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


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

ดาวน์โหลดไฟล์ PCBใน SprintLayout คุณสามารถไปที่ลิงค์นี้

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

และหากไม่มีปัญหากับจุดแรก - โดยปกติแล้วผู้เขียนวงจรจะอัปโหลด "เฟิร์มแวร์" ที่เสร็จแล้วจากนั้นสิ่งต่าง ๆ สำหรับโปรแกรมเมอร์ก็จะซับซ้อนกว่า

ราคาของโปรแกรมเมอร์ USB สำเร็จรูปค่อนข้างสูงและวิธีที่ดีที่สุดคือประกอบเอง นี่คือแผนภาพของอุปกรณ์ที่นำเสนอ (คลิกรูปภาพได้)

ส่วนสำคัญ.

แผงติดตั้งเอ็มเค

แผนภาพต้นฉบับนำมาจากเว็บไซต์ LabKit.ru โดยได้รับอนุญาตจากผู้เขียนซึ่งต้องขอบคุณเขามาก นี่คือโคลนที่เรียกว่าโปรแกรมเมอร์ PICkit2 ที่เป็นกรรมสิทธิ์ เนื่องจากเวอร์ชันอุปกรณ์เป็นสำเนา "น้ำหนักเบา" ของ PICkit2 ที่เป็นกรรมสิทธิ์ ผู้เขียนจึงเรียกการพัฒนาของเขา PICkit-2 Liteซึ่งเน้นความง่ายในการประกอบอุปกรณ์ดังกล่าวสำหรับนักวิทยุสมัครเล่นมือใหม่

โปรแกรมเมอร์สามารถทำอะไรได้บ้าง? เมื่อใช้โปรแกรมเมอร์ คุณสามารถแฟลช MCU ซีรีส์ PIC ที่พร้อมใช้งานและได้รับความนิยมมากที่สุดได้ (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A ฯลฯ) รวมถึงชิปหน่วยความจำ EEPROM ซีรีส์ 24LC นอกจากนี้โปรแกรมเมอร์สามารถทำงานในโหมดตัวแปลง USB-UART และมีฟังก์ชั่นบางอย่างของเครื่องวิเคราะห์ลอจิก ฟังก์ชันที่สำคัญอย่างยิ่งที่โปรแกรมเมอร์มีคือการคำนวณค่าคงที่การสอบเทียบของเครื่องกำเนิด RC ในตัวของ MCU บางตัว (เช่น PIC12F629 และ PIC12F675)

การเปลี่ยนแปลงที่จำเป็น

มีการเปลี่ยนแปลงบางอย่างในวงจรที่จำเป็นเพื่อให้การใช้โปรแกรมเมอร์ PICkit-2 Lite สามารถเขียน/ลบ/อ่านข้อมูลจากชิปหน่วยความจำ EEPROM ของซีรีส์ 24Cxx ได้

จากการเปลี่ยนแปลงที่เกิดขึ้นกับโครงการ เพิ่มการเชื่อมต่อจากพิน 6 ของ DD1 (RA4) ไปยังพิน 21 ของแผง ZIF พิน AUX ใช้เฉพาะสำหรับการทำงานกับชิปหน่วยความจำ 24LC EEPROM (24C04, 24WC08 และแอนะล็อก) มันส่งข้อมูล ซึ่งเป็นสาเหตุว่าทำไมจึงมีเครื่องหมายคำว่า “ข้อมูล” บนแผนภาพแผงการเขียนโปรแกรม เมื่อตั้งโปรแกรมไมโครคอนโทรลเลอร์ โดยปกติจะไม่ใช้พิน AUX แม้ว่าจะจำเป็นเมื่อตั้งโปรแกรม MK ในโหมด LVP

นอกจากนี้ ยังมีการเพิ่มตัวต้านทานแบบดึงขึ้น 2 kOhm ซึ่งเชื่อมต่อระหว่างพิน SDA และ Vcc ของชิปหน่วยความจำ

ฉันได้ทำการปรับเปลี่ยนทั้งหมดนี้บนแผงวงจรพิมพ์แล้วหลังจากประกอบ PICkit-2 Lite ตามแผนภาพต้นฉบับของผู้เขียน

ชิปหน่วยความจำ 24Cxx (24C08 ฯลฯ) มีการใช้กันอย่างแพร่หลายในอุปกรณ์วิทยุในครัวเรือน และบางครั้งจะต้องทำการแฟลช เช่น เมื่อซ่อมทีวี CRT พวกเขาใช้หน่วยความจำ 24Cxx เพื่อจัดเก็บการตั้งค่า

ทีวี LCD ใช้หน่วยความจำประเภทอื่น (หน่วยความจำแฟลช) ฉันได้พูดคุยไปแล้วเกี่ยวกับวิธีการแฟลชหน่วยความจำของแอลซีดีทีวี ถ้าใครสนใจก็ลองดูครับ

เนื่องจากจำเป็นต้องทำงานกับไมโครวงจรซีรีส์ 24Cxx ฉันจึงต้อง "เสร็จสิ้น" โปรแกรมเมอร์ ฉันไม่ได้แกะสลักแผงวงจรพิมพ์ใหม่ ฉันเพียงเพิ่มองค์ประกอบที่จำเป็นลงบนแผงวงจรพิมพ์ นี่คือสิ่งที่เกิดขึ้น

แกนหลักของอุปกรณ์คือไมโครคอนโทรลเลอร์ PIC18F2550-I/SP.

นี่เป็นชิปตัวเดียวในอุปกรณ์ MK PIC18F2550 จำเป็นต้อง "แฟลช" การดำเนินการง่ายๆ นี้ทำให้เกิดความสับสนสำหรับหลาย ๆ คน เนื่องจากปัญหาที่เรียกว่า "ไก่กับไข่" เกิดขึ้น ฉันจะบอกคุณว่าฉันแก้ไขมันได้อย่างไรในภายหลัง

รายการชิ้นส่วนสำหรับประกอบโปรแกรมเมอร์ ในเวอร์ชันมือถือ ให้ลากตารางไปทางซ้าย (ปัดซ้าย-ขวา) เพื่อดูคอลัมน์ทั้งหมด

ชื่อ การกำหนด คะแนน/พารามิเตอร์ ยี่ห้อหรือประเภทรายการ
สำหรับส่วนหลักของโปรแกรมเมอร์
ไมโครคอนโทรลเลอร์ ดีดี1 ไมโครคอนโทรลเลอร์ 8 บิต PIC18F2550-I/SP
ทรานซิสเตอร์แบบไบโพลาร์ วีที1,วีที2,วีที3 KT3102
VT4 เคที361
ไดโอด วีดี1 KD522, 1N4148
ชอตกีไดโอด วีดี2 1N5817
ไฟ LED HL1, HL2 3 โวลต์ใดๆ สีแดงและ สีเขียวสีเรืองแสง
ตัวต้านทาน R1, R2 300 โอห์ม
R3 22 kโอห์ม
R4 1 โอห์ม
R5, R6, R12 10 kโอห์ม
R7, R8, R14 100 โอห์ม
R9, R10, R15, R16 4.7 โอห์ม
ร11 2.7 โอห์ม
ร13 100 โอห์ม
ตัวเก็บประจุ ค2 0.1 ไมโคร K10-17 (เซรามิก) อะนาล็อกนำเข้า
ค3 0.47 ไมครอน
ตัวเก็บประจุด้วยไฟฟ้า ค1 100uF * 6.3V K50-6 อะนาล็อกนำเข้า
ค4 47 ยูเอฟ * 16 โวลต์
ตัวเหนี่ยวนำ (สำลัก) L1 680 µH แบบรวม EC24, CECL หรือแบบโฮมเมด
เครื่องสะท้อนควอตซ์ ZQ1 20 เมกะเฮิรตซ์
ช่องเสียบยูเอสบี XS1 ประเภท USB-BF
จัมเปอร์ เอ็กซ์ที1 "จัมเปอร์" ทุกประเภท
สำหรับแผงติดตั้งไมโครคอนโทรลเลอร์ (MK)
แผง ZIF XS1 แผง ZIF 40 พินใด ๆ
ตัวต้านทาน R1 2 โอห์ม MLT, MON (กำลังตั้งแต่ 0.125 W ขึ้นไป) อะนาล็อกที่นำเข้า
R2, R3, R4, R5, R6 10 kโอห์ม

ตอนนี้เล็กน้อยเกี่ยวกับรายละเอียดและวัตถุประสงค์ของพวกเขา

สีเขียว LED HL1 จะสว่างขึ้นเมื่อมีการจ่ายไฟให้กับโปรแกรมเมอร์และ สีแดง HL2 LED จะเปล่งเสียงเมื่อมีการถ่ายโอนข้อมูลระหว่างคอมพิวเตอร์และโปรแกรมเมอร์

เพื่อให้อุปกรณ์มีความอเนกประสงค์และเชื่อถือได้ จึงใช้ช่องเสียบ USB “B” (สี่เหลี่ยม) ขนาด XS1 คอมพิวเตอร์ใช้ช่องเสียบ USB Type A ดังนั้นจึงเป็นไปไม่ได้ที่จะปะปนกันช่องเสียบของสายเชื่อมต่อ โซลูชันนี้ยังช่วยเพิ่มความน่าเชื่อถือของอุปกรณ์อีกด้วย หากสายเคเบิลใช้งานไม่ได้ก็สามารถเปลี่ยนเป็นสายใหม่ได้อย่างง่ายดายโดยไม่ต้องพึ่งการบัดกรีหรืองานติดตั้ง

เนื่องจากเป็นตัวเหนี่ยวนำ L1 680 µH ควรใช้ตัวเหนี่ยวนำสำเร็จรูป (เช่น ประเภท EC24 หรือ CECL) แต่ถ้าคุณไม่พบผลิตภัณฑ์สำเร็จรูปคุณสามารถทำคันเร่งเองได้ ในการทำเช่นนี้ คุณจะต้องพันลวด PEL-0.1 จำนวน 250 - 300 รอบบนแกนเฟอร์ไรต์จากตัวเหนี่ยวนำประเภท CW68 ควรพิจารณาว่าเนื่องจากมี PWM พร้อมฟีดแบ็ค จึงไม่จำเป็นต้องกังวลเกี่ยวกับความแม่นยำของระดับความเหนี่ยวนำ

แรงดันไฟฟ้าสำหรับการเขียนโปรแกรมไฟฟ้าแรงสูง (Vpp) ตั้งแต่ +8.5 ถึง 14 โวลต์ถูกสร้างขึ้นโดยตัวควบคุมหลัก ประกอบด้วยองค์ประกอบ VT1, VD1, L1, C4, R4, R10, R11 พัลส์ PWM ถูกส่งจากพิน 12 ของ PIC18F2550 ไปยังฐาน VT1 ข้อเสนอแนะมีให้โดยตัวแบ่ง R10, R11

เพื่อปกป้ององค์ประกอบของวงจรจากแรงดันย้อนกลับจากสายการเขียนโปรแกรมเมื่อใช้โปรแกรมเมอร์ USB ในโหมด ICSP (In-Circuit Serial Programming) จะใช้ไดโอด VD2 VD2 เป็นไดโอดชอตกี ควรเลือกโดยมีแรงดันตกคร่อมที่ทางแยก P-N ไม่เกิน 0.45 โวลต์ นอกจากนี้ ไดโอด VD2 ยังปกป้ององค์ประกอบจากแรงดันย้อนกลับเมื่อใช้โปรแกรมเมอร์ในการแปลง USB-UART และโหมดวิเคราะห์ลอจิก

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

ความกะทัดรัดของอุปกรณ์ทำโดยแผง ZIF สากล (Zero Insertion Force - โดยไม่ต้องใช้แรงในการติดตั้ง)

ด้วยเหตุนี้คุณจึงสามารถ "เดินสาย" ไมโครคอนโทรลเลอร์ลงในแพ็คเกจ DIP ได้เกือบทุกแบบ

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

นี่คือวิธีการติดตั้งไมโครคอนโทรลเลอร์ 18 พิน (PIC16F84A, PIC16F628A ฯลฯ)

และนี่คือไมโครคอนโทรลเลอร์ 8 พิน (PIC12F675, PIC12F629 ฯลฯ )

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

คุณสามารถค้นหาภาพวาดแผงวงจรพิมพ์ที่เสร็จแล้วพร้อมการเปลี่ยนแปลงทั้งหมดได้ที่ลิงค์ท้ายบทความ ด้วยการเปิดไฟล์ในโปรแกรม Sprint Layout 5.0 โดยใช้โหมด "พิมพ์" คุณไม่เพียงสามารถพิมพ์เลเยอร์ที่มีรูปแบบของตัวนำที่พิมพ์ออกมาเท่านั้น แต่ยังสามารถดูตำแหน่งขององค์ประกอบบนแผงวงจรพิมพ์ได้อีกด้วย ให้ความสนใจกับจัมเปอร์แบบแยกที่เชื่อมต่อพิน 6 ของ DD1 และพิน 21 ของแผง ZIF คุณต้องพิมพ์ภาพวาดของกระดาน ในภาพสะท้อนในกระจก.

คุณสามารถสร้างแผงวงจรพิมพ์โดยใช้วิธี LUT เช่นเดียวกับเครื่องหมายสำหรับแผงวงจรพิมพ์โดยใช้ tsaponlak (นี่คือสิ่งที่ฉันทำ) หรือวิธี "ดินสอ"

นี่คือรูปภาพการวางตำแหน่งองค์ประกอบต่างๆ บนแผงวงจรพิมพ์ (คลิกได้)

เมื่อทำการติดตั้ง ขั้นตอนแรกคือการบัดกรีจัมเปอร์ที่ทำจากลวดทองแดงกระป๋อง จากนั้นติดตั้งองค์ประกอบแบบ low-profile (ตัวต้านทาน ตัวเก็บประจุ ควอทซ์ ขั้วต่อพิน ISCP) จากนั้นจึงติดตั้งทรานซิสเตอร์และ MK ที่ตั้งโปรแกรมไว้ ขั้นตอนสุดท้ายคือการติดตั้งแผง ZIF, ช่องเสียบ USB และปิดผนึกสายไฟในฉนวน (จัมเปอร์)

"เฟิร์มแวร์" ของไมโครคอนโทรลเลอร์ PIC18F2550

ไฟล์เฟิร์มแวร์ - PK2V023200.ฐานสิบหกคุณต้องเขียน PIC18F2550I-SP MK ลงในหน่วยความจำโดยใช้โปรแกรมเมอร์ที่รองรับไมโครคอนโทรลเลอร์ PIC (เช่น Extra-PIC) ฉันใช้ JDM Programmator JONIC PROG และโปรแกรม WinPic800.

คุณสามารถอัปโหลดเฟิร์มแวร์ไปยัง MCU PIC18F2550 ได้โดยใช้โปรแกรมเมอร์ PICkit2 ที่เป็นเอกสิทธิ์เดียวกันกับ PICkit2 หรือ PICkit3 เวอร์ชันใหม่ โดยปกติแล้ว คุณสามารถทำได้ด้วย PICkit-2 Lite แบบโฮมเมด หากเพื่อนของคุณคนใดคนหนึ่งจัดการประกอบมันต่อหน้าคุณ :)

นอกจากนี้ยังควรทราบด้วยว่า "เฟิร์มแวร์" ของไมโครคอนโทรลเลอร์ PIC18F2550-I/SP (ไฟล์ PK2V023200.ฐานสิบหก) ถูกเขียนเมื่อติดตั้งโปรแกรม PICkit 2 Programmer ในโฟลเดอร์พร้อมกับไฟล์ของโปรแกรมเอง ตำแหน่งโดยประมาณของไฟล์ PK2V023200.hex - "C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex" . สำหรับผู้ที่ติดตั้ง Windows เวอร์ชัน 32 บิตบนพีซี เส้นทางตำแหน่งจะแตกต่างออกไป: "C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex" .

ถ้าคุณไม่สามารถแก้ปัญหา "ไก่กับไข่" โดยใช้วิธีการที่เสนอได้ คุณสามารถซื้อโปรแกรมเมอร์ PICkit3 สำเร็จรูปบนเว็บไซต์ AliExpress ได้ ที่นั่นราคาถูกกว่ามาก ฉันเขียนเกี่ยวกับวิธีซื้อชิ้นส่วนและชุดอิเล็กทรอนิกส์ใน AliExpress

การอัพเดตเฟิร์มแวร์โปรแกรมเมอร์

ความคืบหน้าไม่หยุดนิ่ง และในบางครั้ง Microchip จะเผยแพร่การอัปเดตสำหรับซอฟต์แวร์ของบริษัท ซึ่งรวมถึงโปรแกรมเมอร์ PICkit2 และ PICkit3 โดยปกติแล้ว เรายังสามารถอัปเดตโปรแกรมควบคุมของ PICkit-2 Lite แบบโฮมเมดของเราได้ด้วย ในการดำเนินการนี้ คุณจะต้องมีโปรแกรมโปรแกรมเมอร์ PICkit2 มันคืออะไรและใช้งานอย่างไร - ในภายหลัง ในระหว่างนี้ มีคำสองสามคำเกี่ยวกับสิ่งที่ต้องทำเพื่ออัปเดตเฟิร์มแวร์

หากต้องการอัปเดตซอฟต์แวร์โปรแกรมเมอร์ คุณต้องปิดจัมเปอร์ XT1 บนโปรแกรมเมอร์เมื่อถูกตัดการเชื่อมต่อจากคอมพิวเตอร์ จากนั้นเชื่อมต่อโปรแกรมเมอร์เข้ากับพีซีแล้วเปิดโปรแกรมเมอร์ PICkit2 เมื่อปิด XT1 โหมดจะถูกเปิดใช้งาน บูตโหลดเดอร์เพื่อดาวน์โหลดเฟิร์มแวร์เวอร์ชั่นใหม่ จากนั้นในโปรแกรมเมอร์ PICkit2 ผ่านเมนู "เครื่องมือ" - "ดาวน์โหลดระบบปฏิบัติการ PICkit 2" ให้เปิดไฟล์ hex ที่เตรียมไว้ก่อนหน้านี้ของเฟิร์มแวร์ที่อัพเดต ต่อไปจะเกิดกระบวนการอัพเดตซอฟต์แวร์โปรแกรมเมอร์

หลังจากการอัพเดต คุณจะต้องยกเลิกการเชื่อมต่อโปรแกรมเมอร์จากพีซี และถอดจัมเปอร์ XT1 ออก ในโหมดปกติจัมเปอร์จะเปิดอยู่. คุณสามารถค้นหาเวอร์ชันซอฟต์แวร์โปรแกรมเมอร์ได้จากเมนู "ช่วยเหลือ" - "เกี่ยวกับ" ในโปรแกรมโปรแกรมเมอร์ PICkit2

ทั้งหมดนี้เกี่ยวกับปัญหาทางเทคนิค และตอนนี้เกี่ยวกับซอฟต์แวร์

ทำงานร่วมกับโปรแกรมเมอร์ โปรแกรมเมอร์ PICkit2

ในการทำงานกับโปรแกรมเมอร์ USB เราจะต้องติดตั้งโปรแกรม PICkit2 Programmer บนคอมพิวเตอร์ โปรแกรมพิเศษนี้มีอินเทอร์เฟซที่เรียบง่าย ติดตั้งง่าย และไม่ต้องการการกำหนดค่าพิเศษ เป็นที่น่าสังเกตว่าคุณสามารถทำงานร่วมกับโปรแกรมเมอร์ได้โดยใช้สภาพแวดล้อมการพัฒนา MPLAB IDE แต่เพื่อที่จะแฟลช/ลบ/อ่าน MK โปรแกรมง่ายๆ - โปรแกรมเมอร์ PICkit2 ก็เพียงพอแล้ว ฉันแนะนำ.

หลังจากติดตั้งโปรแกรม PICkit2 Programmer แล้ว ให้เชื่อมต่อโปรแกรมเมอร์ USB ที่ประกอบเข้ากับคอมพิวเตอร์ ในขณะเดียวกันก็จะสว่างขึ้น สีเขียว LED (“พลังงาน”) และระบบปฏิบัติการจดจำอุปกรณ์เป็น "โปรแกรมเมอร์ไมโครคอนโทรลเลอร์ PICkit2" และติดตั้งไดรเวอร์

เปิดตัวโปรแกรมเมอร์ PICkit2 คำจารึกควรปรากฏในหน้าต่างโปรแกรม

หากไม่ได้เชื่อมต่อโปรแกรมเมอร์ หน้าต่างโปรแกรมจะแสดงข้อความที่น่ากลัวและคำแนะนำสั้น ๆ ว่า "ต้องทำอย่างไร" เป็นภาษาอังกฤษ.

หากโปรแกรมเมอร์เชื่อมต่อกับคอมพิวเตอร์ที่ติดตั้ง MK โปรแกรมจะตรวจพบเมื่อเปิดตัวและจะแจ้งให้เราทราบในหน้าต่างโปรแกรมเมอร์ PICkit2

ยินดีด้วย! ขั้นตอนแรกได้ดำเนินการแล้ว และฉันได้พูดคุยเกี่ยวกับวิธีใช้โปรแกรม PICkit2 Programmer ในบทความแยกต่างหาก ขั้นตอนต่อไป .

ไฟล์ที่จำเป็น:

    คู่มือผู้ใช้ PICkit2 (ภาษารัสเซีย) ใช้หรือ

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

บทความนี้จะอธิบายเกี่ยวกับโปรแกรมเมอร์ USB สำหรับไมโครคอนโทรลเลอร์ AVR ซึ่งคุณสามารถประกอบเองได้ สร้างขึ้นบนไมโครคอนโทรลเลอร์ Atmega8 และสามารถทำงานได้จากขั้วต่อ USB ของคอมพิวเตอร์ โปรแกรมเมอร์นี้เข้ากันได้กับ STK500 v2.

คำอธิบายของโปรแกรมเมอร์ USB

โปรแกรมเมอร์ USB สร้างขึ้นบนบอร์ดที่ทำจากไฟเบอร์กลาสฟอยล์ด้านเดียว บนบอร์ดมีจัมเปอร์ 2 ตัว: อันหนึ่งอยู่ใต้ตัวเชื่อมต่อ SPI จัมเปอร์ตัวที่สองตั้งอยู่ใกล้กับตัวเชื่อมต่อเดียวกัน

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

  • SUT1 = 0
  • บู๊ทส์Z1 = 0
  • บู๊ทส์Z0 = 0
  • คคอปต์ = 0
  • สเปียน = 0

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

การเขียนโปรแกรม Atmega8 ผ่านพอร์ต LPT ของคอมพิวเตอร์

วิธีที่เร็วและถูกที่สุดในการเขียนโปรแกรม Atmega8 คือการใช้โปรแกรมเมอร์ LPT สำหรับ AVR แผนภาพที่คล้ายกันแสดงอยู่ด้านล่าง

ไมโครคอนโทรลเลอร์ใช้พลังงานจากตัวควบคุมแรงดันไฟฟ้า 78L05 แบบธรรมดา คุณสามารถใช้โปรแกรม UniProf เป็นเชลล์การเขียนโปรแกรมได้

เมื่อคุณเปิดโปรแกรมครั้งแรกและเมื่อไม่ได้เชื่อมต่อคอนโทรลเลอร์โดยการกดปุ่ม "LPTpins" คุณจะต้องกำหนดค่าพินพอร์ต LPT ดังนี้:

เมื่อ UniProf เริ่มทำงาน ระบบจะกำหนดประเภทของไมโครคอนโทรลเลอร์โดยอัตโนมัติ เราโหลดเฟิร์มแวร์ Atmega8_USB_prog.hex ลงในหน่วยความจำ UniProf และปฏิเสธการเชื่อมต่อของไฟล์ EEPROM

เราตั้งค่าฟิวส์ดังนี้ (สำหรับโปรแกรม UniProF) โดยกดปุ่ม "FUSE":

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

การตั้งค่าโปรแกรมเมอร์ USB

หลังจากที่ไมโครคอนโทรลเลอร์ของเรากระพริบแล้ว จะต้องติดตั้งบนบอร์ดโปรแกรมเมอร์ USB ต่อไปเราเชื่อมต่อโปรแกรมเมอร์เข้ากับพอร์ต USB ของคอมพิวเตอร์ แต่ยังไม่ได้จ่ายไฟ

การตั้งค่าพอร์ต:

การตั้งค่าเทอร์มินัล:

การตั้งค่า ASCII:

หลังจากเสร็จสิ้นขั้นตอนทั้งหมดแล้ว เราจะจ่ายไฟให้กับโปรแกรมเมอร์ USB ไฟ LED HL1 ควรกะพริบ 6 ครั้ง จากนั้นจึงติดสว่าง

หากต้องการตรวจสอบการเชื่อมต่อระหว่างโปรแกรมเมอร์ USB และคอมพิวเตอร์ให้กดปุ่ม "Enter" 2 ครั้งในโปรแกรม HyperTerminal หากทุกอย่างเรียบร้อยเราควรเห็นภาพต่อไปนี้:

หากไม่เป็นเช่นนั้น ให้ตรวจสอบการติดตั้งอีกครั้ง โดยเฉพาะบรรทัด TxD

ต่อไปเราจะเข้าสู่โปรแกรมเมอร์เวอร์ชัน 2.10 เนื่องจากหากไม่มีสิ่งนี้โปรแกรมเมอร์จะไม่ทำงานกับโปรแกรม "ระดับบนสุด" ในการดำเนินการนี้ให้ป้อน "2" แล้วกด "Enter" ป้อน "a" (ภาษาอังกฤษ) แล้วกด "Enter"

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

  • “0”, “Enter” - โหมดนี้ปิดใช้งาน
  • “1”, “Enter” - เปิดใช้งานโหมดแล้ว

การเปลี่ยนแปลงความเร็วการเขียนโปรแกรม (1MHz):

  • “0”, “Enter” – ความเร็วสูงสุด
  • “1”, “Enter” – ลดความเร็ว

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

(ดาวน์โหลด: 1,203)

วันหนึ่งฉันตัดสินใจประกอบเครื่องวัด LC ง่ายๆ สำหรับ pic16f628a และโดยธรรมชาติแล้ว มันจะต้องมีการแฟลชอะไรบางอย่าง ฉันเคยมีคอมพิวเตอร์ที่มีพอร์ต COM จริง แต่ตอนนี้ฉันมีเพียง USB และบอร์ด pci-lpt-2com เริ่มต้นด้วยการรวบรวมโปรแกรมเมอร์ JDM ธรรมดา ๆ แต่เมื่อปรากฏออกมามันไม่ต้องการทำงานกับบอร์ด pci-lpt-com หรืออะแดปเตอร์ usb-com (สัญญาณ RS-232 แรงดันต่ำ) จากนั้นฉันก็รีบไปหาโปรแกรมเมอร์ usb pic แต่เมื่อปรากฎว่าทุกอย่างถูก จำกัด ให้ใช้ pic18f2550/4550 ราคาแพงซึ่งฉันไม่มีโดยธรรมชาติและน่าเสียดายถ้าใช้ MK ราคาแพงเช่นนี้ถ้าฉันมาก ไม่ค่อยทำอะไรที่จุดสูงสุด (ฉันชอบ av- ใช่การกระพริบไม่ใช่ปัญหาราคาถูกกว่ามากและสำหรับฉันแล้วดูเหมือนว่าการเขียนโปรแกรมกับพวกมันง่ายกว่า) หลังจากเจาะลึกบนอินเทอร์เน็ตเป็นเวลานานในบทความหลายบทความเกี่ยวกับโปรแกรมเมอร์ EXTRA-PIC และรุ่นต่างๆ ผู้เขียนคนหนึ่งเขียนว่า extrapic ใช้งานได้กับพอร์ต com ใด ๆ และแม้แต่อะแดปเตอร์ usb-com

วงจรของโปรแกรมเมอร์นี้ใช้ตัวแปลงระดับลอจิก max232

ฉันคิดว่าถ้าคุณใช้อะแดปเตอร์ usb มันจะโง่มากที่จะแปลง usb เป็น usart TTL, TTL เป็น RS232, RS232 กลับเป็นระดับ TTL สองครั้ง หากคุณสามารถรับสัญญาณ TTL ของพอร์ต RS232 จาก usb- ชิปแปลง usart

ฉันก็เลยทำ ฉันใช้ชิป CH340G (ซึ่งมีสัญญาณพอร์ต com ทั้งหมด 8 พอร์ต) และเชื่อมต่อแทน max232 และนี่คือสิ่งที่เกิดขึ้น

ในวงจรของฉันมีจัมเปอร์ jp1 ซึ่งไม่อยู่ในจุดสูงสุดพิเศษ ฉันติดตั้งมันเพราะฉันไม่รู้ว่าเอาต์พุต TX จะทำงานอย่างไรที่ระดับ TTL ดังนั้นฉันจึงทำให้มันเป็นไปได้ที่จะกลับด้านบน NAND อิสระที่เหลือ องค์ประกอบและเมื่อมันปรากฏออกมา มันถูกต้องว่ามีตรรกะอยู่ที่พิน TX และดังนั้นจึงมี 12 โวลต์ที่พิน VPP เมื่อเปิดเครื่อง แต่จะไม่มีอะไรเกิดขึ้นระหว่างการเขียนโปรแกรม (แม้ว่าคุณจะสามารถแปลง TX ในซอฟต์แวร์ได้ก็ตาม) .

หลังจากประกอบบอร์ดแล้วก็ถึงเวลาทดสอบ และนี่คือความผิดหวังหลัก ตรวจพบโปรแกรมเมอร์ทันที (ด้วยโปรแกรม ic-prog) และเริ่มทำงานแต่ช้ามาก! โดยหลักการแล้ว - ตามที่คาดไว้ จากนั้นในการตั้งค่าพอร์ต com ฉันตั้งค่าความเร็วสูงสุด (128 กิโลไบต์) และเริ่มทดสอบโปรแกรมที่พบทั้งหมดสำหรับ JDM เป็นผลให้ PicPgm กลายเป็นวิธีที่เร็วที่สุด pic16f628a ของฉันแฟลชเต็มที่ (hex, eeprom และ config) พร้อมการตรวจสอบความถูกต้องประมาณ 4-6 นาที (การอ่านช้ากว่าการเขียน) IcProg ก็ใช้งานได้เช่นกัน แต่ช้ากว่า ไม่มีข้อผิดพลาดในการเขียนโปรแกรม ฉันพยายามแฟลช eeprom 24c08 ด้วยผลลัพธ์ก็เหมือนเดิม - ทุกอย่างเย็บ แต่ช้ามาก

สรุป: โปรแกรมเมอร์ค่อนข้างง่ายไม่มีชิ้นส่วนราคาแพง (CH340 - 0.3-0.5 $ โดยทั่วไป k1533la3 สามารถพบได้ในขยะวิทยุ) ทำงานบนคอมพิวเตอร์แล็ปท็อปเครื่องใดก็ได้ (และคุณสามารถใช้แท็บเล็ตบน Windows 8/10 ได้ ). จุดด้อย: มันช้ามาก นอกจากนี้ยังต้องใช้พลังงานภายนอกสำหรับสัญญาณ VPP ด้วยเหตุนี้สำหรับฉันดูเหมือนว่าสำหรับการกระพริบของยอดเขาไม่บ่อยนักนี่เป็นตัวเลือกที่ทำซ้ำได้ง่ายและราคาไม่แพงสำหรับผู้ที่ไม่มีคอมพิวเตอร์โบราณที่มีพอร์ตที่จำเป็นอยู่ในมือ

นี่คือรูปถ่ายของอุปกรณ์ที่เสร็จแล้ว:

ดังที่เพลงกล่าวไว้ว่า “ฉันสร้างเขาขึ้นมาจากสิ่งที่เป็นอยู่” ชุดชิ้นส่วนมีความหลากหลายมาก: ทั้ง SMD และ DIP

สำหรับผู้ที่กล้าทำซ้ำวงจรเกือบทุกคนจะเหมาะกับตัวแปลง usb-uart (ft232, pl2303, cp2101 ฯลฯ ) แทนที่จะเป็น k1533la3 k555 ก็เหมาะฉันคิดว่าแม้แต่ซีรีย์ k155 หรือ อะนาล็อกต่างประเทศ 74als00 อาจใช้งานได้กับองค์ประกอบ NOT แบบลอจิคัลประเภท k1533ln1 ฉันกำลังติดแผงวงจรพิมพ์ของตัวเอง แต่ใครๆ ก็สามารถวาดการเดินสายไฟที่นั่นใหม่สำหรับองค์ประกอบที่มีอยู่ได้

รายชื่อธาตุกัมมันตภาพรังสี

การกำหนด พิมพ์ นิกาย ปริมาณ บันทึกร้านค้าสมุดบันทึกของฉัน
ไอซี1 ชิปCH340G1 ไปยังสมุดบันทึก
ไอซี2 ชิปK1533LA31 ไปยังสมุดบันทึก
VR1 ตัวควบคุมเชิงเส้น

LM7812

1 ไปยังสมุดบันทึก
VR2 ตัวควบคุมเชิงเส้น

LM7805

1 ไปยังสมุดบันทึก
วีที1 ทรานซิสเตอร์แบบไบโพลาร์

KT502E

1 ไปยังสมุดบันทึก
วีที2 ทรานซิสเตอร์แบบไบโพลาร์

KT3102E

1 ไปยังสมุดบันทึก
วีดี1-วีดี3 ไดโอดเรียงกระแส

1N4148

2 ไปยังสมุดบันทึก
C1, C2, C5-C7 ตัวเก็บประจุ100 nF5 ไปยังสมุดบันทึก
ซี3,ซี4 ตัวเก็บประจุ22 พิโคเอฟ2 ไปยังสมุดบันทึก
HL1-HL4 ไดโอดเปล่งแสงใดๆ4 ไปยังสมุดบันทึก
R1, R3, R4 ตัวต้านทาน

1 โอห์ม

3
22 กันยายน 2554 เวลา 20:11 น

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

  • การเขียนโปรแกรมไมโครคอนโทรลเลอร์

เช่นเดียวกับที่โรงละครเริ่มต้นด้วยที่แขวน ดังนั้นการเขียนโปรแกรมไมโครคอนโทรลเลอร์จึงเริ่มต้นด้วยการเลือกโปรแกรมเมอร์ที่ดี เนื่องจากฉันเริ่มเชี่ยวชาญไมโครคอนโทรลเลอร์จาก ATMEL ฉันจึงต้องทำความคุ้นเคยกับสิ่งที่ผู้ผลิตนำเสนออย่างละเอียด พวกเขาเสนอสิ่งที่น่าสนใจและอร่อยมากมายในราคาที่สูงเกินไปเท่านั้น ตัวอย่างเช่น ผ้าพันคอที่มีไมโครคอนโทรลเลอร์ 20 ขาหนึ่งตัวพร้อมตัวต้านทานและไดโอดหนึ่งคู่เป็นสายรัดมีราคาเหมือนกับ "เครื่องบิน" ดังนั้นคำถามเกี่ยวกับการประกอบตัวเองของโปรแกรมเมอร์จึงเกิดขึ้น หลังจากการศึกษาการพัฒนาของนักวิทยุสมัครเล่นที่มีประสบการณ์มาอย่างยาวนานก็ตัดสินใจที่จะประกอบโปรแกรมเมอร์ USBASP ที่ได้รับการพิสูจน์แล้วซึ่งมีสมองซึ่งเป็นไมโครคอนโทรลเลอร์ Atmega8 (ยังมีตัวเลือกเฟิร์มแวร์สำหรับ atmega88 และ atmega48) การเดินสายขั้นต่ำของไมโครคอนโทรลเลอร์ทำให้คุณสามารถประกอบโปรแกรมเมอร์ขนาดเล็กที่คุณสามารถพกพาติดตัวไปได้ตลอดเวลาเช่นแฟลชไดรฟ์

ผู้เขียนโปรแกรมเมอร์นี้คือ Thomas Fichl ชาวเยอรมัน หน้าการพัฒนาของเขาพร้อมไดอะแกรม ไฟล์แผงวงจรพิมพ์ และไดรเวอร์
เมื่อตัดสินใจประกอบโปรแกรมเมอร์ขนาดเล็กแล้ว ฉันสร้างวงจรใหม่สำหรับไมโครคอนโทรลเลอร์ Atmega8 ในแพ็คเกจ TQFP32 (pinout ของไมโครคอนโทรลเลอร์แตกต่างจาก pinout ในแพ็คเกจ DIP):

Jumper J1 จะใช้หากจำเป็นต้องแฟลชไมโครคอนโทรลเลอร์ที่มีความถี่สัญญาณนาฬิกาต่ำกว่า 1.5 MHz อย่างไรก็ตาม จัมเปอร์นี้สามารถกำจัดทั้งหมดได้โดยการวางขาที่ 25 ของ MK ลงบนพื้น จากนั้นโปรแกรมเมอร์จะทำงานที่ความถี่ลดลงเสมอ โดยส่วนตัวแล้วฉันสังเกตเห็นว่าการเขียนโปรแกรมด้วยความเร็วที่ลดลงจะใช้เวลานานกว่าเสี้ยววินาที ดังนั้นตอนนี้ฉันจะไม่ดึงจัมเปอร์ แต่เย็บด้วยจัมเปอร์อย่างต่อเนื่อง
ซีเนอร์ไดโอด D1 และ D2 ใช้เพื่อจับคู่ระดับระหว่างโปรแกรมเมอร์และบัส USB มันจะทำงานได้หากไม่มี แต่ไม่ใช่ในคอมพิวเตอร์ทุกเครื่อง
ไฟ LED สีน้ำเงินแสดงว่าวงจรพร้อมที่จะตั้งโปรแกรมแล้ว ไฟ LED สีแดงจะสว่างขึ้นระหว่างการตั้งโปรแกรม หน้าสัมผัสการเขียนโปรแกรมอยู่ที่ตัวเชื่อมต่อ IDC-06 โดย pinout เป็นไปตามมาตรฐาน ATMEL สำหรับตัวเชื่อมต่อ ISP 6 พิน:

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

ขั้วต่อการเขียนโปรแกรมและจัมเปอร์เพื่อลดความเร็วของโปรแกรมเมอร์จะอยู่ที่ส่วนท้ายของอุปกรณ์ซึ่งสะดวกมาก

เฟิร์มแวร์ของไมโครคอนโทรลเลอร์ควบคุม
ดังนั้นหลังจากประกอบอุปกรณ์แล้ว สิ่งที่สำคัญที่สุดที่เหลืออยู่คือการแฟลชไมโครคอนโทรลเลอร์ควบคุม เพื่อนที่ยังมีคอมพิวเตอร์ที่มีพอร์ต LPT เหมาะสำหรับวัตถุประสงค์เหล่านี้ :) โปรแกรมเมอร์ห้าสายที่ง่ายที่สุดสำหรับ AVR
สามารถแฟลชไมโครคอนโทรลเลอร์ได้จากขั้วต่อการเขียนโปรแกรมโดยเชื่อมต่อพินรีเซ็ตของไมโครคอนโทรลเลอร์ (ขา 29) และขั้วต่อ มีเฟิร์มแวร์สำหรับรุ่น Atmega48, Atmega8 และ Atmega88 ขอแนะนำให้ใช้หนึ่งในสองสโตนสุดท้ายเนื่องจากการรองรับเวอร์ชัน Atmega48 ถูกยกเลิกแล้วและเวอร์ชันเฟิร์มแวร์ล่าสุดมีอายุย้อนไปถึงปี 2009 และเวอร์ชันสำหรับสโตนที่ 8 และ 88 นั้นได้รับการอัปเดตอย่างต่อเนื่องและดูเหมือนว่าผู้เขียนกำลังวางแผนที่จะเพิ่มดีบักเกอร์ในวงจรให้กับฟังก์ชันนี้ เราได้รับเฟิร์มแวร์จากหน้าภาษาเยอรมัน ในการอัปโหลดโปรแกรมควบคุมไปยังไมโครคอนโทรลเลอร์ ฉันใช้โปรแกรม PonyProg เมื่อตั้งโปรแกรมจำเป็นต้องตั้งค่าคริสตัลให้ทำงานจากแหล่งสัญญาณนาฬิกาภายนอกที่ 12 MHz สกรีนช็อตของโปรแกรมพร้อมการตั้งค่าจัมเปอร์ฟิวส์ใน PonyProg:

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

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

หน้าต่างจะปรากฏขึ้นทันทีพร้อมคำเตือนว่าไดรเวอร์ที่กำลังติดตั้งไม่มีลายเซ็นดิจิทัลสำหรับซอฟท์แวร์ขนาดเล็ก:

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

เพียงเท่านี้โปรแกรมเมอร์ก็พร้อมใช้งานแล้ว

โปรแกรมเมอร์ Khazama AVR
ในการทำงานร่วมกับโปรแกรมเมอร์ ฉันเลือกโปรแกรมเมอร์โปรแกรมเมอร์ Khazama AVR โปรแกรมที่ยอดเยี่ยมพร้อมอินเทอร์เฟซที่เรียบง่าย

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

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

คุณสามารถดาวน์โหลดไฟล์ PCB ใน SprintLayout ได้โดยใช้