สารบัญ:

ระบบการพัฒนา Ghetto Programmable Logic (CPLD): 13 ขั้นตอน
ระบบการพัฒนา Ghetto Programmable Logic (CPLD): 13 ขั้นตอน

วีดีโอ: ระบบการพัฒนา Ghetto Programmable Logic (CPLD): 13 ขั้นตอน

วีดีโอ: ระบบการพัฒนา Ghetto Programmable Logic (CPLD): 13 ขั้นตอน
วีดีโอ: EP.1 ทำความรู้จักกับ PLC เบื้องต้น 2024, พฤศจิกายน
Anonim
Ghetto Programmable Logic (CPLD) ระบบการพัฒนา
Ghetto Programmable Logic (CPLD) ระบบการพัฒนา

ในช่วงหลายเดือนที่ผ่านมา ฉันได้เพลิดเพลินกับ Ghetto Development System สำหรับโปรเซสเซอร์ AVR อันที่จริง เครื่องมือที่เกือบเป็นศูนย์นี้ได้พิสูจน์แล้วว่าน่าสนใจและมีประโยชน์จนทำให้ฉันสงสัยว่าจะขยายแนวคิดไปสู่การพัฒนา FPGA/CPLD ได้เช่นกันหรือไม่ (FPGA: Field Programmable Gate Array. CPLD: Complex Programmable Logic Device.) ดังนั้นฉันจึงขุดค้นเว็บเล็กน้อยและได้คิดค้นระบบการพัฒนาสำหรับ Atmel CPLDs การเปรียบเทียบกับอุปกรณ์ Altera แสดงว่าพินเอาต์เหมือนกัน (ภายในข้อจำกัดที่ฉันให้รายละเอียดด้านล่าง) ดังนั้นพวกมันก็จะใช้งานได้เช่นกัน โดยการสร้างบอร์ดพัฒนาและสายเคเบิลอินเทอร์เฟซ ฉันจะนำเสนอ จากนั้นดาวน์โหลดเครื่องมือ คุณสามารถพัฒนาแอปพลิเคชัน CPLD ของคุณเองได้ โปรดทราบข้อจำกัดและข้อจำกัดต่อไปนี้ ฉันได้พยายามสร้างสมดุลระหว่างความสามารถและความเรียบง่าย เพื่อให้คุณสามารถสร้างสิ่งที่คุณจะเพลิดเพลินและเรียนรู้จากอุปกรณ์ 5V เท่านั้น การขยายระบบเพื่อให้ครอบคลุมแรงดันไฟฟ้าเพิ่มเติม (อุปกรณ์ Atmel ในตระกูลเดียวกันรองรับ 3.3V, 2.5V, 1.8V) ไม่ใช่เรื่องยาก แต่มันซับซ้อนทั้งบอร์ดพัฒนาและสายการเขียนโปรแกรม ข้ามไปก่อนเลย โปรดทราบว่าคุณต้องจัดหาแหล่งจ่ายไฟ 5V ให้กับบอร์ด PLCC 44 พินเท่านั้น ฉันได้ตั้งโปรแกรม Atmel ATF1504AS โดยเฉพาะ แนวคิด Ghetto CPLD สามารถขยายไปยังอุปกรณ์ Atmel อื่น ๆ ได้อย่างง่ายดาย แต่อุปกรณ์นี้ดูเหมือนจะเป็นการประนีประนอมที่ดีระหว่างราคา ความสะดวกในการใช้งาน และความสามารถ แนวคิดนี้ควรขยายไปยังอุปกรณ์อื่นๆ เช่น อุปกรณ์จาก Altera, Xilinx, Actel เป็นต้น อันที่จริง ตระกูล Max7000 EPM7032 และ EPM7064 จะทำงานในซ็อกเก็ตเดียวกัน ตราบใดที่คุณใช้เวอร์ชัน PLCC 44 พิน จนถึงตอนนี้ฉันใช้เฉพาะสายการเขียนโปรแกรม Atmel แต่ซอฟต์แวร์ Atmel รองรับ Altera Byte-Blaster และควรทำงานได้ดี เป็นการออกแบบที่เรียบง่ายกว่าสาย Atmel เล็กน้อย (ฉันสร้างเวอร์ชัน Atmel และใช้งานได้ ดังนั้นฉันจึงไม่ได้ลองใช้เวอร์ชัน Altera) SparkFun เสนอสายเคเบิล Altera รุ่นราคา 15 เหรียญ เนื่องจากวิธีนี้ใช้ได้กับทั้ง Atmel และ Altera ฉันจึงแนะนำ หากคุณกำลังจะพัฒนาด้วยชิ้นส่วน Altera คุณจะต้องการซอฟต์แวร์ Altera ด้วย ฉันไม่ได้ลองสิ่งนี้จริงๆ แต่ก็ไม่มีเหตุผลใดที่ฉันจะคิดว่ามันใช้ไม่ได้ ความเร็วมีจำกัด เนื่องจากระบบการพัฒนา Ghetto CPLD สร้างขึ้นด้วยการเดินสายด้วยมือและไม่มีระนาบกราวด์ อย่าคาดหวังการทำงานที่เชื่อถือได้ด้วยความเร็วที่เกินสองสามเมกะเฮิรตซ์ แม้จะไม่ได้รับประกันว่าระยะทางของคุณอาจแตกต่างกันไป! แน่นอน หากคุณสร้างฮาร์ดแวร์ต้นแบบที่มีระนาบพื้น CPLD ของคุณอาจทำงานได้ดีที่ความเร็วสูงกว่า อย่าคาดหวังว่ามันจะติดตั้งได้อย่างรวดเร็วในระบบการพัฒนาสลัม

