การดีบัก AVR ในวงจรผ่าน JTAG ICE โปรแกรมเมอร์ JTAG คืออะไร? โปรแกรมเมอร์ USB ซีรีส์ ChipProg สากลทั้งหมดรองรับการเขียนโปรแกรมผ่าน JTAG พร้อมกับรองรับโปรโตคอลอื่นๆ จำนวนมาก

11-10-2019 วันที่อัพเดตโปรแกรมครั้งล่าสุด: 2019-10-11

เจนัสสองหน้า

เราตัดสินใจเรียกโปรแกรมเมอร์คนนี้ว่า " เจนัส".

ทำไมเป็นเช่นนั้น? เพราะในตำนานโรมันเจนัสคือ สองหน้าเทพเจ้าแห่งประตู ทางเข้าและทางออก ตลอดจนจุดเริ่มต้นและจุดสิ้นสุด การเชื่อมต่ออะไร? ทำไมต้องเป็นโปรแกรมเมอร์ ChipStar-Janus ของเรา สองหน้า?

นี่คือเหตุผล:

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

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

สิ่งที่กระตุ้นให้เราพัฒนาโปรแกรมเมอร์คนนี้

มีโปรแกรมเมอร์เฉพาะทางที่เรียบง่ายหลายประเภทที่เหมาะสำหรับ ทำเอง.

ราคาถูกๆก็มีเยอะ โปรแกรมเมอร์ชาวจีนในรูปแบบสำเร็จรูป

มีค่อนข้างน้อย การพัฒนามือสมัครเล่นมักจะมีคุณภาพเหนือกว่าอย่างหลัง

ดูเหมือนว่างานฝีมืออื่นมีประโยชน์อะไร?

เป็นเวลานานแล้วที่เราได้พัฒนา ผลิต และสนับสนุนโปรแกรมเมอร์สากล เพื่อจุดประสงค์หลักเป็นหลัก เรามีประสบการณ์มากมายในการทำงานกับไมโครวงจรที่หลากหลาย เรามักจะได้รับการติดต่อจากผู้ที่รวบรวม "ผลิตภัณฑ์" ที่กล่าวมาข้างต้นแล้วและมักจะซื้อบ่อยครั้ง บ่อยครั้งเป็นไปไม่ได้ที่ผู้เชี่ยวชาญของเราจะดูการออกแบบวงจร การสร้างคุณภาพ และโดยเฉพาะอย่างยิ่งซอฟต์แวร์ของอุปกรณ์เหล่านี้โดยไม่หัวเราะ/น้ำตาไหล/สยองขวัญ (ขีดเส้นใต้ตามความเหมาะสม) ไม่เป็นไรเมื่อโปรแกรมเมอร์มีราคา "สาม kopeck" คุณซื้อมัน ใช้งานได้บ้าง ไม่ทำงาน แต่เงินไม่มาก แต่บ่อยครั้งที่อัตราส่วนราคา/ความสามารถของอุปกรณ์ดังกล่าวทำให้เราประหลาดใจ กล่าวง่ายๆ ฉันอยากจะอุทาน: มันไม่ได้แพงขนาดนั้น!

นอกเหนือจากที่กล่าวมาทั้งหมดแล้ว ยังมีโปรแกรมเมอร์หมวดหมู่พิเศษที่เหมาะสำหรับการผลิตด้วยตนเอง - เหล่านี้คือโปรแกรมเมอร์ (แม่นยำยิ่งขึ้นคือวงจรโปรแกรมเมอร์และซอฟต์แวร์) ที่พัฒนาโดยผู้เชี่ยวชาญจาก บริษัท ที่ผลิตไมโครวงจร (ส่วนใหญ่เป็นไมโครคอนโทรลเลอร์) โปรแกรมเมอร์ดังกล่าวได้รับการออกแบบอย่างมืออาชีพ ไม่มี "ข้อผิดพลาด" ในการออกแบบวงจร รองรับไมโครวงจรที่ประกาศไว้ทั้งหมด แต่มีข้อเสีย "เล็กน้อย" สองประการ: รายการไมโครวงจรที่ตั้งโปรแกรมได้นั้นมี จำกัด มาก (ซึ่งค่อนข้างเข้าใจได้) และซอฟต์แวร์นั้นเรียบง่ายมาก - ไม่มีฟังก์ชั่นที่ไม่จำเป็นตามกฎ - เท่านั้น ลบ, เขียนลงไป, ตรวจสอบ- มักจะทำงานได้ด้วยซ้ำ การอ่านไม่มีไมโครชิป

