การพัฒนาอุปกรณ์อิเล็กทรอนิกส์กำลังดำเนินไปอย่างรวดเร็วและบ่อยครั้งที่ไมโครคอนโทรลเลอร์เป็นองค์ประกอบหลักของอุปกรณ์นี้หรืออุปกรณ์ดังกล่าว เขาทำงานหลักและปลดปล่อยนักออกแบบจากความต้องการในการสร้างโซลูชันวงจรที่ซับซ้อนซึ่งช่วยลดขนาดของแผงวงจรพิมพ์ให้เหลือน้อยที่สุด ตามที่ทุกคนรู้ไมโครคอนโทรลเลอร์จะถูกควบคุมโดยโปรแกรมที่บันทึกไว้ในหน่วยความจำภายใน และหากโปรแกรมเมอร์อิเล็กทรอนิกส์ที่มีประสบการณ์ไม่มีปัญหาในการใช้ไมโครคอนโทรลเลอร์ในอุปกรณ์ของพวกเขาสำหรับผู้เริ่มต้นวิทยุมือสมัครเล่นที่พยายามเขียนโปรแกรมไปยังคอนโทรลเลอร์ (โดยเฉพาะ PIC) สามารถกลายเป็นความผิดหวังครั้งใหญ่และบางครั้งการแสดงดอกไม้ไฟขนาดเล็กในรูปแบบของชิปสูบบุหรี่
ผิดปกติพอ แต่ด้วยความยิ่งใหญ่ของอินเทอร์เน็ตทั้งหมดมันมีข้อมูลน้อยมากเกี่ยวกับเฟิร์มแวร์ ตัวควบคุม Picและวัสดุที่สามารถพบได้มีคุณภาพที่น่าสงสัยมาก แน่นอนคุณสามารถซื้อโปรแกรมเมอร์โรงงานในราคาที่ไม่เพียงพอและเย็บเท่าที่คุณต้องการ แต่ถ้าคนที่ไม่ได้มีส่วนร่วมในการผลิตจำนวนมาก สำหรับวัตถุประสงค์เหล่านี้คุณสามารถรวบรวมวิธีที่ง่ายและไม่แพงมาใช้ ทำที่บ้านอ้างถึง โปรแกรมเมอร์ JDM ตามแผนภาพด้านล่าง (รูปที่ 1):
ผิดปกติพอ แต่ด้วยความยิ่งใหญ่ของอินเทอร์เน็ตทั้งหมดมันมีข้อมูลน้อยมากเกี่ยวกับเฟิร์มแวร์ ตัวควบคุม Picและวัสดุที่สามารถพบได้มีคุณภาพที่น่าสงสัยมาก แน่นอนคุณสามารถซื้อโปรแกรมเมอร์โรงงานในราคาที่ไม่เพียงพอและเย็บเท่าที่คุณต้องการ แต่ถ้าคนที่ไม่ได้มีส่วนร่วมในการผลิตจำนวนมาก สำหรับวัตถุประสงค์เหล่านี้คุณสามารถรวบรวมวิธีที่ง่ายและไม่แพงมาใช้ ทำที่บ้านอ้างถึง โปรแกรมเมอร์ JDM ตามแผนภาพด้านล่าง (รูปที่ 1):
รูป№1 - แผนภาพของโปรแกรมเมอร์
ทันทีที่ฉันนำรายการขององค์ประกอบสำหรับผู้ที่ขี้เกียจเกินกว่าที่จะมองเข้าไปในแผนภาพ:
- R1 - 10 kOhm
- R2 - 10 kOhm (ถูกตัดทอน) ด้วยการปรับค่าความต้านทานของตัวต้านทานนี้คุณต้องมีขนาดประมาณ 13V ที่ pin No. 4 (VPP) ระหว่างการตั้งโปรแกรม ในกรณีของฉันความต้านทานอยู่ที่ 1.2 kOhm
- R3 - 200 โอห์ม
- R4, R5 - 1.5 kOhm
- VD1, VD2, VD3, VD4, VD6 - 1N4148
- VD5 - 1N4733A (แรงดันเสถียรภาพ 5.1V)
- VD7 - 1N4743A (แรงดันเสถียรภาพ 13V)
- C1 - 100 nF (0.1 μF)
- C2 - 470 μF x 16 V (อิเล็กโทรไลต์)
- SUB-D9F - ตัวเชื่อมต่อพอร์ต COM (MOM หรือ SOCKET)
- ซ็อกเก็ต DIP8 - ขึ้นอยู่กับคอนโทรลเลอร์ที่คุณใช้
วงจรใช้ตัวอย่างของการเชื่อมต่อตัวควบคุมทั่วไปเช่น PIC12F675 และ PIC12F629แต่นี่ไม่ได้หมายความว่าเฟิร์มแวร์ของซีรีส์อื่นเลย PIC จะเป็นไปไม่ได้ ในการเขียนโปรแกรมไปยังตัวควบคุมชนิดอื่นมันก็เพียงพอที่จะถ่ายโอนสายโปรแกรมเมอร์ตามรูปที่ 2 ซึ่งได้รับด้านล่าง
รูปที่ 2 - ตัวเลือกเคสคอนโทรลเลอร์ PIC พร้อมข้อสรุปที่จำเป็น
อย่างที่คุณอาจเดาได้เคสนี้ถูกใช้ในโครงร่างของโปรแกรมเมอร์ของฉัน DIP8. ด้วยความปรารถนาอย่างยิ่งคุณสามารถสร้างอะแดปเตอร์อเนกประสงค์สำหรับชิปแต่ละประเภทได้ดังนั้นจึงได้รับโปรแกรมเมอร์สากล แต่เนื่องจากด้วย ตัวควบคุม PIC ฉันไม่ค่อยได้ทำงานนั่นก็เพียงพอแล้วสำหรับฉัน
แม้ว่าวงจรตัวเองค่อนข้างง่ายและไม่ก่อให้เกิดความยากลำบากในการชุมนุม แต่ก็ต้องเคารพ ดังนั้นมันจะดีถ้าทำแผ่นวงจรพิมพ์ออกมา หลังจากจัดการบางอย่างกับโปรแกรม SprintLayouttextolite สว่านและเหล็กเกิดขึ้นที่นี่ (รูปที่ 3)
แม้ว่าวงจรตัวเองค่อนข้างง่ายและไม่ก่อให้เกิดความยากลำบากในการชุมนุม แต่ก็ต้องเคารพ ดังนั้นมันจะดีถ้าทำแผ่นวงจรพิมพ์ออกมา หลังจากจัดการบางอย่างกับโปรแกรม SprintLayouttextolite สว่านและเหล็กเกิดขึ้นที่นี่ (รูปที่ 3)
รูปถ่ายหมายเลข 3 - แผงวงจรโปรแกรมเมอร์
ดาวน์โหลดซอร์ส PCB สำหรับโปรแกรม SprintLayout คุณสามารถไปที่ลิงค์นี้:
หากต้องการคุณสามารถเปลี่ยนเป็นคอนโทรลเลอร์สำหรับประเภท PIC ของคุณได้ สำหรับผู้ที่ตัดสินใจออกจากกระดานไม่เปลี่ยนแปลงฉันกระจายมุมมองจากด้านข้างของชิ้นส่วนเพื่ออำนวยความสะดวกในการติดตั้ง (รูปที่ 4)
หากต้องการคุณสามารถเปลี่ยนเป็นคอนโทรลเลอร์สำหรับประเภท PIC ของคุณได้ สำหรับผู้ที่ตัดสินใจออกจากกระดานไม่เปลี่ยนแปลงฉันกระจายมุมมองจากด้านข้างของชิ้นส่วนเพื่ออำนวยความสะดวกในการติดตั้ง (รูปที่ 4)
รูปที่ 4 - บอร์ดด้านการติดตั้ง
คาถาเพิ่มเติมเล็กน้อยพร้อมหัวแร้งและเรามีอุปกรณ์สำเร็จรูปที่สามารถแฟลชได้ ตัวควบคุม Pic ตลอด พอร์ต COM คอมพิวเตอร์ของคุณ ยังคงอบอุ่นและไม่ล้างออกจากฟลักซ์ผลลัพธ์ของความพยายามของฉันจะแสดงในรูปภาพหมายเลข 5
นับจากนี้ไปก้าวแรกสู่เฟิร์มแวร์ ตัวควบคุม Picมาถึงจุดสิ้นสุด ขั้นตอนที่สองจะรวมถึงการเชื่อมต่อโปรแกรมเมอร์กับคอมพิวเตอร์และทำงานกับโปรแกรม IC Prog.
น่าเสียดายที่คอมพิวเตอร์และแล็ปท็อปสมัยใหม่บางรุ่นไม่สามารถทำงานร่วมกับโปรแกรมเมอร์นี้ได้ พอร์ต COMและสิ่งที่ติดตั้งบนแล็ปท็อปไม่ได้แจกโปรแกรมที่จำเป็น 12B. ดังนั้นฉันจึงตัดสินใจที่จะหันไปหาคนแรกของฉัน พีซีที่นานมาแล้วปัดฝุ่นและรอชั่วโมงที่ดีที่สุดของเขา (และยังคงรอ)
ดังนั้นเปิดคอมพิวเตอร์และติดตั้งโปรแกรมก่อน IC Prog. คุณสามารถดาวน์โหลดได้จากเว็บไซต์ของผู้เขียน หรือที่ลิงค์นี้:
เราเชื่อมต่อโปรแกรมเมอร์ พอร์ต COM และเรียกใช้แอปพลิเคชันที่ติดตั้งใหม่ สำหรับการดำเนินการที่ถูกต้องมีความจำเป็นต้องดำเนินการชุดของการจัดการ เริ่มแรกมีความจำเป็นต้องเลือกชนิดของคอนโทรลเลอร์ที่เราจะทำการเย็บ ฉันมีมัน PIC12F675. ในสกรีนช็อต # 6 ฟิลด์สำหรับการเลือกคอนโทรลเลอร์จะถูกเน้นด้วยสีแดง
น่าเสียดายที่คอมพิวเตอร์และแล็ปท็อปสมัยใหม่บางรุ่นไม่สามารถทำงานร่วมกับโปรแกรมเมอร์นี้ได้ พอร์ต COMและสิ่งที่ติดตั้งบนแล็ปท็อปไม่ได้แจกโปรแกรมที่จำเป็น 12B. ดังนั้นฉันจึงตัดสินใจที่จะหันไปหาคนแรกของฉัน พีซีที่นานมาแล้วปัดฝุ่นและรอชั่วโมงที่ดีที่สุดของเขา (และยังคงรอ)
ดังนั้นเปิดคอมพิวเตอร์และติดตั้งโปรแกรมก่อน IC Prog. คุณสามารถดาวน์โหลดได้จากเว็บไซต์ของผู้เขียน หรือที่ลิงค์นี้:
เราเชื่อมต่อโปรแกรมเมอร์ พอร์ต COM และเรียกใช้แอปพลิเคชันที่ติดตั้งใหม่ สำหรับการดำเนินการที่ถูกต้องมีความจำเป็นต้องดำเนินการชุดของการจัดการ เริ่มแรกมีความจำเป็นต้องเลือกชนิดของคอนโทรลเลอร์ที่เราจะทำการเย็บ ฉันมีมัน PIC12F675. ในสกรีนช็อต # 6 ฟิลด์สำหรับการเลือกคอนโทรลเลอร์จะถูกเน้นด้วยสีแดง
ภาพหน้าจอ 6 - การเลือกประเภทไมโครคอนโทรลเลอร์
ถัดไปไปที่เมนู "การตั้งค่า "->" ตัวเลือก"ในหน้าต่างที่ปรากฏขึ้นให้เลือกแท็บ I2C และทำเครื่องหมายในกล่องตามที่แสดงในภาพหน้าจอ # 7
ภาพหน้าจอ 7 - การตั้งค่าวิธีการบันทึกคอนโทรลเลอร์
ในหน้าต่างเดียวกันไปที่แท็บ "การเขียนโปรแกรม"และเลือก"ตรวจสอบการเขียนโปรแกรม"การตรวจสอบหลังจากการเขียนโปรแกรมอาจทำให้เกิดข้อผิดพลาดเพราะในบางกรณีเฟิร์มแวร์จะติดตั้งล็อคการล็อค CP. เพื่อไม่ให้หลอกตัวเองควรปิดการใช้งานการตรวจสอบนี้ ในระยะสั้นทำตามภาพหน้าจอหมายเลข 8
ภาพหน้าจอหมายเลข 8 - การตั้งค่าการตรวจสอบ
เรายังคงทำงานกับหน้าต่างนี้และไปที่ "ร่วมกัน"ที่นี่มีความจำเป็นต้องกำหนดลำดับความสำคัญของโปรแกรมและตรวจสอบให้แน่ใจว่าได้ใช้ NT / 2000 / XP ไดร์เวอร์ (ภาพหน้าจอหมายเลข 9) ในบางกรณีโปรแกรมอาจแนะนำให้ติดตั้งไดรเวอร์นี้และอาจต้องมีการรีสตาร์ท IC Prog.
ภาพหน้าจอ 9 - การตั้งค่าทั่วไป
ดังนั้นด้วยหน้าต่างนี้งานจึงจบลง ทีนี้มาดูการตั้งค่าของโปรแกรมเมอร์กันดีกว่า เลือกในเมนู "การตั้งค่า "->" การตั้งค่าโปรแกรมเมอร์"หรือเพียงแค่กดปุ่ม F3. หน้าต่างต่อไปนี้จะปรากฏขึ้นซึ่งแสดงในภาพหน้าจอ # 10
ภาพหน้าจอหมายเลข 10 - หน้าต่างการตั้งค่าโปรแกรมเมอร์
ก่อนอื่นให้เลือกประเภทของโปรแกรมเมอร์ - โปรแกรมเมอร์ Jdm. ต่อไปเราจะตั้งปุ่มตัวเลือกสำหรับการใช้ไดรเวอร์ ของ windows. ขั้นตอนต่อไปคือการเลือก พอร์ต COMซึ่งโปรแกรมเมอร์ของคุณเชื่อมต่ออยู่ หากเป็นหนึ่งเดียวไม่มีคำถามเลยและถ้ามีมากกว่าหนึ่งให้ดูในตัวจัดการอุปกรณ์ที่กำลังใช้งานอยู่ แถบเลื่อนการหน่วงเวลาอินพุต / เอาต์พุตถูกออกแบบมาเพื่อควบคุมความเร็วในการเขียนและอ่าน อาจจำเป็นต้องใช้กับคอมพิวเตอร์ที่เร็วและหากมีปัญหากับเฟิร์มแวร์ - พารามิเตอร์นี้จะต้องเพิ่มขึ้น ในกรณีของฉันมันคงเป็นค่าเริ่มต้นเท่ากับ 10 และทุกอย่างทำงานได้ดี
ในการตั้งค่าโปรแกรมนี้ IC Prog สิ้นสุดลงแล้วและคุณสามารถดำเนินการตามกระบวนการของเฟิร์มแวร์ได้ แต่ก่อนอื่นเราจะอ่านข้อมูลจากไมโครคอนโทรลเลอร์และดูสิ่งที่เขียนลงไป ในการทำเช่นนี้บนแถบเครื่องมือคลิกที่ไอคอนของ microcircuit ด้วยลูกศรสีเขียวดังที่แสดงในภาพหน้าจอหมายเลข 11
ในการตั้งค่าโปรแกรมนี้ IC Prog สิ้นสุดลงแล้วและคุณสามารถดำเนินการตามกระบวนการของเฟิร์มแวร์ได้ แต่ก่อนอื่นเราจะอ่านข้อมูลจากไมโครคอนโทรลเลอร์และดูสิ่งที่เขียนลงไป ในการทำเช่นนี้บนแถบเครื่องมือคลิกที่ไอคอนของ microcircuit ด้วยลูกศรสีเขียวดังที่แสดงในภาพหน้าจอหมายเลข 11
ภาพหน้าจอ 11 - กระบวนการอ่านข้อมูลจากไมโครคอนโทรลเลอร์
หากไมโครคอนโทรลเลอร์เป็นของใหม่และยังไม่ได้ถูกกระพริบมาก่อนเซลล์หน่วยความจำทั้งหมดจะถูกเติมด้วยค่า 3FFFยกเว้นอันสุดท้าย มันจะมีค่าของค่าคงที่การสอบเทียบ นี่เป็นค่าที่สำคัญและไม่เหมือนใครสำหรับคอนโทรลเลอร์แต่ละตัว ความแม่นยำของนาฬิกานั้นขึ้นอยู่กับนาฬิกาซึ่งผู้ผลิตเลือกไว้โดยการเลือกและติดตั้งค่าคงที่นี้ สกรีนช็อตหมายเลข 12 แสดงเซลล์หน่วยความจำที่เก็บค่าคงที่เมื่ออ่านตัวควบคุม
ภาพหน้าจอ 12 - ค่าของค่าคงที่การสอบเทียบ
ฉันพูดซ้ำ ๆ ว่าค่านั้นมีความพิเศษสำหรับไมโครวงจรแต่ละตัวและไม่ต้องตรงกับสิ่งที่แสดงในรูป หลายคนที่ขาดประสบการณ์เขียนทับค่าคงที่นี้และต่อมา ตัวควบคุม Pic เริ่มทำงานไม่ถูกต้องหากโครงการใช้การตอกบัตรจากเครื่องกำเนิดภายใน ฉันแนะนำให้คุณเขียนค่าคงที่นี้และติดจารึกที่มีค่าโดยตรงบนตัวควบคุม วิธีนี้คุณจะหลีกเลี่ยงปัญหามากมายในอนาคต ดังนั้นค่าจึงถูกเขียนลง - เราเดินหน้าต่อไป เปิดไฟล์เฟิร์มแวร์ซึ่งมักจะมีนามสกุล .hex. ตอนนี้แทนที่จะเขียน 3FFFบัฟเฟอร์การเขียนโปรแกรมมีรหัสของโปรแกรมของเรา (ภาพหน้าจอหมายเลข 13)
สกรีนช็อต 13 - ดาวน์โหลดเฟิร์มแวร์ไปยังบัฟเฟอร์การโปรแกรม
ฉันเขียนไว้ด้านบนว่ามีหลายคนเขียนทับค่าคงที่การสอบเทียบด้วยความประมาทเลินเล่อ สิ่งนี้จะเกิดขึ้นเมื่อใด สิ่งนี้จะเกิดขึ้นเมื่อเปิดไฟล์เฟิร์มแวร์ ค่าของค่าคงที่จะเปลี่ยนเป็นอัตโนมัติ 3FFF และถ้าคุณเริ่มกระบวนการเขียนโปรแกรมก็จะไม่มีการย้อนกลับ ในสกรีนช็อตหมายเลข 14 เซลล์หน่วยความจำนั้นซึ่งเป็นค่าคงที่ก่อนหน้านี้ 3450 (ก่อนเปิด ไฟล์ฐานสิบหก).
สกรีนช็อตหมายเลข 14 - การเปลี่ยนค่าคงที่การสอบเทียบอัตโนมัติ
ตอนนี้คุณต้องทำตามขั้นตอนด้านล่างอย่างระมัดระวัง เราคลิกที่ไอคอนของ microcircuit ที่มีฟ้าผ่าบนแถบเครื่องมือจึงแจ้งโปรแกรมที่เราต้องการเริ่มต้นกระบวนการเฟิร์มแวร์ โปรแกรมจะถามว่าเราแน่ใจหรือไม่ว่าต้องการแฟลชอุปกรณ์นี้ เราเห็นด้วยและคลิก "ใช่"หลังจากนั้นเราจะได้รับคำเตือนที่แสดงในภาพหน้าจอ # 15
สกรีนช็อตหมายเลข 15 - คำเตือนเกี่ยวกับความคลาดเคลื่อนในค่าของค่าคงที่นาฬิกา
IC Prog บอกเราว่าหนึ่งค่าคงที่การสอบเทียบ (ในกรณีของฉัน 3450) และตอนนี้อีกอัน (3FFF) แทนที่โดยอัตโนมัติจาก ไฟล์ฐานสิบหก. มันยังเสนอให้ออกจากค่าเริ่มต้น 3FFF. การคลิก "เป็นสิ่งสำคัญNO"เพื่อ IC Prog ระหว่างการเขียนโปรแกรมส่งคืนค่าเรา 3450 หรืออะไรจะอยู่กับคุณ โดยทั่วไปให้คลิก "NO"และสังเกตหน้าต่างต่อไปนี้ (ภาพหน้าจอหมายเลข 16)
ภาพหน้าจอ 16 - กระบวนการเขียนโปรแกรม
ในช่วงเวลานี้ฉันแนะนำให้คุณอย่ากดอะไรหรือโหลดคอมพิวเตอร์ด้วยงานอื่น เมื่อฉันถ่ายภาพหน้าจอสำหรับบทความนี้เมื่อฉันคลิกที่ปุ่ม พิมพ์หน้าจอ เกิดข้อผิดพลาดในการเขียนและฉันต้องทำมันอีกครั้ง หลังจากนั้นสักครู่ IC Prog จะให้ข้อความเกี่ยวกับการยืนยันที่สำเร็จของรหัสที่เขียนใหม่ในของคุณ ตัวควบคุม Picดังนั้นทุกคนที่ชอบบทความนี้ฉันต้องการเห็นสิ่งนี้หลังจากความพยายามที่คล้ายกัน (ภาพหน้าจอหมายเลข 17):
สกรีนช็อตหมายเลข 17 - เฟิร์มแวร์ประสบความสำเร็จคุณสามารถผ่อนคลายได้
หากในกระบวนการคุณมีคำถามใด ๆ ให้อ่านบทความใหม่อีกครั้งอย่างระมัดระวังและทุกอย่างจะได้ผล ขอให้โชคดีกับทุกคนและประสบความสำเร็จในการสร้างสรรค์ !!!