ชะลอสัญญาณ TTL


9

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

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

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

  1. ความล่าช้าที่จำเป็นหมายถึงหมวกขนาดใหญ่ที่ไม่ถูกต้องสวย;
  2. สัญญาณอินพุตระดับสูงจำเป็นต้องมีอย่างน้อยที่สุดเท่ากับ 'ล่าช้า';

ข้อกำหนดโดยรวม:

  • ระยะเวลาล่าช้า 1 วินาที +/- 500 ms accuray +/- 10%
  • เหตุการณ์ที่ล่าช้าควรคงอยู่ในช่วงเวลาที่เหมาะสมให้พูดอย่างน้อย 100ms (และน้อยกว่า 200ms)

ตัวอย่างรูปคลื่นของสัญญาณอินพุตและเอาต์พุต


4
หรือคุณสามารถใช้ shift register ถ้าคุณมีสัญญาณนาฬิกาที่เหมาะสมบ้าง
Richard the Spacecat

1
ฉันคิดว่าคุณต้องวาดไดอะแกรมของสัญญาณอินพุทและสัญญาณเอาท์พุท, ใส่คำอธิบายประกอบกับสิ่งที่ทำให้เกิดอะไรและข้อกำหนดของสัญญาณเอาท์พุตคืออะไร ยังไม่ชัดเจนว่าคุณหมายถึงอะไรโดย 'สัญญาณ' ไม่ว่าจะเป็นเพียงอินพุต + ไปที่ขอบหรือเพียงแค่ขอบ -ve หรือทั้งสองอย่างและจะเกิดอะไรขึ้นเมื่อเวลาระหว่างพวกเขาเปลี่ยนไป monostable เช่น HC123 อาจเป็นสิ่งที่คุณต้องการหรืออาจไม่ขึ้นอยู่กับสิ่งที่คุณต้องการ
Neil_UK

3
อะแฮ่มแล้วตัวจับเวลา ol ดี 555 ตัวล่ะ?
แคลเซียม 3000

9
ข้อความว่า "เฟิร์มแวร์ของฉันต้องได้รับการรับรอง" ไม่สามารถทำงานได้ดีกับ "ฉันไม่รู้วิธีชะลอสัญญาณดิจิตอล" คุณช่วยให้เราประเมินว่าคุณมีประสบการณ์มากแค่ไหน? (อย่างจริงจังการเขียนเฟิร์มแวร์ที่ดีมักจะง่ายกว่าการออกแบบวงจรแอนะล็อกที่ดีและถ้าการรับรองเป็นข้อกำหนดสำหรับระบบที่มีความสำคัญต่อชีวิตฉันต้องการให้คุณไม่ออกแบบส่วนอะนาล็อกหากคุณไม่รู้วิธีการนำไปใช้ ล่าช้า)
Marcus Müller

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

คำตอบ:


10

Analog Devices / Linear Technology LT6993-1 (ดูวงจรด้านล่าง) เป็นขอบเรียกกำเนิดการเต้นของชีพจรในเชิงบวกที่มีความถี่สัญญาณนาฬิกาต้านทานโปรแกรมและตัวต้านทานค่า divider โปรแกรมและขั้วที่มีความล่าช้าถึง 33 วินาทีกับความถูกต้อง ~ 3%

ตัวแปลง A / D ภายในแปลงแรงดันไฟฟ้าขาเข้า DIV เป็นตัวเลือกตัวแบ่ง 8 บิตและตัวเลือกขั้ว 1 บิต ความถี่สัญญาณนาฬิกาและค่าตัวแบ่งจะกำหนดความกว้างพัลส์เอาท์พุท การตั้งค่าตัวแบ่งขนาดใหญ่ช่วยให้ตัวต้านทานขนาดที่สมเหตุสมผลสร้างความล่าช้าได้นาน

วงจรด้านล่าง (จากแผ่นข้อมูล) แสดงวิธีใช้ชิปสองตัวเพื่อสร้างพัลส์ที่ล่าช้าในการตอบสนองต่อขอบที่เพิ่มขึ้นของพัลส์อินพุต ค่าตัวต้านทานจะต้องมีการปรับเพื่อให้ตรงกับความล่าช้าที่คุณต้องการ ค่าตัวต้านทาน DIV ที่แนะนำจะแสดงในตารางด้านล่างวงจร

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