ดังนั้นโปรแกรมเมอร์ ChipStar-เจนัสในการกำหนดค่าเริ่มต้นจะเป็นโปรแกรมเมอร์ในวงจร ในโหมดนี้รองรับไมโครคอนโทรลเลอร์ รูปและ เอวีอาร์บริษัท ไมโครชิปสถาปัตยกรรมไมโครคอนโทรลเลอร์บางตัว เอ็มซีเอส51,ไมโครคอนโทรลเลอร์จากบริษัท เอสทีไมโครอิเล็กทรอนิกส์และอื่น ๆ อีกมากมายรวมถึงชิปหน่วยความจำแบบอนุกรมพร้อมอินเทอร์เฟซ ไอทูซี(ส่วนใหญ่ ตอนที่ 24- คุณสามารถเชื่อมต่ออะแดปเตอร์ธรรมดาเข้ากับตัวเชื่อมต่อส่วนขยายของโปรแกรมเมอร์ และเริ่มการเขียนโปรแกรมชิปหน่วยความจำ "ในซ็อกเก็ต"

ตอนนี้การเขียนโปรแกรมถูกนำไปใช้ "ในซ็อกเก็ต":

  1. อีพรอม) พร้อมอินเทอร์เฟซ ไอทูซี(ชุด 24xx);
  2. ชิปหน่วยความจำแฟลชแบบอนุกรม (Serial แฟลช) พร้อมอินเทอร์เฟซ เอสพีไอ (เอสพีไอ แฟลช);
  3. ชิปหน่วยความจำแบบอนุกรม (Serial อีพรอม) พร้อมอินเทอร์เฟซ เมกะวัตต์ (ซีรีส์ 93xx);
  4. ไมโครวงจร แฟลช NAND;

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

สามวิธีในการรับโปรแกรมเมอร์ ChipStar-Janus

วิธีที่ 1:
ประกอบโปรแกรมเมอร์ด้วยตัวเองโดยสมบูรณ์

วิธีการนี้เหมาะสำหรับผู้ที่มีเวลา ประสบการณ์ และความปรารถนา แต่มีทรัพยากรทางการเงินจำกัด หรือแค่อยากรู้

อัลกอริทึมของการกระทำ:

วิธีที่ 2:
ประกอบโปรแกรมเมอร์ด้วยตัวเองโดยซื้อแผงวงจรพิมพ์สำเร็จรูปและไมโครคอนโทรลเลอร์เฟิร์มแวร์

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

อัลกอริทึมของการกระทำ:

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

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

พื้นฐานของโปรแกรมเมอร์คือชิป FT2232D เป็นตัวแปลงพอร์ต USB เป็น UART สองพอร์ต ลักษณะเฉพาะคือช่อง A "บน" A สามารถทำงานในโหมด JTAG, SPI และ I 2 C ซึ่งจำเป็นสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์, ชิปหน่วยความจำต่างๆ ฯลฯ

การพัฒนาโปรแกรมเมอร์ USB นี้ดำเนินการบนคอมพิวเตอร์โดยใช้ไลบรารีจากชิป FTDI

อุปกรณ์ใช้พลังงานจากอินเทอร์เฟซ USB หากประกอบอย่างถูกต้อง ไม่จำเป็นต้องกำหนดค่าวงจร การทำงานของอุปกรณ์ขึ้นอยู่กับทักษะของผู้พัฒนาซอฟต์แวร์ ตัวต้านทาน R8, R9, R12, R13, R14, R15, R16 เป็นตัวจำกัดกระแสหากเชื่อมต่อกับอุปกรณ์ไม่ถูกต้อง ดังนั้น ขั้วต่อของอุปกรณ์ที่ตั้งโปรแกรมได้จึงไม่ควรเชื่อมต่อกับองค์ประกอบอื่นในวงจร หรือมีการดึงอัพดังกล่าว ซึ่งจะไม่บิดเบือนตรรกะลอจิกเมื่อสร้างระดับตัวแบ่งแรงดันไฟฟ้า ชิป U1 ใช้เพื่อบันทึกการตั้งค่าผู้ใช้

พิน U2 (ช่อง A):
24 - ADBUS0 - เอาต์พุต - ในโหมด JTAG TCK ในโหมด SPI SK;
23 - ADBUS1 - เอาต์พุต - ในโหมด JTAG TDI ในโหมด SPI DO;
22 - ADBUS2 - อินพุต - ในโหมด JTAG TDO ในโหมด SPI DI;
21 - ADBUS3 - เอาต์พุต - ในโหมด JTAG TMS ในโหมด SPI เป็นสัญญาณเสริม (CS)
20 - ADBUS4 - ในอินพุต/เอาต์พุตโหมด JTAG ในโหมดเอาต์พุตเสริมโหมด SPI พินนี้ใช้เพื่อส่งสัญญาณ RESET ให้กับไมโครคอนโทรลเลอร์
15 - AСBUS0 – อินพุต/เอาท์พุตที่ตั้งโปรแกรมได้อย่างอิสระในทุกโหมด (เป็นทางเลือกที่ใช้จ่ายไฟให้กับอุปกรณ์ที่ตั้งโปรแกรมได้)
13 - AСBUS1 – อินพุต/เอาต์พุตที่ตั้งโปรแกรมได้อย่างอิสระในทุกโหมด

โดยหลักการแล้ว ข้อสรุปเหล่านี้มีประโยชน์หลายอย่าง ลักษณะการทำงานจะถูกกำหนดโดยโหมดที่เลือกเมื่อเปิดพอร์ต