ขั้นตอนที่ 1: ไปสั่งซื้ออะไหล่

ไปสั่งอะไหล่
ไปสั่งอะไหล่

คุณจะต้องมีซ็อกเก็ต plcc 44 พิน, แคปแยกบางส่วน, CPLD ที่ไม่ได้ตั้งโปรแกรมไว้, ซ็อกเก็ตสำหรับการเชื่อมต่อเขียงหั่นขนม, ตัวต้านทานแบบดึงขึ้นและอาจมีบอร์ดที่สมบูรณ์แบบเพื่อสร้างมันขึ้นมา หากคุณมีสิ่งนี้ในกล่องขยะของคุณ คุณสามารถประหยัดเงินได้เล็กน้อย เพื่อความสะดวกของคุณ นี่คือหมายเลขชิ้นส่วน Digikey:CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3" PN: 3M5462-ND จำนวน: 2SOCKET IC OPEN FRAME 18POS.3" PN: 3M5464-ND จำนวน: 2CAP ELECT 10UF 50V SU BI-POLAR PN: P1280-ND จำนวน: 1, C1CAP CER.10UF 50V 20% DISC RAD PN: 478 -4275-1-ND จำนวน: 4, C2-C5RES ฟิล์มโลหะ 5.10K OHM 1/4W 1% PN: P5.10KCACT-ND PC BOARD FR4 1-SIDE PPH 4.0X4.0 PN: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND ชิ้นส่วนบางชิ้นอาจมีปริมาณขั้นต่ำ แต่ก็ยังค่อนข้างถูก หากคุณต้องการสร้างไฟกระพริบ (ขั้นตอนที่ 8) หรือสร้างชุดสวิตช์ (ขั้นตอนที่ 9) คุณอาจต้องการสั่งซื้อ เหล่านี้ด้วย โปรดทราบว่า Digikey มีเงินขั้นต่ำ 25 ดอลลาร์เพื่อหลีกเลี่ยงค่าธรรมเนียมการจัดการ ดังนั้นคุณอาจต้องการรับ CPLD ที่ไม่ได้ตั้งโปรแกรมเพิ่มเติมสองสามตัวหรือโปรเซสเซอร์ AVR หรือสองตัวเพื่อความสนุกสนาน เราขอแนะนำให้คุณซื้อสายการเขียนโปรแกรม Altera จาก SparkFun นี่คือหมายเลขชิ้นส่วน รับสายเคเบิลและขั้วต่อด้วย (มิฉะนั้น สั่งซื้อชิ้นส่วนสำหรับสายเคเบิลจาก Digikey หากคุณกำลังสร้างของคุณเอง)โปรแกรมเมอร์ที่เข้ากันได้ Altera FPGA PN: PGM-087052x5 Pin IDC Ribbon Cable PN: PRT-085352x5 Pin Shrouded Header PN: PRT-08506

