
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

การเขียนโปรแกรมไมโครคอนโทรลเลอร์ไม่ใช่เรื่องยาก การสร้างโปรแกรมเมอร์ทำให้โครงการอิเล็กทรอนิกส์เป็นโครงการแรกที่ยอดเยี่ยม เป้าหมายของคำแนะนำนี้คือการอธิบายวิธี 'in circuit serial programming' อย่างง่ายที่ใช้กับ Microchip PIC
ขั้นตอนที่ 1: ทำไมต้อง ICSP

การเขียนโปรแกรมชิป DIP ขนาดใหญ่ (รูทะลุ) เป็นเรื่องง่าย เสียบเข้าไปในโปรแกรมเมอร์ที่เสียบปลั๊กแล้ว เบิร์น แล้วกลับไปที่วงจรแอปพลิเคชัน ทดสอบและทำซ้ำ
สิ่งต่าง ๆ ยากขึ้นด้วยชิปขนาดเล็ก (ยึดพื้นผิว) ไม่มีซ็อกเก็ตมาตรฐานสำหรับ QFN, SSOP, QFP หรือแม้แต่แพ็คเกจ SOIC.300 ขนาดใหญ่ มีคลิปราคาแพงมาก ($100s) ที่สามารถแนบและตั้งโปรแกรมชิปเหล่านี้ได้ ต้องใช้คลิปที่แตกต่างกันสำหรับชิปแต่ละประเภทและจำนวนพินที่คุณใช้ มีทางเลือกอื่น เรียกว่า ICSP ICSP หมายถึง 'ในวงจรโปรแกรมเมอร์แบบอนุกรม (ing?)' เป็นวิธีการเขียนโปรแกรม PIC ขณะที่ยังต่ออยู่กับวงจรแอปพลิเคชัน ถูกต้อง ไม่ต้องเปลี่ยนชิปอีกต่อไป ทำไมต้อง ICSP? 1. ไม่มีซ็อกเก็ตการเขียนโปรแกรมสำหรับชิปแพ็คเกจขนาดเล็ก คลิปมีราคาแพง 2. การย้ายชิปเข้าและออกจากโปรแกรมเมอร์ระหว่างการพัฒนาเป็นเรื่องยุ่งยาก เป็นไปไม่ได้สำหรับชิ้นส่วนยึดพื้นผิว
ขั้นตอนที่ 2: ICSP คืออะไร




จำเป็นต้องมีการเชื่อมต่อห้าจุดเพื่อตั้งโปรแกรม PIC ในขณะที่ต่อกับวงจรแอปพลิเคชัน ฉันเพิ่มส่วนหัว 5 พินให้กับแผงวงจรของฉันเพื่อให้การเชื่อมต่อนี้ทำได้ง่ายและรวดเร็ว พื้นฐานของการเขียนโปรแกรม PIC จำเป็นต้องมีการเชื่อมต่อห้าจุดเพื่อตั้งโปรแกรม PIC กำลังไฟฟ้า กราวด์ แรงดันโปรแกรม นาฬิกา และข้อมูล+ (Vdd)/-(Vss) นี่คือการเชื่อมต่อกำลังและกราวด์ (Vdd, Vss) สวยได้มาตรฐาน หากคุณกำลังใช้โปรแกรมเมอร์ที่มีระดับแรงดันไฟฟ้า 'จริง' (ไม่ใช่ JDM2!) แอปพลิเคชันของคุณสามารถเรียกใช้จากแหล่งจ่ายไฟของตัวเองได้เมื่อตั้งโปรแกรมไว้ ขจัดการเชื่อมต่อเหล่านี้ Vpp นี่คือแรงดันไฟฟ้าในการเขียนโปรแกรม PIC เข้าสู่โหมดการเขียนโปรแกรมเมื่อ ~13 โวลต์ถูกวางบนพิน MCLR/Vpp (โดยปกติคือพิน 1 บน PIC สมัยใหม่ เพิ่มเติมจากด้านล่าง) นาฬิกา/ข้อมูล หรือ PGC/PGD นาฬิกาและสายข้อมูลใช้สำหรับเขียนและอ่าน PIC เฟิร์มแวร์ เหล่านี้มักจะเป็นหมุดเดียวกับ PORTB6 & PORTB7. Exercise: ระบุจุดเชื่อมต่อ ICSP บน PICs ในภาพด้านล่าง หาก PIC พอดี ให้สวมใส่ ฉันได้รับคำถามมากมายเกี่ยวกับการออกแบบ JDM2 ของฉันเกี่ยวกับคำแนะนำ บ่อยที่สุดคือ " มันจะตั้งโปรแกรม PIC X หรือไม่'"' - นี่คือวิธีที่คุณสามารถบอกได้: 1) ดูแผ่นข้อมูล หา 'Pin Diagram' ที่ดูเหมือนภาพด้านล่าง2) ระบุตำแหน่งของพินที่ต้องเชื่อมต่อสำหรับการเขียนโปรแกรม (Vpp, Vdd, Vss, Data, & Clock)3) ดูการเชื่อมต่อซ็อกเก็ตบน โปรแกรมเมอร์ คุณสามารถจับคู่พินที่ต้องการกับซ็อกเก็ตบนโปรแกรมเมอร์ได้หรือไม่?
ขั้นตอนที่ 3: ICSP เป็นอย่างไร