Channel B ใช้เพื่อดีบักอุปกรณ์ที่ตั้งโปรแกรมได้ ในการดำเนินการนี้ คุณเพียงต้องมีพอร์ต UART ที่ไม่ได้ใช้ในไมโครคอนโทรลเลอร์เท่านั้น ต่อไปเป็นเรื่องของเทคโนโลยี ในโปรแกรมไมโครคอนโทรลเลอร์ เราใช้ฟังก์ชันเอาต์พุตที่จัดรูปแบบแล้ว printf() ในตำแหน่งที่ถูกต้อง

40 -BDBUS0 – เอาต์พุต - ในโหมด UART TXD;
39 -BDBUS1 – อินพุต - ในโหมด UART RXD;
28 - BСBUS2 – เอาต์พุต - ในโหมดไฟ LED แสดงสถานะ UART (สว่างขึ้นเมื่อส่งข้อมูลผ่าน USB)
27 - BСBUS3 – เอาต์พุต - ไฟแสดงสถานะ LED ในโหมด UART (สว่างขึ้นเมื่อรับข้อมูลผ่าน USB)

ด้านล่างเป็นแผงวงจรโปรแกรมเมอร์

ปัจจุบัน โปรแกรมเมอร์สากลนี้รองรับไมโครคอนโทรลเลอร์ AVR ผ่านอินเทอร์เฟซ JTAG และ SPI นอกจากนี้ความเร็วของเฟิร์มแวร์ Atmega64 ผ่าน JTAG ไม่เกิน 5 วินาทีผ่าน SPI ไม่เกิน 8 วินาที โดยหลักการแล้ว คุณสามารถแฟลชไมโครคอนโทรลเลอร์ใดๆ ก็ตามที่มีข้อกำหนดสำหรับโปรแกรมเมอร์ได้ ตัวอย่างเช่น ปัจจุบันการพัฒนากำลังดำเนินการเพื่อรองรับไมโครคอนโทรลเลอร์ของ NEC

รูปแบบการทำงานแบ่งออกเป็นสองส่วน: ทางด้านซ้ายเป็นตารางสำหรับการทำงานกับ FLASH (บนสุด) และ EEPROM (ล่าง) ที่นี่คุณสามารถเปิดไฟล์หรือดาวน์โหลดเฟิร์มแวร์จากไมโครคอนโทรลเลอร์ ทำการตรวจสอบ แก้ไขเนื้อหาของเซลล์หน่วยความจำ ทางด้านขวาเป็นช่องข้อความสำหรับการดีบั๊ก ข้อมูลจากช่อง B จะแสดงที่นี่ คุณยังสามารถป้อนข้อความที่จะถูกส่งไปยังพอร์ตที่นั่นได้ (ตามหน้าที่แล้ว นี่คืออะนาล็อกของ HyperTerminal) การพัฒนาดำเนินการบนแพลตฟอร์ม Visual C# สำหรับ Windows นอกจากนี้ยังสามารถพัฒนาเป็นภาษาอื่นได้อีกด้วย โปรแกรมเมอร์สามารถทำงานบน Linux ได้เช่นกัน

หนังสือมือสอง:
1. เอ.วี. Evstigneev “ ไมโครคอนโทรลเลอร์ AVR ของตระกูล Tiny และ Mega จาก ATMEL”, M. Publishing house “ Dodeka-XXI”, 2005
2. บริษัท ฟิวเจอร์ เทคโนโลยี ดีไวเซส อินเตอร์เนชั่นแนล จำกัด “FT2232D Dual USB UART/FIFO I.C” ,เอกสารข้อมูลสินค้า, 2549.
3. บริษัท ฟิวเจอร์ เทคโนโลยี ดีไวเซส อินเตอร์เนชั่นแนล จำกัด “คู่มือการพัฒนาแอปพลิเคชันซอฟต์แวร์ D2XX”, เอกสาร, 2009
4. บริษัท ฟิวเจอร์ เทคโนโลยี ดีไวเซส อินเตอร์เนชั่นแนล จำกัด “คู่มือโปรแกรมเมอร์สำหรับ FTCJTAG DLL ความเร็วสูง”, บันทึกการใช้งาน AN_110, 2009
5. บริษัท ฟิวเจอร์ เทคโนโลยี ดีไวเซส อินเตอร์เนชั่นแนล จำกัด “คู่มือโปรแกรมเมอร์สำหรับ FTCSPI DLL ความเร็วสูง”, บันทึกการใช้งาน AN_111, 2009
6. Andrew Troelsen “C# และแพลตฟอร์ม .NET” M., S-P. ปีเตอร์ 2007.

คุณสามารถดาวน์โหลดแหล่งซอฟต์แวร์และแผงวงจรพิมพ์ได้ในรูปแบบด้านล่าง

Borisov Alexey () Syzran ภูมิภาค Samara

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

การกำหนด พิมพ์ นิกาย ปริมาณ บันทึกร้านค้าสมุดบันทึกของฉัน
ยู1 ชิปAT93C46D-8S1 ไปยังสมุดบันทึก
ยู2 ชิปFT2232D1 ไปยังสมุดบันทึก
วีที1 ทรานซิสเตอร์มอสเฟต

บีเอสเอส84

