วิธีแปลงสัญญาณอนาล็อกเป็น 0 ถึง 10V ถึง 0 ถึง 2.5V สำหรับอินพุต ADC


25

ฉันมีสัญญาณอนาล็อกซึ่งอยู่ในช่วงระหว่าง 0V ถึง 10V ฉันต้องการลดขนาดเชิงเส้นลงเหลือ 0 ถึง 2.5V สำหรับ ADC ของฉัน

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


2
เป็นไปได้ซ้ำของตัวแบ่งแรงดันและ ADC ของ
Kellenjb

1
@Kellenjb - ทั้งแรงดันแบ่งและ ADCsและความต้านทานอินพุต ADC บน MCUsคล้ายกับคำถามนี้มาก; ทั้งสามตัวเกี่ยวกับตัวต้านทานและตัวต้านทาน ADC อย่างไรก็ตามโทมัสระบุทั้งคำถามที่เชื่อมโยงซึ่งเขาไม่กังวลเกี่ยวกับการโหลดแหล่งข้อมูลซึ่งเป็นองค์ประกอบสำคัญของคำตอบปัจจุบัน นอกจากนี้ยังไม่มีใครอธิบายวิธีการคำนวณค่าตัวต้านทานในคำถามอื่น ๆ
Kevin Vermeer

@lionheart - แหล่งสัญญาณของคุณแข็งแกร่งแค่ไหน?
Kevin Vermeer

@KevinVermeer แล้วคำถามนี้ล่ะ: การวัดแรงดัน PIC ; แล้วคำถามนี้สำหรับส่วนแบ่งแรงดันไฟฟ้า
Kellenjb

@ Kellenjb - ทั้งสองอย่างนั้นดี แต่ไม่คำนึงถึง (หรือต้องคำนึงถึง) ความต้านทานอินพุตของระบบ
Kevin Vermeer

คำตอบ:


31

ใช่ทฤษฎีแบ่งแรงดันเป็นเรื่องปกติ ส่วนใหญ่จะมีผลต่อคุณภาพของสัญญาณขึ้นอยู่กับสิ่งที่คุณพิจารณาว่าเป็นสัญญาณคุณภาพ นี่คือเสียงไฮไฟ, สตรีมข้อมูลดิจิตอล, เสียงพูด, RF, อย่างอื่นไหม?