ขึ้นอยู่กับการออกแบบของคุณ ตอนนี้คุณสามารถทำการเชื่อมต่อที่จำเป็นทั้งหมดและตั้งโปรแกรม PIC ของคุณ มีบางสิ่งที่คุณควรรู้เกี่ยวกับ การออกแบบสำหรับ ICSP เป็นสิ่งสำคัญ Microchip มีบันทึกการใช้งาน PDF ที่ดีเกี่ยวกับการออกแบบสำหรับ ICSP https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744ต่อไปนี้คือเคล็ดลับและตัวอย่างการออกแบบ ICSP จากคำแนะนำก่อนหน้าของฉัน เคล็ดลับ #1 ระดับภัยคุกคาม: สำคัญ อย่าเชื่อมต่อสิ่งอื่นใดกับนาฬิกา และหมุด DATA (โดยปกติคือ RB6 & RB7, PGC & PGD) อย่าเพิ่งทำ มีบางสถานการณ์ที่ประเภทวิศวกรรมที่ฉลาดมากจะหลีกเลี่ยงได้ แต่อย่าทำอย่างนั้น ส่วนประกอบที่ติดอยู่กับหมุดจะทำให้นาฬิกาและสัญญาณข้อมูลเอียง ส่งผลให้เกิดการตั้งโปรแกรมที่คาดเดาไม่ได้ นอกจากนี้ หากคุณต้องการใช้ดีบักเกอร์อนุกรมในวงจร ก็ไม่สามารถทำได้ อย่าทำอย่างนั้น เคล็ดลับ #2 ระดับภัยคุกคาม: วัตถุระเบิด ใช้ไดโอดระหว่างแรงดันการเขียนโปรแกรมและแรงดันของระบบเสมอ หากใช้ MCLR (มาสเตอร์เคลียร์) บน PIC คุณต้องระบุแรงดันไฟฟ้าบนพิน MCLR ผ่านตัวต้านทาน 10Kish นี่คือพินที่คุณจะใช้ ~13 โวลต์เพื่อเข้าสู่โหมดการเขียนโปรแกรม ฉันใส่ไดโอด 1n4148 (เทียบเท่า) ระหว่างตัวต้านทานและพิน MCLR/Vpp (ดังแสดงในแผนผังและการเรนเดอร์ด้านล่าง) สิ่งนี้จะช่วยรักษาแรงดันไฟฟ้าในการเขียนโปรแกรมบนพิน Vpp เพื่อป้องกันการทำลายส่วนประกอบอื่นๆ บนบอร์ดของคุณ เคล็ดลับ #3 ระดับภัยคุกคาม: (อีกครั้ง) เหนื่อยแล้ว การเขียนโปรแกรมแรงดันต่ำกำลังฉุดรั้งคุณไว้ มนุษย์ ฉันไม่เคยประสบความสำเร็จกับ LVP มาก่อน ฉันไม่เคยเห็นมันทำงาน (สม่ำเสมอ) ด้วยตาของฉันเอง เพียงแค่กัดสัญลักษณ์แสดงหัวข้อย่อยแล้วใช้จ่าย $2.50 เพื่อสร้างโปรแกรมเมอร์ JDM2
ขั้นตอนที่ 4: โปรแกรมเมอร์ ICSP