ขั้นตอนที่ 2: รับและติดตั้งซอฟต์แวร์

รับและติดตั้งซอฟต์แวร์
รับและติดตั้งซอฟต์แวร์

ฉันกำลังใช้ห่วงโซ่เครื่องมือ Atmel Prochip Designer 5.0 เครื่องมือนี้กำหนดให้คุณลงทะเบียนกับ Atmel และกรอกแบบฟอร์มคำขออย่างเป็นทางการ ฉันบอกพวกเขาว่าฉันเป็นวิศวกรออกแบบ ซึ่งขณะนี้ว่างงาน และจุดประสงค์หลักของฉันคือการเรียนรู้อุปกรณ์และ VHDL ของพวกเขา (จริงทั้งหมด BTW) พวกเขาอนุมัติคำขอใบอนุญาต สิ่งเดียวที่จับได้คือใบอนุญาตนั้นดีเพียง 6 เดือนเท่านั้น ฉันหวังว่าจะพบห่วงโซ่เครื่องมือสาธารณสมบัติเมื่อถึงเวลาหมดอายุ Altera ยังมีห่วงโซ่เครื่องมือที่ฉันอาจลองดู ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชม ดูความคิดเห็นและลิงก์ในขั้นตอนสุดท้าย Atmel Prochip Designer 5.0 อยู่ที่นี่ หากคุณได้รับมัน อย่าลืมรับ Service Pack 1 ด้วย

ขั้นตอนที่ 3: สร้างสายการเขียนโปรแกรม

ทำสายการเขียนโปรแกรม
ทำสายการเขียนโปรแกรม

วิธีที่ง่ายที่สุดคือการซื้อ Altera Byte-Blaster ที่ทำงานเหมือนกันจาก Sparkfun (ดูขั้นตอนที่ 1) หากมากกว่าที่คุณต้องการจ่าย $ 15 คุณสามารถใช้แผนผัง SparkFun Altera Cable หรือใช้แผนผัง Atmel Cable และสร้างรอยขีดข่วนได้ (หากมีความสนใจในการสร้างสายเคเบิลเป็นจำนวนมาก ฉันสามารถเสนอคำแนะนำบางอย่างได้ แต่ชุด Sparkfun ดูเหมือนจะเป็นคำตอบที่ถูกต้องสำหรับฉัน)

ขั้นตอนที่ 4: สร้างโปรแกรมเมอร์ Cradle

ทำให้โปรแกรมเมอร์ Cradle
ทำให้โปรแกรมเมอร์ Cradle
ทำให้โปรแกรมเมอร์ Cradle
ทำให้โปรแกรมเมอร์ Cradle
ทำให้โปรแกรมเมอร์ Cradle
ทำให้โปรแกรมเมอร์ Cradle

ดูที่โปรแกรมเมอร์ Atmel วิธีนี้มีความยืดหยุ่นสูงและเป็นตัวเลือกที่ยอดเยี่ยมหากคุณมีเหรียญและวางแผนที่จะพัฒนา CPLD เป็นจำนวนมาก ฉันเชื่อว่า Altera เสนอสิ่งที่คล้ายกัน แต่ฉันใช้วิธีการที่ถูกกว่า - นั่นคือทั้งหมดที่เกี่ยวกับ! รูปภาพแสดงมุมมองด้านหน้าและด้านหลังของเปลที่ฉันสร้าง สังเกตซ็อกเก็ต DIP ที่ใช้เป็นตัวเชื่อมต่อเขียงหั่นขนม หมุดทั้งหมดที่ด้านหนึ่งของขั้วต่อแต่ละตัวเชื่อมต่อกับกราวด์ หมุดอีกด้านหนึ่งเชื่อมต่อกับหมุดสัญญาณบน CPLD ฉันได้รวมการเชื่อมต่อสายไฟไว้ด้วย ใส่สิ่งเหล่านี้ในที่ที่พวกเขาพอดี ไดอะแกรมเป็นแผนผังแบบรูปภาพ ไม่แสดงเฉพาะการเชื่อมต่อพลังงานพิเศษ ดูภาพสำหรับแนวคิดเหล่านี้

ขั้นตอนที่ 5: การสร้างเปล - ตอนที่ 1