1 ไปยังสมุดบันทึก
ค1 ตัวเก็บประจุ0.01 µF1 ไปยังสมุดบันทึก
ซี2,ซี3 ตัวเก็บประจุ27 พิโคเอฟ2 ไปยังสมุดบันทึก
C4, C5, C7, C9, C10 ตัวเก็บประจุ0.1 µF5 ไปยังสมุดบันทึก
ค6 ตัวเก็บประจุ0.033 µF1 ไปยังสมุดบันทึก
C8 ตัวเก็บประจุด้วยไฟฟ้า10 µF1 ไปยังสมุดบันทึก
R1 ตัวต้านทาน

2.2 โอห์ม

1 0.05W ไปยังสมุดบันทึก
R2 ตัวต้านทาน

10 kโอห์ม

1 0.05W ไปยังสมุดบันทึก
R3, R4 ตัวต้านทาน

27 โอห์ม

2 0.05W ไปยังสมุดบันทึก
R5 ตัวต้านทาน

470 โอห์ม

1 0.05W ไปยังสมุดบันทึก
R6, R7 ตัวต้านทาน

1.5 โอห์ม

2 0.05W ไปยังสมุดบันทึก
R8-R16 ตัวต้านทาน

เมื่อเร็ว ๆ นี้ไมโครคอนโทรลเลอร์ ARM แพร่หลายทั้งในหมู่นักพัฒนามืออาชีพและวิศวกรอิเล็กทรอนิกส์มือใหม่ การพัฒนาจาก NXP ได้รับความนิยมอย่างมาก บริษัทนี้ผลิตผลิตภัณฑ์หลากหลายประเภท ตั้งแต่ราคาถูกและใช้พลังงานต่ำไปจนถึงประสิทธิภาพสูง โดยรองรับอินเทอร์เฟซ เช่น USB และอีเทอร์เน็ต

ฉันต้องการให้ผู้อ่านสนใจพัฒนาการของฉันซึ่งบางทีฉันใช้เป็นการส่วนตัวบ่อยที่สุด นี่คือโปรแกรมเมอร์ในวงจรธรรมดาที่คุณสามารถทำได้ด้วยมือของคุณเอง โปรแกรมเมอร์ได้รับการออกแบบมาสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ ARM ที่ใช้กันอย่างแพร่หลายจากซีรีย์ NXP, LPC2xxx เหล่านี้คือไมโครคอนโทรลเลอร์ที่มีคอร์ ARM7, Cortex-M0 และ Cortex-M3 นอกจากนี้ยังสามารถใช้ในการเขียนโปรแกรมไมโครคอนโทรลเลอร์ 8 บิตราคาไม่แพงจากซีรีส์ LPC9xx ได้ ยกเว้นไมโครคอนโทรลเลอร์ที่ง่ายที่สุดจากซีรีส์ LPC901
รายละเอียดเพิ่มเติมเกี่ยวกับรายการสามารถพบได้ที่นี่
www.ru.nxp.com/products/microcontrollers
โปรแกรมเมอร์เชื่อมต่อกับพอร์ต USB และไม่ต้องการพลังงานเพิ่มเติม มันถูกประกอบขึ้นด้วยไมโครวงจรเพียงสองตัวและทรานซิสเตอร์หนึ่งตัว
อุปกรณ์นี้สามารถใช้ได้ไม่เพียงแต่สำหรับการเขียนโปรแกรมบอร์ดด้วยไมโครคอนโทรลเลอร์เท่านั้น แต่ยังใช้สำหรับการสื่อสารผ่านพอร์ตอนุกรมจำลองอีกด้วย

ข้าว. 1. แผนภาพวงจรไฟฟ้า ส่วนที่ 1

โปรแกรมเมอร์ประกอบขึ้นบนพื้นฐานของไมโครวงจรจาก FTDI - FT232RL
www.ftdichip.com/Products/ICs/FT232R.htm
เพื่อการเขียนโปรแกรมที่ประสบความสำเร็จ อย่าลืมดาวน์โหลดและติดตั้งไดรเวอร์ชิปที่เหมาะกับระบบปฏิบัติการที่คุณใช้
ค้นหาได้ที่นี่:
www.ftdichip.com/FTDrivers.htm
สามารถเปลี่ยนตัวกรอง L1 ด้วยตัวต้านทานที่มีความต้านทาน 10 ... 22 โอห์ม
สามารถยกเว้น LED VD1, VD3, ความต้านทาน R3, R4 ได้ หากไม่จำเป็นต้องระบุการส่งและรับแพ็กเก็ตข้อมูลผ่าน USB


ข้าว. 2. แผนภาพวงจรไฟฟ้า ตอนที่ 2

สำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ของซีรีส์ LPC2000 จะใช้ตัวเชื่อมต่อ X3 สำหรับการเขียนโปรแกรม LPC900 X1


ข้าว. 3. แผนภาพวงจรไฟฟ้า ตอนที่ 2 สำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ของซีรีส์ LPC2000 เท่านั้น

ไมโครคอนโทรลเลอร์ซีรีส์ LPC900 ไม่ได้ใช้บ่อยนัก หากคุณต้องการตั้งโปรแกรม LPC2000 ARM เท่านั้น ส่วนที่สองของวงจรจะง่ายขึ้นมาก ส่วนที่ง่ายขึ้นจะแสดงในรูปที่ 3