ICSP ไม่ต้องการโปรโตคอลการเขียนโปรแกรมอื่น โปรแกรมเมอร์ที่ใช้ซ็อกเก็ตสร้างสัญญาณที่จำเป็นแล้ว แต่ส่งไปที่ซ็อกเก็ตมากกว่าผ่านสาย โปรแกรมเมอร์ซ็อกเก็ตส่วนใหญ่สามารถใช้เป็น ICSP ได้โดยการต่อสายไฟจากซ็อกเก็ตไปยังวงจรแอปพลิเคชัน ตัวอย่างเช่น โปรแกรมเมอร์ JDM2 ดั้งเดิม (ที่นี่: https://www.jdm.homepage.dk/newpic.htm) สามารถใช้เพื่อ ทำการเขียนโปรแกรม ICSP โดยนำสัญญาณที่จำเป็น 5 อันมาไว้ที่ส่วนหัว สามารถเห็นได้ในโปรแกรมเมอร์ที่นี่: https://www.belza.cz/digital/jdm.htm เพื่อให้สะดวกต่อการใช้งาน ฉันได้ปรับปรุงการออกแบบนี้ใหม่ใน Eagle Cad และแนบไปกับคำแนะนำนี้ ดูการวางแนวทรานซิสเตอร์ รอยเท้าข้างใดข้างหนึ่งอาจไม่ถูกต้อง (ฉันทำไว้เมื่อกว่าปีที่แล้ว จำไม่ได้แล้ว) ในทำนองเดียวกัน โปรแกรมเมอร์ JDM2 ที่อัปเดตของฉัน (ที่นี่: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) สามารถใช้สำหรับ ICSP ได้โดยการต่อสายเข้ากับซ็อกเก็ต DIP และเชื่อมต่อกับ PIC เป้าหมาย *****JDM2 ใช้แรงดันไฟฟ้าแบบฟังกี้…เชื่อมต่อกับวงจรโดยไม่ต้องใช้พลังงานภายนอก (หรือแม้แต่กราวด์) ที่เชื่อมต่อกับวงจรแอปพลิเคชัน ถอดการเชื่อมต่อ ICSP ออกก่อนที่จะจ่ายไฟ ความล้มเหลวในการทำเช่นนี้ไม่ได้เป็นอันตราย แต่จะส่งผลให้การเขียนโปรแกรมล้มเหลว ******* อีกตัวเลือกหนึ่งคือโปรแกรมเมอร์ ICD (กึ่ง) ที่เหมาะสม ICD ให้คุณควบคุมการทำงานของเฟิร์มแวร์บน PIC ของคุณโดยการตั้งค่าเบรกพอยต์ในโค้ดหรืออ่านค่าหน่วยความจำและพอร์ต ICD ยังสามารถเคลื่อนไหวการทำงานของโค้ด เพิ่มพลังให้วงจรแอปพลิเคชัน และตั้งโปรแกรม PIC มันทำทั้งหมดนี้ผ่านการเชื่อมต่อ ICSP 5 พินเดียวกันกับที่เราได้พูดคุยกัน สามารถดู ICSP โคลนหลายตัวที่คุณสามารถสร้างเองได้ที่นี่: https://www.icd2clone.com/wiki/Main_Page ฉันสร้าง PicS (rev B) เมื่อไม่กี่เดือนที่ผ่านมาและชอบมันมาก
แนะนำ:
ตัวเชื่อมต่อ ICSP สำหรับ Arduino Nano ที่ไม่มีหัวต่อแบบบัดกรี แต่ Pogo Pin: 7 ขั้นตอน

ตัวเชื่อมต่อ ICSP สำหรับ Arduino Nano ที่ไม่มีส่วนหัวของพินที่บัดกรี แต่ Pogo Pin: สร้างตัวเชื่อมต่อ ICSP สำหรับ Arduino Nano ที่ไม่มีส่วนหัวของพินบัดกรีบนบอร์ด แต่ Pogo Pin ชิ้นส่วน3×2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Female Pin Connector เทอร์มินัลที่อยู่อาศัย x6 - BP75-E2 (หัวทรงกรวย 1.3 มม.) โพรบทดสอบสปริง Pogo Pin
Arduino 3.3V แบบสแตนด์อโลนพร้อมนาฬิกา 8 MHz ภายนอกที่ถูกตั้งโปรแกรมจาก Arduino Uno ผ่าน ICSP / ISP (พร้อมการตรวจสอบแบบอนุกรม!): 4 ขั้นตอน

Arduino 3.3V แบบสแตนด์อโลนพร้อมนาฬิกา 8 MHz ภายนอกที่ถูกตั้งโปรแกรมจาก Arduino Uno ผ่าน ICSP / ISP (พร้อมการตรวจสอบแบบอนุกรม!): วัตถุประสงค์: เพื่อสร้าง Arduino แบบสแตนด์อโลนที่ทำงานบน 3.3V จากนาฬิกาภายนอก 8 MHz ในการตั้งโปรแกรมผ่าน ISP (หรือที่เรียกว่า ICSP, การเขียนโปรแกรมซีเรียลในวงจร) จาก Arduino Uno (ทำงานที่ 5V) ในการแก้ไขไฟล์ bootloader และเบิร์น th
สายเคเบิลการเขียนโปรแกรม Arduino ICSP: 12 ขั้นตอน

สายเคเบิลการเขียนโปรแกรม Arduino ICSP: นี่คือวิธีที่ฉันชอบทำสายการเขียนโปรแกรม Arduino ICSP เพื่อใช้ในการบูตหรือเขียนโปรแกรม
โปรแกรมเมอร์ ISP สำหรับไมโครคอนโทรลเลอร์ AVR: 4 ขั้นตอน

โปรแกรมเมอร์ ISP สำหรับไมโครคอนโทรลเลอร์ AVR: โปรแกรมเมอร์ไมโครคอนโทรลเลอร์เป็นอุปกรณ์ฮาร์ดแวร์ที่มาพร้อมกับซอฟต์แวร์ซึ่งใช้ในการถ่ายโอนรหัสภาษาเครื่องไปยังไมโครคอนโทรลเลอร์/EEPROM จากพีซี โปรแกรมเมอร์ ISP สำหรับไมโครคอนโทรลเลอร์ AVR คือโปรแกรมเมอร์แบบอนุกรมซึ่งใช้ส
Pic 16F676 ซ็อกเก็ตการเขียนโปรแกรม ICSP สำหรับโปรแกรมเมอร์ PICkit 2: 6 ขั้นตอน

Pic 16F676 ซ็อกเก็ตการเขียนโปรแกรม ICSP สำหรับโปรแกรมเมอร์ PICkit 2: ฉันกำลังพยายามสร้างโมดูลมอเตอร์ DC คู่นี้สำหรับโครงการหุ่นยนต์ของฉัน และฉันไม่มีที่ว่างสำหรับวางส่วนหัวของหมุด ICSP บน PCB ดังนั้นฉันจึงล้อเลียนการออกแบบนี้อย่างรวดเร็ว