การสร้างเปล - ตอนที่ 1
การสร้างเปล - ตอนที่ 1
การสร้างเปล - ตอนที่ 1
การสร้างเปล - ตอนที่ 1

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

ขั้นตอนที่ 6: การสร้าง Cradle - ตอนที่ 2

การสร้างเปล - ตอนที่ 2
การสร้างเปล - ตอนที่ 2
การสร้างเปล - ตอนที่ 2
การสร้างเปล - ตอนที่ 2

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

ขั้นตอนที่ 7: การสร้าง Cradle - บทสรุป

การสร้างเปล - บทสรุป
การสร้างเปล - บทสรุป
การสร้างเปล - บทสรุป
การสร้างเปล - บทสรุป
การสร้างเปล - บทสรุป
การสร้างเปล - บทสรุป

กำหนดเส้นทางการเชื่อมต่อ JTAG ไปยังพินที่ถูกต้อง ดูที่ Programming Cable ของคุณเพื่อให้แน่ใจว่าตัวเชื่อมต่ออยู่ในตำแหน่งที่ถูกต้อง อย่าลืมดึงขึ้นบนพิน TDO ซึ่งแสดงในรูปภาพเท่านั้นและอยู่ระหว่างพิน TDO และ Vcc ขั้นตอนสุดท้ายคือการเชื่อมต่อพิน I/O แต่ละตัวของ CPLD เข้ากับพินบนซ็อกเก็ต ใช้ตัวเลขในไดอะแกรมสำหรับการเชื่อมต่อ ใช้เวลานานที่สุด! หากคุณทำตามแบบแผนลำดับเลขของฉัน คุณสามารถใช้ไดอะแกรมมุมมองด้านบนเป็นแนวทางในการเชื่อมต่อวงจรของคุณ คุณไม่จำเป็นต้องเชื่อมต่อทั้งหมดนี้ในตอนแรก คุณสามารถรอจนกว่าคุณจะต้องการสำหรับวงจรที่คุณออกแบบ ตรวจสอบงานของคุณอย่างระมัดระวัง ตรวจสอบให้แน่ใจว่ากำลังและพื้นไม่ลัดวงจร!

ขั้นตอนที่ 8: สร้าง Blinkenlights (เวอร์ชัน TTL)

ทำไฟกะพริบ (เวอร์ชัน TTL)
ทำไฟกะพริบ (เวอร์ชัน TTL)

คุณจะต้องการเห็นวงจรของคุณทำงานแน่นอน ดังนั้นคุณจะต้องมีไฟกระพริบ (สร้างชื่อเสียงโดย The Real Elliot) สิ่งเดียวที่จับได้คือ CPLD ไม่มีเอาต์พุตที่หนักหน่วงที่โปรเซสเซอร์ AVR มี ใช้ไฟ LED ที่ได้รับการจัดอันดับสำหรับ 10ma และใช้ตัวต้านทานซีรีย์ 1KOhm สิ่งเหล่านี้จะให้สัญญาณเอาต์พุตที่ชัดเจนโดยไม่ทำให้เอาต์พุต CPLD ตึงเครียด

ขั้นตอนที่ 9: สร้างสวิตช์

ทำสวิตช์
ทำสวิตช์
ทำสวิตช์
ทำสวิตช์

คุณจะต้องมีสวิตช์เพื่อกระตุ้นวงจรของคุณ คุณมีตัวเลือกบางอย่างที่นี่ แต่ข้อกำหนดต่างจากโปรเซสเซอร์ AVR เอาต์พุต CPLD ไม่มี pull-ups ในตัว และการ debound ในซอฟต์แวร์ไม่ใช่เรื่องง่าย (เป็นไปได้ แต่ต้องใช้ทรัพยากรที่คุณอาจต้องการใช้ในวงจรของคุณ) สวิตช์ DIP ที่แสดงมีสวิตช์หลายตัวในชุดที่สะดวก แต่ต้องดึงขึ้น ฉันใช้พูลอัพ 1K สามารถสร้างปุ่มกดได้โดยใช้วงจรที่ Atmel แนะนำสำหรับบอร์ดสาธิตของพวกเขา แผนผังอยู่ในหน้า 36 หรือประมาณนั้น อีกทางเลือกหนึ่งคือการต่อโปรเซสเซอร์ AVR เพื่อให้สิ่งเร้า - และแม้แต่ตรวจสอบการตอบสนอง แต่นั่นเป็นแบบฝึกหัดที่เหลือสำหรับนักเรียน