รูปที่ 4. แผนภาพการติดตั้ง


รูปที่ 5 หน้าตาของโปรแกรมเมอร์
LED ทั้ง SMD และเอาท์พุตสามารถใช้เป็น LED ได้
ทรานซิสเตอร์การนำกระแสตรงเกือบทุกตัวที่เหมาะสมสำหรับพินเอาท์จะเหมาะสมในฐานะทรานซิสเตอร์

รายการชิ้นส่วนที่ใช้ แผนภาพวงจร และร่องรอยของบอร์ดในรูปแบบ PCAD 2006 อยู่ในไฟล์เก็บถาวรที่แนบมาด้วย
docs.google.com/open?id=0B8EEcNDjnzhhUUZJbjc2cEx3NHM
การเขียนโปรแกรมสามารถทำได้โดยใช้โปรแกรม Flash Magic ฟรี
www.flashmagictool.com
ฉันจะบอกคุณเพิ่มเติมเกี่ยวกับการเชื่อมต่อไมโครคอนโทรลเลอร์ที่แตกต่างกันกับโปรแกรมเมอร์และกระบวนการของการเขียนโปรแกรมในวงจร

ไมโครคอนโทรลเลอร์ ATmega สามารถแบ่งออกเป็นสองประเภท: ประเภทที่ตั้งโปรแกรมผ่าน ISP เท่านั้น (บัสของ MISO, MOSI, สาย SCK + การควบคุมการรีเซ็ต) และประเภทที่มีอินเทอร์เฟซ JTAG เพิ่มเติม

จากชุดคอนโทรลเลอร์ Arduino ที่ "ได้รับความนิยมอย่างมาก" ATmega อยู่ในหมวดหมู่แรก 8 เอทีเมก้า 168 เอทีเมก้า 328P- แต่ในหมวดที่สองก็มีตัวอย่างหนึ่งเช่นกัน: เอทีเมก้า2560ใช้ใน Arduino/Freeduino MEGA 2560

เจแท็ก- นี่คือกลไกที่ช่วยให้คุณควบคุมคุณภาพของการติดตั้งแผงวงจรพิมพ์ได้โดยอัตโนมัติ: ไม่ว่าจะมีบางอย่างลัดวงจรหรือในทางกลับกันบัดกรีได้ไม่ดีก็ตาม สิ่งที่มีประโยชน์มากในระดับอุตสาหกรรม โดยเฉพาะอย่างยิ่งเมื่อชิปจากบริษัทต่างๆ “มีความสุข” อยู่ร่วมกันบนบอร์ดเดียว (มาตรฐาน IEEE 1149.1 ซึ่งใช้ JTAG นั้นเปิดอยู่) เป็นเรื่องที่สมเหตุสมผลมากขึ้นที่ผู้ผลิตชิปหลายรายได้เพิ่มความสามารถในการตั้งโปรแกรมและแก้ไขข้อบกพร่องของชิปผ่าน JTAG เดียวกัน

เหตุใดจึงจำเป็นต้องมี JTAG ในชีวิตประจำวัน?

อุปกรณ์แบรนด์จาก ATMEL มีราคาสูงมาก (และฉันซื้อมันไปแล้วหลังจากนั้นก็ไม่มีเงินติดลบ):

จะทำอย่างไร? ฉันได้กล่าวไปแล้วว่ามาตรฐานเปิดอยู่ และกระบวนการการเขียนโปรแกรมผ่าน JTAG ได้รับการบันทึกไว้อย่างดี เพียงแค่เปิดเอกสารข้อมูลสำหรับไมโครคอนโทรลเลอร์ ATMEL ที่มีอินเทอร์เฟซ JTAG

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

มีตัวเลือกมากมายบนอินเทอร์เน็ตสำหรับสำเนา AVR JTAG ICE แบบโฮมเมดที่มีตราสินค้า หนึ่งในสิ่งเหล่านี้ที่เรียบง่ายจนถึงจุดที่น่าอับอายอย่างสมบูรณ์สามารถพบได้เช่น สิ่งที่สนุกที่สุดคืออะไร - ทำงานแม้ว่าจะประกอบด้วย MK หนึ่งตัว: ATmega16 ก็ตาม โปรแกรมเมอร์ดั้งเดิมใช้ชิปที่เข้ากันได้กับ ATmega16 อย่างสมบูรณ์ซึ่งทำให้สามารถอัปโหลดเฟิร์มแวร์ที่เป็นกรรมสิทธิ์ลงในโปรแกรมเมอร์แบบโฮมเมดได้ (อย่างไรก็ตามไม่น่าจะมีอันใหม่ปรากฏขึ้นเนื่องจาก AVR JTAG ICE ถูกยกเลิกแล้ว)

ก่อนอื่นคุณต้องได้รับส่วนประกอบหลัก - ไมโครคอนโทรลเลอร์ ATmega16-16PUและควอตซ์ 7.3728 MHz จากนั้นประกอบวงจรขั้นต่ำสำหรับการเขียนโปรแกรมบนเขียงหั่นขนม:

