เหตุใดจึงใช้ 2.048V และ 4.096 เป็นข้อมูลอ้างอิง


25

ในหลาย ๆ ไอซีอ้างอิงแรงดันไฟฟ้า (ตัวอย่างเช่นMAX610x ) ดูเหมือนจะมีแรงดันอ้างอิงที่แตกต่างหลากหลาย (1.25, 1.8, 2.5, 3.3 ฯลฯ )

สิ่งที่ทำให้ฉันแปลกประหลาดคือการอ้างอิง 2.048V และ 4.096V ทำไมเราใช้การอ้างอิงที่แรงดันไฟฟ้าเหล่านั้นแทนที่จะเป็นเพียงแค่ 2V และ 4V ซึ่งแน่นอนว่าจะง่ายกว่าในการใช้ทางคณิตศาสตร์


11
สำหรับระบบเลขฐานสอง 2.048 นั้นง่ายต่อการใช้ทางคณิตศาสตร์
Alnitak

@Aln: ไม่จริง มันดูง่ายกว่าคนที่ไม่ได้คิดในตอนแรก
Olin Lathrop

คำตอบ:


49

เมื่อวัดแรงดันไฟฟ้าเชิงปริมาณ (เช่นการส่งผ่าน ADC) คุณมักจะแปลงแรงดันไฟฟ้าให้เป็นตัวแทนจำนวนเต็มซึ่งแสดงโดยใช้กำลังของโครงร่าง 2

ซึ่งหมายความว่าพวกเขาตกอยู่ในรูปแบบของตัวเลขไบนารีเช่น DAC 8 บิตมี 256 ระดับแต่ละระดับ การใช้การอ้างอิงที่มีกำลัง 2 จำนวนมิลลิโวลต์หมายความว่าค่าดิจิตอลที่แท้จริงมีค่าที่สำคัญ

ตัวอย่างเช่นหากคุณมี DAC ขนาด 11 บิตโดยมีการอ้างอิง 2.048 ค่าดิจิตอลจะเป็นจำนวนมิลลิโวลต์

แก้ไข : ตามที่ Andrew Morton ชี้ให้เห็นระดับนี้มี 2048 ระดับในขณะที่มีระดับมิลลิโวลต์ 2049 รวมทั้ง 0 ดังนั้นเพื่อแสดงแต่ละบิตอย่างถูกต้องเป็นมิลลิโวลต์คุณต้องเพิ่มบิตอีกเล็กน้อย อย่างไรก็ตามหากคุณปัดเศษสม่ำเสมอคุณยังสามารถปัดเศษองค์ประกอบแต่ละส่วนลงและรับ 0-2047 mV หรือปัดเศษขึ้นและมี 1-2048 mV หากคุณพอดี 2048 ถึง 2049 คุณจะสูญเสียคุณสมบัติที่ดีของการจับคู่โดยตรงกับจำนวนมิลลิโวลต์


3
ซึ่งมีประโยชน์มากสำหรับการวัดแสงโดยใช้เครื่องมือเปรียบเทียบ หนึ่งในเหตุผลที่เราสามารถซื้อมัลติมิเตอร์ได้ $ 5
mckenzm

1
Ummm .... 11111111111 (ไบนารี) คือ 2047 นั่นหมายความว่าอินพุตของศูนย์ถึง DAC จะส่งออก 1 mV หรืออินพุต 1024 จะส่งออก 1024.5 mV หรือไม่
Andrew Morton

อ่าจุดดี! มันตรงกับจำนวนของระดับเดียวกัน แต่มีข้อผิดพลาดโดยหนึ่งปิด
loudnoises

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

ดูเหมือนว่า ADC แบบ bread-and-butter โดยทั่วไปจะเป็น 12 บิตและถ้าบิตสูงใช้เป็นสัญญาณและช่วงแรงดันไฟฟ้าถูกกำหนดให้เป็นไบโพลาร์ - อยู่กึ่งกลางรอบ 0V, จำนวนเต็ม 12 บิตที่ลงลายมือชื่อจริงมีช่วง -2048 .. + 2047 ทำให้ผมสงสัยว่า "ไบนารีแม้แต่" อ้างอิงสามารถอย่างใดจะเกี่ยวข้องกับปลายเชิงลบในช่วงที่มีโอกาสใด ๆ :-)
FRR

21