ขั้นตอนที่ 10: สร้างวงจรแรกของคุณ

สร้างวงจรแรกของคุณ
สร้างวงจรแรกของคุณ
สร้างวงจรแรกของคุณ
สร้างวงจรแรกของคุณ

ถึงเวลานี้คุณควรได้รับและติดตั้งซอฟต์แวร์แล้ว ทำตามบทช่วยสอนที่ละเอียดถี่ถ้วนเพื่อสร้างวงจร CPLD อย่างง่ายแรกของคุณ (สองอินพุตและเกต ไม่ได้ง่ายไปกว่านี้แล้ว) อย่าลืมเลือกอุปกรณ์ที่ถูกต้อง (44 Pin PLCC, 5V, 1504AS [รายละเอียด]) และเลือกหมายเลขพิน I/O ที่มีอยู่ (ฉันใช้ 14 และ 16 เป็นอินพุต; 28 เป็นเอาต์พุต) รายละเอียดเหล่านี้แตกต่างจากบทช่วยสอนเล็กน้อย แต่ไม่ควรสร้างปัญหาให้กับคุณ

ขั้นตอนที่ 11: ตั้งโปรแกรม CPLD แรกของคุณ

โปรแกรม CPLD แรกของคุณ
โปรแกรม CPLD แรกของคุณ
โปรแกรม CPLD แรกของคุณ
โปรแกรม CPLD แรกของคุณ

ต่อสายการเขียนโปรแกรมของคุณเข้ากับพอร์ตขนานบนพีซีของคุณ ต่อเข้ากับ Programmer Cradle ของคุณ ต่อสายไฟ 5 โวลต์เข้ากับขั้วต่อสายไฟ และทำตามบทช่วยสอนเพื่อตั้งโปรแกรม CPLD ตัวแรกของคุณ เลือกรุ่นสายเคเบิลที่ถูกต้อง โปรดทราบว่า Altera Byte-Blaster เป็นหนึ่งในตัวเลือก

ขั้นตอนที่ 12: ทดสอบส่วนที่คุณตั้งโปรแกรมไว้

ทดสอบส่วนที่คุณตั้งโปรแกรมไว้!
ทดสอบส่วนที่คุณตั้งโปรแกรมไว้!
ทดสอบส่วนที่คุณตั้งโปรแกรมไว้!
ทดสอบส่วนที่คุณตั้งโปรแกรมไว้!

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

ขั้นตอนที่ 13: จุดจบและทรัพยากรบนเว็บบางส่วน

จุดจบและทรัพยากรบนเว็บบางส่วน
จุดจบและทรัพยากรบนเว็บบางส่วน

บทช่วยสอนนี้ไม่ใช่จุดประสงค์เพื่อสอนวิธีใช้ VHDL (ฉันเพิ่งเริ่มเรียนรู้ นั่นคือเหตุผลที่ฉันสร้างโปรแกรมเมอร์ จำได้ไหม) ที่กล่าวว่า ฉันพบบทแนะนำที่เป็นประโยชน์มากมายและแหล่งข้อมูลที่มีประโยชน์บางอย่างที่ฉันสามารถชี้ให้คุณเห็นได้ คำติชมและข้อเสนอแนะอื่น ๆ ได้รับการชื่นชมอย่างมาก โปรดทราบว่าคุณยังสามารถใช้ Ghetto CPLD Development System เพื่อเรียนรู้ Verilog และเทคนิคการเขียนโปรแกรม CPLD อื่นๆ ที่ฮาร์ดแวร์ไม่สนใจ แหล่งข้อมูล VHDL บนเว็บ:พื้นฐานและลิงก์บางส่วนที่นี่และที่นี่ลิงก์ไปยัง เครื่องมือฟรี บทช่วยสอนที่ฉันชอบอยู่ที่นี่และที่นี่ แต่คุณจะพบกับคนอื่นอีกมากมาย สุดท้ายนี้ (สำหรับตอนนี้) คุณจะต้องการดูกลุ่มสนทนา เพลิดเพลิน เรียนรู้มาก และแบ่งปันสิ่งที่คุณรู้

แนะนำ: