ปัญหาใดที่อาจเกิดขึ้นเมื่อผูกมัดการเปลี่ยนแปลง 40 รายการ


16

ฉันวางแผนที่จะผูกมัดการลงทะเบียนกะ40 x 74HC595ด้วยกัน ห่วงโซ่ทั้งหมดของ 74HC595s จะถูกควบคุมโดยไมโครคอนโทรลเลอร์ 5 V ซึ่งจะสร้างSDI, CLOCKและLATCHสัญญาณ

การลงทะเบียนการเปลี่ยนแปลงแต่ละครั้งและไมโครคอนโทรลเลอร์จะมี PCB ของตนเองดังแสดงในแผนภาพด้านล่าง:

แผนภาพ

เนื่องจากข้อ จำกัด ทางกลระยะห่างระหว่างการลงทะเบียนการเปลี่ยนแปลงแต่ละครั้งจะอยู่ที่ประมาณ 30 ซม. (12 นิ้ว) ดังนั้นสัญญาณควบคุมจะเคลื่อนที่ไปตามระยะทางของ aprox 12 ม. (40 ฟุต) นอกจากนั้นทั้งระบบจะติดตั้งในสภาพแวดล้อมที่มีเสียงดังมาก (ใกล้กับแสงไฟฟลูออเรสเซนต์สายไฟหลัก ฯลฯ )

ความกังวลของฉันคือสัญญาณควบคุมจะดังมากและการลงทะเบียนกะอาจส่งออกสิ่งผิดปกติ ฉันคิดว่า:

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

การแก้ปัญหาข้างต้นเป็นสิ่งที่ดีที่ต้องทำ? ฉันจะทำอย่างไรเพื่อรักษาสัญญาณรบกวน (ที่อาจเกิดขึ้น) ในสายสัญญาณให้น้อยที่สุด?


3
ดูเหมือนว่าผู้สมัครที่ยอดเยี่ยมสำหรับ CPLD แทนที่ 40 shift register
Joel B

2
@ JoelB มันอาจฟังดูเหมาะสมสำหรับ CPLD แต่นั่นหมายความว่ามีสัญญาณ320 (= 40 * 8) ที่ส่งสัญญาณจากกระดานหลัก (CPLD) ไปทั่วสถานที่ มันยากมากที่จะติดตั้งในกรณีของฉันในสภาพแวดล้อมนั้น และมันจะยากมากที่จะรักษา ยิ่งไปกว่านั้นแม้ว่าสัญญาณจะสั้นลง แต่ก็ยังมีสัญญาณรบกวนอีกด้วย
m.Alin

1
@Joel - Digikey แสดงรายการ CPLD เพียงไม่กี่แห่งด้วย 320 I / O และพวกเขาทั้งหมด BGAs พวกมันมีราคาแพงกว่า 40 '595s เช่นกันและอย่าง m.Alin บอกว่าคุณไม่มีข้อได้เปรียบของสัญญาณแบบกระจาย จากมุมมองเชิงตรรกะนี่เป็นงานที่สมบูรณ์แบบสำหรับ CPLD จากการปฏิบัติที่น้อยลง
stevenvh

2
@ m.Alin - คุณพูดถูก ฉันเพิ่งอ่าน 40 shift shift และพิมพ์ใน CPLD หลังจากอ่านคำถามอย่างละเอียดแล้วคุณรู้สึกยังไงบ้าง
Joel B

คำตอบ:


14

ใช้บัฟเฟอร์ Schmitt-triggerที่อินพุตของแต่ละบอร์ด พวกเขาจะทำความสะอาดสัญญาณเพื่อให้เสียงใด ๆ ที่จะไม่ให้พัลส์ผิดพลาดบนนาฬิกาเช่น 74LVC3G17เป็นบัฟเฟอร์ไม่ใช่ inverting สาม

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