โครงการ - คลาสสิคจำเป็นต้องเรียกใช้ ATmega ฉันขอเตือนคุณถึงสิ่งที่มักจะทำในกรณีนี้:

  • เชื่อมต่อพลังงาน - GND และ VCC ทั้งหมด (โดยปกติจะมีพิน GND อย่างน้อยสองตัว)
  • วางตัวเก็บประจุกรองเสียงรบกวน 100 nF (หรือ 0.1 µF - แล้วแต่คุณต้องการ) ระหว่าง GND และ VCC ใกล้กับขา ATmega
  • เชื่อมต่อควอตซ์ระหว่าง XTAL1 และ XTAL2 และเชื่อมต่อผ่านสองอัน เหมือนกัน ตัวเก็บประจุถึงกราวด์ (ช่วงของค่าระบุไว้ในเอกสารประกอบไม่จำเป็นต้องใช้ 22 พิโคเอฟเป็นไปได้ เช่น 33 พิโคเอฟ);
  • ดึงสายรีเซ็ตไปที่ VCC ผ่านตัวต้านทาน 10กและแขวนคาปาซิเตอร์ 100 nFลงกราวด์เพื่อให้เกิดความล่าช้าเล็กน้อยกับสายรีเซ็ตหลังจากจ่ายไฟ
มันจะมีลักษณะดังนี้ (ทุกอย่างลงตัวบนเขียงหั่นขนมขนาด 300+100):

เราเชื่อมต่อวงจรผ่านปลั๊ก ISP เข้ากับโปรแกรมเมอร์และจ่ายไฟจากนั้นจึงแฟลชเฟิร์มแวร์และตั้งค่าบิตฟิวส์:

avrdude -C avrdude.conf -c usbasp -p m16 -U hfuse:w:0x1f:m -U lfuse:w:0xcf:m

avrdude -C avrdude.conf -c usbasp -p m16 -U แฟลช:w:miniICE.hex

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

บนเค้าโครงดูเหมือนว่านี้:

คุณอาจสังเกตเห็นว่าในวงจรฉันใช้ชิปพอร์ตอนุกรม USB - FT232RL สะดวกกว่าพอร์ต COM มากด้วยเหตุผลหลายประการ แต่คุณไม่สามารถเสียบ SSOP เข้ากับเขียงหั่นขนมได้ ดังนั้นฉันจึงใช้อะแดปเตอร์ที่ผลิตเอง:

ในเวอร์ชันคลาสสิก มีบรรทัด JTAG มากกว่าในไดอะแกรมเล็กน้อย:

สัญญาณบังคับคือ TCK, TDO, TDI และ TMS (นาฬิกา, เอาต์พุตข้อมูล, อินพุตข้อมูล และการควบคุมโหมดทดสอบ)

NSRST และ NTRST ถูกรีเซ็ตการควบคุมบนบัส JTAG ในกรณีของเรา ไม่จำเป็น เนื่องจากการรีเซ็ต MC สามารถเริ่มต้นได้โดยลำดับคำสั่งบนบรรทัดสัญญาณบังคับ

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

จากบรรทัดบังคับ วีเทรฟจะต้องจ่ายแรงดันไฟฟ้าให้กับอุปกรณ์ ตามทฤษฎีแล้ว จำเป็นต้องใช้ชิปคอนเวอร์เตอร์ระดับข้างต้นภายในโปรแกรมเมอร์ แต่หาก JTAG ICE มีแผนจะขับเคลื่อนจากเป้าหมายแล้ววางสาย วีซัพพลาย- เพื่อความง่ายสามารถนำมารวมกันได้ แต่ไม่จำเป็น

ขึ้นอยู่กับตำแหน่งของจัมเปอร์ SV2 ในวงจร ATmega16 โดยจะจ่ายไฟจาก USB หรือจากเป้าหมาย ฉันขี้เกียจเกินไปที่จะติดตั้งจัมเปอร์สวิตชิ่งบนเขียงหั่นขนม เพราะควรจะจ่ายไฟจากเป้าหมายเท่านั้น แต่ก่อนที่จะเปิดเครื่อง ฉันตรวจสอบสามครั้งแล้ว ไม่ได้จ่ายไฟจาก USB - เพื่อความน่าเชื่อถือบนบอร์ด USB-TTL จัมเปอร์แหล่งจ่ายไฟเปิดอยู่ติดต่อต่อไป M8RXเชื่อมต่อกับขา MK RX, M8TX- จากเท็กซัส

เราเชื่อมต่อกับโปรแกรมเมอร์ผ่าน AVR Studio และหากทุกอย่างเชื่อมต่ออย่างถูกต้อง เราก็จะสามารถอ่านลายเซ็นและเฟิร์มแวร์ได้

(ทีหลังมาดูเครื่องทางขวาแน่นอนครับ ตอนนี้บอกได้คำเดียวว่า มี ATmega128 อยู่ข้างใน)

ข้อเสียเพียงอย่างเดียวของโคลน AVR JTAG ICE คือรายการ MK ที่รองรับค่อนข้างน้อย:

  • เอทีเมก้า128
  • ATmega128A
  • เอทีเมก้า16
  • เอทีเมก้า162
  • เอทีเมก้า165
  • เอทีเมก้า169
  • ATmega16A
  • เอทีเมก้า32
  • ATmega323
  • ATmega32A
  • ATmega64
  • ATmega64A