8

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

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

หากคุณgoogle "ราคา CSS55C"คุณสามารถค้นหาแหล่งที่คุณสามารถซื้อชิ้นส่วนได้

การตั้งค่าขาวดำ


คำแนะนำที่ดี (ฉันลอง NE555 แล้ว แต่ฉันมีปัญหา) ฉันจะลองอีกครั้ง
weirdgyn

6

หน้า 14 ของบันทึกย่อแอพ Texas Instruments 74LS123มีตัวอย่างของวงจรหน่วงเวลาแบบดิจิตอลโดยใช้ทั้งสองครึ่งของ '123 คุณสามารถปรับทั้งความล่าช้าและความกว้างพัลส์เอาท์พุทโดยการเปลี่ยนค่าของ Rext หากคุณไม่จำเป็นต้องยุติพัลส์เอาต์พุตแบบสุ่มคุณสามารถผูกอินพุต 'B' และอินพุตสูงได้


ฟังดูสินค้าและค่อนข้างง่าย ... ฉันต้องลองดูสิ
weirdgyn

3

ฉันตระหนักถึงวิธีแก้ปัญหาการทำงานที่ใช้ฟีดเครือข่าย RC ใน Schmidt ทริกเกอร์ตัวเปรียบเทียบ

นี่เป็นวิธีที่เป็นมาตรฐานในการนำวงจรดิจิตอลมาใช้

ฉันไม่พอใจกับโซลูชันนี้มากเนื่องจากสองสาเหตุหลัก:

  • ความล่าช้าที่จำเป็นหมายถึงหมวกขนาดใหญ่ที่ไม่ถูกต้องสวย;

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

  • สัญญาณอินพุตระดับสูงจำเป็นต้องมีอย่างน้อยที่สุดเท่ากับ 'ล่าช้า';

ดังนั้นอาจแทนที่ทริกเกอร์ Schmitt สำเร็จรูปของคุณด้วยขอบเขตฮิสเทรีซิสที่กำหนดไว้ล่วงหน้าด้วยทริกเกอร์ที่มีเกณฑ์ "off-to-on" และขีด จำกัด "on-to-off" ต่ำ


3

โซลูชัน 2 ชิปอื่น ข้อได้เปรียบของวิธีนี้คือนาฬิกาต่อเนื่องที่สามารถวัดและปรับได้ง่ายกว่าการจับเวลาเหตุการณ์ครั้งเดียว

อินพุตพัลส์ตั้งค่า NAND latch ซึ่งจะลบการรีเซ็ตออกจากตัวนับเพื่อเปิดใช้งานการนับ หลังจาก 8 นาฬิกาพัลส์เอาต์พุตจะสูง พัลส์นาฬิกาถัดไปจะรีเซ็ตสลัก NAND ซึ่งถือตัวนับในการรีเซ็ตปิดใช้งาน

อีกสองประตูเป็น RC oscillator ค่าที่แสดงควรจะอยู่ที่ประมาณ 8 Hz สำหรับความล่าช้า 1 วินาทีและความกว้างของพัลส์ 125 มิลลิวินาที

ป้อนคำอธิบายรูปภาพที่นี่


ฉันมักจะ upvote คำตอบใด ๆ ที่ใช้ 4017 ;-)
nekomatic

2

74HC4538เป็นหนึ่งผมเคยใช้บ่อย 1 วินาทีขึ้นไปเมื่อสิ้นสุดระยะของมัน นี่เป็นข้อตกลงแบบแพ็คเกจเดียวเนื่องจากมีสองหน่วยแยกกัน คนแรกจะให้ล่าช้าและเอาท์พุทมันจะขับรถที่สองซึ่งจะผลิตความกว้างพัลส์สุดท้าย

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

และหากคุณกังวลเกี่ยวกับการเชื่อมต่อ TTL กับ CMOS อย่าเป็นเช่นนั้น สมมติว่า CMOS เป็นเพียงโหลดบนเอาต์พุต TTL การเพิ่มตัวต้านทานแบบดึงขึ้น 1k ที่ +5 จะทำให้เคล็ดลับโดยไม่ยุ่งยาก

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