การอ้างอิง 4.096V และ 2.048V อนุญาตให้ ADC สร้างค่าจำนวนเต็มใน mV มันหมายถึงแต่ละขั้นตอนของ ADC แสดงถึง 1mV หรือจำนวนเต็มคูณ 1mV 4.096V = 2 ^ 12 mV


2
อนุญาตให้ ADC 12 หรือ 11 บิตแม่นยำ
jcaron

1
ADC ที่มีความละเอียดสูงกว่านั้นยังได้รับประโยชน์จากการจัดการดังกล่าวซึ่งแน่นอนว่าซอฟต์แวร์ที่ขับเคลื่อน ADC เหล่านี้สามารถใช้เลขจำนวนเต็มแทน 0.5mV, 0.25mV และอื่น ๆ แทนตัวแปรจุดคงที่
Lior Bilia

ความละเอียดที่สูงขึ้นและต่ำลง ADCs ได้รับประโยชน์อย่างแน่นอนจากการจัดการ แต่เพื่อให้ได้ 1 mV ขั้นตอนโดยเฉพาะตามที่คุณระบุไว้ในคำตอบของคุณคุณจะต้องจับคู่การอ้างอิงกับความละเอียด
jcaron

นั่นคืออุดมคติใช่ แต่น่าเศร้าที่ไม่มีการอ้างอิง 16.777216V
Lior Bilia

10

เหตุผลเหล่านี้เป็นเพราะพวกเขาสามารถแบ่งออกเป็นฐาน 2 ได้อย่างง่ายดายสิ่งนี้ทำให้มีประโยชน์สำหรับสิ่งต่าง ๆ เช่น ADC ที่ ADC 12 บิตพร้อมรางระหว่าง 0 ถึง 4.096V จะหมายถึง 1mV ต่อบิตซึ่งง่ายกว่ามาก จำนวน.

นอกจากนี้ยังมีแรงดันไฟฟ้าเพิ่มเติมที่ทำในสิ่งเดียวกัน นอกจากนี้คุณยังสามารถได้รับการอ้างอิงแรงดันใน 1.024V ซึ่งเป็น 2 10 การอ้างอิงที่แตกต่างกันสามารถใช้สำหรับ ADC บิตที่แตกต่างกัน


5
ทำไมเราใช้การอ้างอิงที่แรงดันไฟฟ้าเหล่านั้นแทนที่จะเป็นแค่ 2V และ 4V

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

เป็นคนอื่นได้แสดงให้เห็นแล้ว, 2.048 = 2 11 /1000 4.096 = 2 12 /1000 หากคุณใช้ A / D 12 บิตพร้อมการอ้างอิง 4.096 V แต่ละการนับคือ 1 mV

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

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

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

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

จากนั้นให้พิจารณาด้วยว่าคุณต้องการวัดแรงดันไฟฟ้าในช่วง 0 ถึง 4.095 V หรืออย่างน้อยที่สุดในช่วงนั้น หากคุณต้องการวัด 0 ถึง 5 V ดังนั้นการอ้างอิง 4.096 ก็ไม่ได้ช่วยอะไร คุณจำเป็นต้องลดทอนสัญญาณลงใน A / D ต่อไปดังนั้นการอ่านสัญญาณที่ถูกลดทอนลงในหน่วยมิลลิโวลต์จะทำให้ไม่มีข้อได้เปรียบพิเศษแม้แต่เมื่อแสดงค่าดิจิตอล

ดังนั้นในระยะสั้นในโลกปัจจุบันที่มีไมโครคอนโทรลเลอร์ที่จัดการการอ่าน A / D การอ้างอิง 2.048 และ 4.096 V ส่วนใหญ่ตอบสนองต่อความต้องการที่รับรู้และสำหรับผู้ที่หัวเข่าที่ไม่คิดถึงปัญหาอย่างถูกต้อง


ไม่ใช่ทุกคนที่ต้องการหาร 1V (หรือบางส่วน) กำลังใช้ไมโครคอนโทรลเลอร์
Alnitak

ออกเสียงลงคะแนนและมีสิ่งหนึ่งที่คุณลืมพูดถึง - ฉันคิดว่า - คำตอบทั้งหมดที่กล่าวถึงไม่สนใจนั่นคือ 1024 ~ = 1,000 <ข้อผิดพลาด 3% และเล็กกว่า 3% นั้นยังมีราคาแพงและหายาก (ถ้าคุณคำนึงถึงทั้งระบบ )
halfbit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.