พวกเขายังบอกด้วยว่ารองรับ AT90CAN128 แต่ไม่มีวิธีตรวจสอบสิ่งนี้ :(

ฉันพบรูปถ่ายในที่เก็บถาวรของฉันซึ่งแสดงกระบวนการผลิตของโปรแกรมเมอร์ JTAG ที่ฉันต้องการในการฟื้นฟูเครื่องรับสัญญาณดาวเทียม ตอนนี้รายละเอียดเพิ่มเติมเล็กน้อยเกี่ยวกับ JTAG "สัตว์ร้าย" ประเภทใด:

เจแท็ก(ย่อมาจากภาษาอังกฤษ) กลุ่มปฏิบัติการทดสอบร่วม- ออกเสียงว่า "jay-tag") เป็นชื่อของคณะทำงานเพื่อการพัฒนามาตรฐาน IEEE 1149 ต่อมาตัวย่อนี้มีความเกี่ยวข้องอย่างแน่นแฟ้นกับอินเทอร์เฟซฮาร์ดแวร์เฉพาะที่พัฒนาโดยกลุ่มนี้ตามมาตรฐาน IEEE 1149.1 ชื่ออย่างเป็นทางการของมาตรฐาน พอร์ตการเข้าถึงการทดสอบมาตรฐานและสถาปัตยกรรมการสแกนขอบเขต- อินเทอร์เฟซได้รับการออกแบบมาเพื่อเชื่อมต่อวงจรดิจิทัลที่ซับซ้อนหรืออุปกรณ์ระดับ PCB กับอุปกรณ์ทดสอบและดีบักมาตรฐาน สำหรับผู้ที่สนใจดูบทความเต็มได้ที่วิกิพีเดีย

ตอนนี้กลับมาที่ธุรกิจกันดีกว่าเพื่อนของฉันให้เครื่องรับสัญญาณดาวเทียมแก่ฉันซึ่งเป็น Globo ที่ใช้กันทั่วไปและเรียบง่ายที่สุดในโปรเซสเซอร์ Ali M3329B ด้วยอาการดังกล่าวมันไม่ได้เปิดเลยในตอนแรกฉันตำหนิแหล่งจ่ายไฟ แต่หลังจากตรวจสอบแรงดันไฟฟ้าทั้งหมดด้วยมัลติมิเตอร์แล้วปรากฎว่าทุกอย่างเรียบร้อยดีกับแหล่งจ่ายไฟ หลังจากศึกษาบทความต่างๆ เกี่ยวกับการซ่อมเครื่องรับเหล่านี้แล้ว ฉันก็ได้ข้อสรุปว่าเมื่อพิจารณาจากอาการแล้ว เฟิร์มแวร์ก็หายไปโดยสิ้นเชิง และสามารถกู้คืนได้ด้วยการแฟลชผ่านโปรแกรมเมอร์ JTAG นอกจากนี้ยังมีความคิดที่ว่ามันถูกไฟไหม้จนหมดและไม่สามารถกู้คืนได้ แต่ฉันก็ยังอยากจะเชื่อว่าเฟิร์มแวร์ผ่าน JTAG จะช่วยได้

สำหรับการผลิตฉันเลือกรูปแบบนี้:

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

74HC244 ไม่ใช่บัฟเฟอร์แบบกลับด้าน ชิปประกอบด้วยบัฟเฟอร์สี่บิตอิสระสองตัว บัฟเฟอร์แต่ละตัวมีสัญญาณเปิดใช้งานเอาต์พุตของตัวเอง (แอ็คทีฟต่ำ) ไม่มีทริกเกอร์ Schmitt ที่อินพุต ไมโครวงจรถูกสร้างขึ้นโดยใช้เทคโนโลยี CMOS "เร็ว" ซึ่งช่วยให้มั่นใจได้ถึงประสิทธิภาพสูง เอาต์พุตกระแสไฟอันทรงพลังทำให้สามารถรักษาประสิทธิภาพสูงได้แม้จะมีโหลดแบบคาปาซิทีฟก็ตาม ประสิทธิภาพของ 74HC244 เทียบได้กับชิปที่ใช้ไดโอด Schottky ในขณะที่ 74HC244 ยังคงข้อดีของชิป CMOS ไว้ นั่นคือ ภูมิคุ้มกันเสียงสูงและการใช้พลังงานต่ำ อินพุตของวงจรไมโครได้รับการปกป้องจากความเสียหายจากไฟฟ้าสถิตย์โดยใช้ไดโอด

อนิจจา ฉันไม่พบ 74HC244 ในอุปกรณ์ของฉัน ฉันพบเพียงอะนาล็อกของ 74F244 ซึ่งแตกต่างกันเล็กน้อยในแรงดันไฟฟ้า Vcc 74HC244 มีแรงดันไฟฟ้าที่แนะนำอยู่ที่ 2 ถึง 6 V และ 74F244 มีแรงดันไฟฟ้าที่แนะนำอยู่ที่ 4.5 ถึง 5.5 V แม้ว่าขีดจำกัดสูงสุดจะอยู่ระหว่าง -0.5 ถึง +7 V ฉันจึงตัดสินใจที่จะไม่กังวลและเริ่มการผลิต