1
@ m.Alin - ใช่ขั้นตอนการดึงจะไม่เป็นไร แต่ฉันขอแนะนำบัฟเฟอร์ไม่เพียง แต่สำหรับความสามารถในการขับเคลื่อน แต่โดยเฉพาะอย่างยิ่งสำหรับhysteresisของ Schmitt-trigger ซึ่งจะหลีกเลี่ยงพัลส์นาฬิกาผิดพลาดที่เกิดจากเสียงรบกวนรอบ ๆ เพดาน
stevenvh

2
@Saad - คุณหมายถึงบัฟเฟอร์ขับเคลื่อนสัญญาณไปยังเคเบิลหรือไม่ สิ่งที่ดีคือมันจะให้ความต้านทานต่ำซึ่งช่วยลดเสียงรบกวน แต่ถ้ามีก็จะเป็นเสียงที่ด้านข้างตัวรับสัญญาณที่คุณไม่สามารถทำอะไรเกี่ยวกับเรื่องนี้ในด้านการส่ง ดังนั้นมันจึงเป็นเครื่องรับที่ต้องการระบบภูมิคุ้มกันทางเสียงที่ดีซึ่ง Schmitt-trigger จัดหาให้
stevenvh

1
@ Saad - ใช่ แต่ในกรณีนี้ดูเหมือนว่า overkill: สายไฟมีความยาวเพียง 30 ซม. และคุณมี repeater / buffer ในแต่ละบอร์ดแล้ว
stevenvh

1
@stevenvh ใช่ฉันกำลังพูดถึงโดยทั่วไป โพสต์ของคุณมีข้อมูลมากมายและฉันมักจะเรียนรู้สิ่งใหม่ ๆ อยู่เสมอ! ในกรณีนี้ฉันมีบัฟเฟอร์บนแผงควบคุมซึ่งเชื่อมต่อกับสายเคเบิลที่เชื่อมต่อกับ 'บอร์ดลูกสาว' ฉันไม่คาดหวังว่าจะมีเสียงดังรบกวนดังนั้นฉันอาจอยู่กับการจัดการของฉัน ฉันมีบัฟเฟอร์ที่นั่นเท่านั้นเพื่อที่ว่าแหล่งที่มาของฉันจะไม่จบลงด้วยการขับ 8 อุปกรณ์ (ด้วยความจุอินพุต 8pF + การติดตามและความจุของสายเคเบิล)
Saad

1
@Saad - ขอบคุณสำหรับดอกไม้! :-) จับตาดูความจุของสายเคเบิลโดยเฉพาะอย่างยิ่งถ้ามันมีความยาวมากกว่าหนึ่งเมตร Rule-of-thumb: 100 pF / m ซึ่งมากกว่าความจุอินพุต
stevenvh

9

ปัญหาที่อาจเกิดขึ้นคือนาฬิกา SR บางเรือนก่อนนาฬิกา SR ถัดไปดังนั้น SR ถัดไปจะนาฬิกาในข้อมูลที่ไม่ถูกต้อง วิธีแก้ปัญหา (มาตรฐาน?) สำหรับสิ่งนี้คือการวางสายนาฬิกาเริ่มต้นที่ SR ล่าสุด

ฉันจะพิจารณาเพิ่มบัฟเฟอร์ (schmit-trigger?) ในแต่ละบอร์ดสำหรับทั้ง 3 สายสัญญาณ

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


8

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

หรือคุณสามารถใช้ shift register เช่น74HC4094ซึ่งมีการเปลี่ยนแปลงข้อมูลออกบนขอบนาฬิกาที่ลดลงหรือคุณสามารถเพิ่ม flip flop ระหว่างผลลัพธ์ของ 74HC595 ล่าสุดบนบอร์ดและบอร์ดถัดไปและมี flip flop สลักเอาท์พุทบนขอบตกของนาฬิกาที่ขับเคลื่อนของ 74HC595 (อาจส่งสัญญาณนาฬิกาผ่านอินเวอร์เตอร์สองตัวเพื่อบัฟเฟอร์และป้อนสัญญาณนาฬิกากลับด้านไปยังฟล็อปพลิก)

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.