มีปัญหาหลายอย่างเกี่ยวกับตัวแบ่งแรงดันทานที่คุณควรระวัง:

  1. ตัวแบ่งแรงดันจะโหลดสัญญาณต้นทาง คุณต้องมีตัวแบ่งที่ออก 1/4 ของสัญญาณอินพุต ตัวแบ่งใด ๆ ที่มีตัวต้านทานสูงสุด 3x ด้านล่างจะทำเช่นนั้น

    ในกรณีนี้ R1 = 3 * R2 ความต้านทานที่มองเข้าไปในตัวหารจากแหล่งที่มาคือ R1 + R2 คุณต้องทำให้แน่ใจว่ามันสูงพอที่จะไม่โหลดสัญญาณต้นทางเพื่อเปลี่ยนลักษณะของมันไปยังจุดที่คุณสนใจ ตัวอย่างเช่นถ้า R1 = 30kΩและ R2 = 10kΩดังนั้นตัวแบ่งจะโหลดแหล่งที่มาด้วย40kΩ

  2. พิจารณาความต้านทานเอาต์พุต นี่คือสิ่งที่สตีเว่นพูดถึง ด้วยแหล่งจ่ายแรงดันไฟฟ้าที่สมบูรณ์แบบ (0 อิมพิแดนซ์) ขับตัวแบ่งความต้านทานเอาต์พุตคือ R1 // R2 ด้วยค่าตัวอย่างด้านบนนั่นจะเป็น30kΩ // 10kΩ = 7.5kΩ ดังที่สตีเว่นกล่าวถึงสิ่งนี้จะต้องได้รับการพิจารณาเมื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์ A / D มันไม่ได้เป็นปัญหาของการโหลดเอาท์พุทตัวแบ่งเท่าที่ A / D ต้องการอิมพิแดนซ์ จำกัด บางอย่างเพื่อชาร์จฝาแคปภายในในเวลา จำกัด ที่ความต้านทานสูงกระแสการรั่วไหลเล็กน้อยของพิน A / D ครั้งที่อิมพิแดนซ์ยังสร้างแรงดันออฟเซตที่เพียงพอเพื่อทำให้การอ่าน A / D เสียหาย เนื่องจากปัญหาเหล่านี้ผู้ผลิตไมโครคอนโทรลเลอร์ระบุความต้านทานสูงสุดสำหรับการขับอินพุต A / D ใน PICs เก่าที่มี 8 หรือ 10 บิต A / Ds นี่คือ10kΩโดยทั่วไป สิ่งนี้น้อยกว่าใน A / D ที่เร็วกว่าบางตัวหรือที่ความละเอียดสูงกว่าเช่น 12 บิต บางตระกูล dsPIC ต้องการเพียงไม่กี่ 100 ors หรือน้อยกว่า

  3. การตอบสนองความถี่ มีความจุจรจัดอยู่เสมอ ความจุจรจัดต่าง ๆ จะทำให้เกิดฟิลเตอร์กรองความถี่ต่ำและสูง ผลสุดท้ายไม่สามารถคาดเดาได้เนื่องจากความจุจรจัดไม่สามารถคาดเดาได้ จากการใช้ตัวอย่าง30kΩและ10kΩอีกครั้งความต้านทานเอาต์พุตเป็น 7.5k output ตัวอย่างเช่นหากโหลดด้วย 20pF คุณจะมีตัวกรองสัญญาณความถี่ต่ำที่มีการเปิดตัวประมาณ 1 MHz หากสัญญาณเสียงไม่มีปัญหา หากเป็นสัญญาณดิจิตอลที่รวดเร็วนั่นอาจเป็นปัญหาร้ายแรง

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

    ที่ความถี่ต่ำตัวต้านทานจะควบคุมและแบ่งสัญญาณด้วย 4 ที่ความถี่สูงตัวเก็บประจุจะควบคุมและแบ่งสัญญาณด้วย 4 ตัวครอสโอเวอร์ที่การกระทำตัวต้านทานและตัวเก็บประจุมีค่าเท่ากับ 53 kHz ในตัวอย่างนี้

    นี่คือวิธีการแบ่งขอบเขตโพรบ โพรบ "10x" แบ่งสัญญาณเป็น 10 เนื่องจากต้องทำตามช่วงความถี่ทั้งหมดของขอบเขตจึงมีการเพิ่มความจุเล็กน้อยลงในตัวต้านทานแต่ละตัว ความจุจรจัดไม่สามารถทราบได้อย่างแน่นอนและจะมีความอดทนบางส่วนอยู่แล้วดังนั้นตัวเก็บประจุตัวใดตัวหนึ่งจึงถูกสร้างขึ้น นี่คือการปรับ "การชดเชยโพรบ" การปรับนี้จะเปลี่ยนฝาปิดขนาดเล็กของ pF สองสามอัน ด้วยคลื่นสี่เหลี่ยมคุณสามารถเห็นจุดที่ตัวต้านทานแบบ capacitive และตัวต้านทานจับคู่ได้ง่าย

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

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


ทั้งหมดนี้จะไม่ถูกแก้ไขโดย LM358 ที่มี op amp หนึ่งกำลังบัฟเฟอร์อินพุตและอีกบัฟเฟอร์หนึ่งเอาต์พุตซึ่งทั้งคู่เชื่อมต่อเป็นบัฟเฟอร์ที่ไม่มีการแปลงกลับโดยมีตัวแบ่งที่อยู่ตรงกลางหรือไม่
Ian Bland

8

โดยทั่วไปสิ่งที่คุณพยายามทำเรียกว่า "การปรับสภาพสัญญาณ" โดยทั่วไปแล้วจะเป็นเช่นนี้:

ก่อนบัฟเฟอร์สัญญาณ ถ้าแหล่งจ่ายไฟ 0-10 V ของคุณมีอิมพีแดนซ์เอาต์พุตต่ำแล้วให้บัฟเฟอร์ด้วยแอมป์ op ที่ไม่มีการย้อนกลับ (ดูคำตอบของ stevenvh) ตรวจสอบให้แน่ใจว่า op amp มีแบนด์วิดท์เพียงพอ โดยทั่วไปนี่จะอธิบายว่าเป็น "ผลิตภัณฑ์แบนด์วิดท์ที่ได้รับ" เนื่องจากข้อมูลจำเพาะคือวงจรที่ได้รับจะเพิ่มขึ้นตามเวลา นี่ไม่ใช่กรณีเสมอไป เครื่องขยายเสียงบางตัวเป็นโหมดปัจจุบันและมีกราฟแสดงอัตราขยายเทียบกับแบนด์วิดท์ กรณีของคุณเรียบง่าย: กำไรคือ 1 ดังนั้นหากระบุผลิตภัณฑ์แบนด์วิดท์กำไรไว้ก็เป็นแบนด์วิดท์ที่ได้รับ 1

จากนั้นหารผลลัพธ์ด้วย 4 โดยใช้ตัวหารตัวต้านทาน เนื่องจากคุณกำลังใช้ ADC คุณต้องระมัดระวังเกี่ยวกับนามแฝงสัญญาณ (สัญญาณรบกวนยังเป็นชื่อแทนดังนั้นแม้ว่าสัญญาณของคุณจะต่ำกว่าความถี่ ADC Nyquist คุณควรจะมีตัวกรองการลบนามแฝง) ตัวกรอง anti-aliasing ที่ง่ายที่สุดคือเพียงแค่ใส่ตัวเก็บประจุจากเอาต์พุตของตัวแบ่งของคุณลงกราวด์และถือเป็นตัวกรอง RC โดยที่ R นั้นเท่ากับค่าตัวต้านทานสองตัวของตัวหารแบบขนาน มุมควรผ่านความถี่สูงสุดที่คุณต้องการผ่านไปยัง ADC และตัวกรองควรลดทอน 6 dB ต่อบิตตามเวลาที่ถึงความถี่ aliasing (ซึ่งเป็นอัตราตัวอย่างลบกับความถี่ของมุมกรอง)

นี่คือสิ่งที่ประเภท ADC ของคุณสำคัญ ใน ADC (SAR) ประมาณต่อเนื่องตามปกติอัตราตัวอย่างจะต่ำกว่า ADC ซิกมาเดลต้ามากดังนั้นค่า 20 dB / ทศวรรษที่คุณได้รับจากตัวกรอง RC อาจไม่เพียงพอ หากเป็นเช่นนั้นคุณจะต้องใช้ตัวกรองหลายขั้วที่ซับซ้อนมากขึ้น นั่นเป็นการอภิปรายครั้งใหญ่ในตัวเองดังนั้นฉันจะข้ามมันไปตอนนี้ ค้นหาตัวกรองขั้วโลกที่ซับซ้อนและดาวน์โหลดสำเนาของ FilterPro ของ TI หากคุณสนใจ

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


5

คุณต้องการแบ่งสัญญาณโดยใช้ตัวคูณ 4 ซึ่งง่ายต่อการแบ่งตัวต้านทาน ตัวต้านทานที่อินพุตควรเป็น 3 เท่าของการลงกราวด์ ค่าที่แน่นอนขึ้นอยู่กับความต้านทานอินพุตของ ADC ซึ่งมักจะไม่สูงมากดังนั้นอิมพีแดนซ์อินพุตอาจบิดเบือนตัวแบ่ง สมมติว่าคุณเลือก 10kΩ และ 3.3kΩสำหรับตัวต้านทาน สิ่งนี้จะให้ 2.5V สำหรับอินพุต 10V ดี แต่สมมติว่าความต้านทานอินพุตของ ADC นั้นเท่ากับ 3.3kΩ. นี่คือขนานกับ 3.3kΩ ตัวต้านทานตัวแบ่งของคุณส่งผลให้ 1.65kΩเพื่อให้คุณหารด้วย 7 แทน 4
คุณจะต้องเพิ่ม 3.3kΩ ดังนั้นความต้านทานรวมกับความต้านทานอินพุตของ ADC จะเป็น 3.3kΩ.

อีกวิธีหนึ่งคุณสามารถบัฟเฟอร์ตัวแบ่งด้วยตัวติดตามแรงดันไฟฟ้าได้ตามที่ Matt แนะนำ

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


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