จากแผนภาพต้นฉบับในภาพแรกแล้ววาดใหม่ในโปรแกรม DipTrace เราได้แผนภาพนี้:

ทุกอย่างถูกติดตามโดยอัตโนมัติ มีเพียงบรรทัดเดียวเท่านั้นที่ไม่ได้ถูกติดตาม แต่ปัญหานี้ได้รับการแก้ไขด้วยจัมเปอร์ SMD สองตัว ภาพด้านบนเป็นแผงวงจรพิมพ์ที่พร้อมสำหรับการผลิต

บนกระดานฉันยังเซ็นชื่อพินทั้งหมดด้วย แต่น่าเสียดายที่ฉันเซ็นชื่อสัญญาณเอาท์พุตไม่ถูกต้องดังที่เห็นในแหล่งดั้งเดิม 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI และ 6- RST แต่ฉันได้รับ GND, TMS, TCK, TDI, TDO และ RST ฉันทำผิดพลาดเมื่อลงนามในผู้ติดต่อตามแผนภาพทุกอย่างถูกต้องตามแหล่งที่มาดั้งเดิมเช่น 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI และ 6- RST.

PCB ที่มีการกำหนดพินที่ถูกต้อง:

จริงๆแล้วสิ่งสำคัญคือ getinax ตะไบ เลื่อยมือเล็ก กระดาษทราย ไขควงและคัตเตอร์สำหรับแยก getinax ออกเป็น 2 ส่วนเนื่องจากชิ้นส่วนของฉันเคลือบด้วยฟอยล์ทั้งสองด้านและกระดานของเราเรียบง่ายด้านเดียว

หลังจากทำงานทั้งหมดเสร็จแล้ว โดยเปลี่ยน getinax ให้เป็นขนาดของกระดาน (ประมาณ 55x50 มม.) เราจึงนำสารทำความสะอาด COMET มาเป็นผงและฟองน้ำล้างจาน เราทำความสะอาด getinax จากร่องรอยของไขมันและสิ่งสกปรก เป็นการดีกว่าที่จะไม่เช็ดน้ำที่เหลืออยู่ แต่ปล่อยให้แห้ง

ในขณะที่ getinax แห้งเราไปที่คอมพิวเตอร์แล้วพิมพ์ไดอะแกรมของเราบนเครื่องพิมพ์เลเซอร์และกระดาษภาพถ่ายในรูปสะท้อนสะท้อนเพื่อระบุคุณภาพการพิมพ์สูงสุด สิ่งสำคัญคืออย่าลืมตั้งค่าภาพสะท้อน ไม่เช่นนั้นเราจะได้ทุกอย่างบนกระดานกลับด้าน!

ดังนั้น getinax ก็พร้อมแล้วแผงวงจรพิมพ์ถูกพิมพ์โดยปรับขอบของ getinax ให้เข้ากับการออกแบบของแผงวงจรพิมพ์บนกระดาษภาพถ่ายอย่างระมัดระวังติดเข้ากับ getinax ด้วยเทปกาวกระดาษเอาเหล็กแล้วตั้งไว้ จนถึงอุณหภูมิสูงสุด

โดยธรรมชาติแล้วด้านฟอยล์ของ getinaks จะเป็นลวดลายของแผงวงจรพิมพ์

เมื่อเตารีดร้อนขึ้นโดยกดให้แน่นเราก็เริ่มรีด - ให้ความร้อน getinaks จากด้านกระดาษอย่างสม่ำเสมอ เราให้ความร้อนบอร์ดขนาดนี้ไม่เกิน 30-60 วินาที มิฉะนั้นผงหมึกจะกระจายตัว ฉันแนะนำให้ตั้งเวลาบนโทรศัพท์เพื่อให้เวลาอยู่ใกล้ต่อหน้าต่อตาคุณ เมื่อทุกอย่างเสร็จสิ้น ปล่อยให้บอร์ดเย็นลง

เราฉีกกระดาษภาพถ่ายออกจากกระดานด้านหน้าของเราเป็นบอร์ดสำเร็จรูปซึ่งยังคงถูกแกะสลักในเฟอร์ริกคลอไรด์ FeCl₃ หากมีข้อบกพร่องเล็กน้อยก่อนที่จะแกะสลักเราจะแก้ไขแทร็กด้วยมีดผ่าตัดและเครื่องหมายบาง ๆ สำหรับ ดิสก์

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

เป็นผลให้เราได้แผงวงจรพิมพ์นี้

นอกจากนี้เรายังทำความสะอาดผงหมึกด้วยผง Comet ซึ่งยึดเกาะได้ค่อนข้างดี และเพื่อไม่ให้รางกระดานเสียหาย เราจึงทำความสะอาดอย่างช้าๆ

หลังจากทำความสะอาดผงหมึกแล้ว เราจะเห็นแผงวงจรพิมพ์ที่สวยงามและเรียบร้อย


ตอนนี้เรามาเริ่มการบัดกรีองค์ประกอบกัน: