ทำไม ADC ส่วนใหญ่เช่นเดียวกับในArduinoให้ความละเอียด 10 บิตมากกว่า 8 หรือ 16 บิต
ดูเหมือนว่าเป็นเรื่องแปลกที่พวกเขาไม่ตรงกับขนาดข้อมูลมาตรฐาน
ทำไม ADC ส่วนใหญ่เช่นเดียวกับในArduinoให้ความละเอียด 10 บิตมากกว่า 8 หรือ 16 บิต
ดูเหมือนว่าเป็นเรื่องแปลกที่พวกเขาไม่ตรงกับขนาดข้อมูลมาตรฐาน
คำตอบ:
ไม่มีปัญหาทางเทคนิคที่สำคัญในการขยาย SAR (การประมาณต่อเนื่อง) ADC เพื่อแปลง 16 บิต แต่ปัญหาคือคุณเริ่มเห็นพื้นเสียงของส่วนหน้าแบบอะนาล็อก สิ่งนี้มีแนวโน้มที่จะทำให้ลูกค้าตื่นตระหนกเพราะพวกเขาเห็นรหัส ADC กระโดดไปมาและไม่เคยรู้เลยว่าพวกเขากำลังมองหาไมโครโวลต์ที่เบี่ยงเบนเป็นสิบ ๆ
สมมติว่าแรงดันอ้างอิง 5.00 V และ ADC 10 บิต LSB จะแทนแรงดันไฟฟ้าที่ 4.88 mV (5 V × 2 -10 ) สำหรับ ADC แบบ 16 บิตที่มีการอ้างอิง 5.00 V แรงดันไฟฟ้า LSB จะเป็น 76 µV
แต่แหล่งจ่ายไฟในระบบดิจิตอลไม่ตรงกับ 5.00 V โดยปกติแล้วจะระบุไว้ในช่วง 4.75 V ถึง 5.25 V เมื่อใดก็ตามที่มีเหตุการณ์ transient switch ภายในไมโครคอนโทรลเลอร์มีกระแสพัลส์เล็กน้อยที่ทำให้เกิดกระแสไฟฟ้า แรงดันไฟฟ้าไปยัง Twitch หาก LSB อยู่ที่ประมาณ 5 mV คุณอาจแทบจะไม่สามารถมองเห็นได้ แต่ที่ระดับ 76 µV มันไม่ยากเลยที่จะเห็นเสียงรบกวนนี้
ในความเป็นจริงเมื่อคุณได้รับ ADC 12 บิตที่ผ่านมาคุณจะต้องมีการอ้างอิงแรงดันไฟฟ้าแบบอะนาล็อกแทนการใช้แหล่งจ่ายไฟดิจิตอล เพื่อเพิ่มค่าใช้จ่ายเพิ่มเติม เพื่อผลลัพธ์ที่ดีที่สุดการอ้างอิงแรงดันไฟฟ้านี้ควรเป็นชิปแยกต่างหากโดยมีสายไฟของตัวเองและโดยหลักแล้วควรอยู่ห่างจากวงจรดิจิตอลที่ร้อนและมีเสียงดัง
ถ้าคุณต้องการให้ ADC ขนาด 16 บิตให้การอ่านที่เสถียรดีคุณต้องใช้แรงดันอ้างอิงและการควบคุมความร้อนที่สะอาดมากและให้อยู่ห่างจากสัญญาณดิจิตอลที่สลับสับเปลี่ยนอย่างรวดเร็ว ... ดังนั้นการรวม SAR 16 บิตเข้ากับ ชิปตัวเดียวกับไมโครคอนโทรลเลอร์จริง ๆ แล้วจะเอาชนะวัตถุประสงค์ของการมีบิตพิเศษเหล่านั้น คุณแค่วัดเสียงรบกวนแบบสุ่มบนบิตพิเศษเหล่านั้น
มีแอปพลิเคชันของลูกค้าที่ใช้ความละเอียดสูงกว่า ADC บริษัท ที่ฉันทำงานอยู่มีจำนวนไม่มาก อุปกรณ์ทดสอบอัตโนมัติ (ATE), อัลตร้าซาวด์ทางการแพทย์และลูกค้าประเภทพิเศษอื่น ๆ ใช้ ADC ความละเอียดสูงในบางกรณี 18 หรือ 24 บิต
การทดสอบการผลิต ADC ความละเอียดสูงใช้เวลานาน (และมีราคาแพง) ลูกค้าที่ต้องการประสิทธิภาพเช่นนี้จ่ายเบี้ยประกันภัยสำหรับ ADC แบบสแตนด์อโลนภายนอกไม่ใช่ประเภท SAR ราคาถูกที่สร้างขึ้นในไมโครคอนโทรลเลอร์ที่ทันสมัยจำนวนมาก
จากนั้นมีแอปพลิเคชั่นความเร็วสูงเช่นเรดาร์หรือออสซิลโลสโคปแบบดิจิตอลซึ่งต้องการตัวอย่างที่ 100 MHz หรืออัตราที่เร็วกว่า - ที่ความเร็วเหล่านี้คุณโชคดีที่ได้รับ 8 บิตที่มีความหมาย
แลกเปลี่ยนระหว่างความละเอียดและค่าใช้จ่าย
8 บิตให้ 2 8 = 256 ชุดซึ่ง 0 เป็นหนึ่งโดยทิ้ง 0 ถึง 255 เป็นค่าดิจิตอลที่เป็นไปได้ สิ่งนี้ไม่เพียงพอสำหรับแอปพลิเคชันจำนวนมาก ทุกบิตพิเศษเพิ่มความละเอียดเป็นสองเท่าและ 10 บิตให้ 1024 ขั้นตอนซึ่งดีพอสำหรับโครงการส่วนใหญ่ ระบบอุตสาหกรรมอาจใช้ 12 บิตเพื่อให้ได้ความละเอียดที่ดียิ่งขึ้น
ADC ความละเอียดสูงต้องการความคลาดเคลื่อนที่เข้มงวดมากขึ้นและมีราคาแพงกว่าการผลิต
มีการทำคะแนนดีและถูกต้องจำนวนมากแล้ว ฉันใช้ ADC 8, 10, 12 และ 16 บิตอย่างกว้างขวางในช่วงหลายปีที่ผ่านมาและในปัจจุบันค่อนข้างง่ายที่จะได้รับ 16 บิตด้วยเวลาแปลง 4 หรือ 5 ไมโครวินาที (ดีกว่ามีให้ใช้ฉันจะยึดติดกับสิ่งที่อาจปฏิบัติได้ สำหรับคนส่วนใหญ่ที่จะใช้) ในชิปแบบสแตนด์อโลน แต่สิ่งนี้มีเครือข่ายบันไดที่มีความแม่นยำซึ่งมักจะใช้ตัวต้านทานแบบฟิล์มบางและเทคนิคการออกแบบอะนาล็อกที่มีความเชี่ยวชาญสูง (นอกจากนี้ยังมีความต้องการทรานซิสเตอร์แบบไบโพลาร์ประสิทธิภาพสูงบางส่วนในวงจรของ ADC ที่มีความแม่นยำ แต่ไมโครคอนโทรลเลอร์ที่ทันสมัยทั้งหมดคือ CMOS ดังนั้นจึงมีขั้นตอนการประดิษฐ์เพิ่มเติมมากมายที่จะทำให้ทุกสิ่งมีความแม่นยำแบบอะนาล็อกที่ดี ) ADC ที่ดีมีราคาสูงกว่าไมโครคอนโทรลเลอร์ส่วนใหญ่! ไม่ใช่เรื่องง่ายที่จะทำ
เช่นพิจารณา TI ADS8509 ซึ่งเป็นรุ่นก่อนของ ADS7509 ซึ่งไม่ค่อยเร็วเท่าไหร่ฉันเคยใช้ในหลาย ๆ ที่ในโครงการขนาดใหญ่และสำคัญ
http://www.ti.com/lit/ds/symlink/ads8509.pdf
มันค่อนข้างธรรมดาตามมาตรฐานของวันนี้ แต่คุณสมบัติการออกแบบภายในไม่สามารถทำงานร่วมกับกระบวนการผลิตที่ถูกสำหรับไมโครคอนโทรลเลอร์ และมีราคาสูงกว่า $ 15.72 มากกว่าไมโครคอนโทรลเลอร์ส่วนใหญ่ ฉันใช้พวกมันในรูปแบบของเซมิคอนดักเตอร์เปลือยซึ่งรวมอยู่ในลูกผสมโลหะแบบไขลานที่มีวงจรรองรับที่ออกแบบมาอย่างพิถีพิถันและแทบไม่ได้รับเสียงรบกวนเกิน 1 LSB pp ดังนั้นมันสามารถทำได้ถ้าคุณรู้ว่าคุณกำลังทำอะไรและ มีทรัพยากรรวมถึงงบประมาณ แต่คุณจะไม่เคยเห็นสัญญาณรบกวนต่ำเช่นในหรือรอบ ๆ ไมโครคอนโทรลเลอร์
ปัญหาหลักอย่างน้อยหนึ่งคนได้อธิบายไว้ว่าเสียงบนรางจ่ายไฟแบบดิจิทัลจะส่งผลกระทบโดยตรงต่อ ADC ตอนนี้คุณสามารถแก้ไขได้โดยใช้การอ้างอิงแรงดันไฟฟ้าภายนอกที่ดีซึ่งมีการให้พินไว้ แต่คุณต้องทำแบบเดียวกันกับพื้นด้วย และหมุดเหล่านั้นจะต้องถูก จำกัด อยู่ภายในไม่กี่ร้อย mV ของแหล่งจ่ายไฟดิจิตอลและกราวด์หรือสิ่งที่เกิดขึ้น นอกจากนี้ยังมีข้อต่อเสียงภายในภายในซิลิคอนจากตรรกะการเปลี่ยนสถานะในมารยาทที่ซับซ้อนที่ความถี่สัญญาณนาฬิกาและที่แย่กว่านั้นจากหมุด I / O ซึ่งบางส่วนอาจขับและเปลี่ยน 10 มิลลิแอมป์ของ mA หากคุณ โหลดไปยังขีด จำกัด แล้ว เสียงรบกวนเสียงรบกวนและเสียงรบกวนมากขึ้น ...
ส่วนที่ฉันเสนอ (และ Google ราคาถูกกว่าเร็วกว่าหรือต่างกันแลกกับความยืดหยุ่นต่อราคา) มีส่วนต่อประสาน SPI ดังนั้นจึงง่ายต่อการใช้งานภายนอกกับไมโครคอนโทรลเลอร์ด้วยระนาบกราวน์กรองและอื่น ๆ ด้วยความระมัดระวังจะให้ 16 บิต
มันเคยยากที่จะได้รับมากกว่า 10 บิตปราศจากเสียงรบกวนจาก 12 บิต ADC และยังคงอยู่ในสภาพแวดล้อมที่สกปรกเช่นใกล้กับตรรกะดิจิตอลซึ่งส่วนใหญ่เป็นเหตุผลที่ ADC บนกระดานภายในชิปประมวลผล มากหรือน้อยค้างอยู่ที่ความละเอียดนั้นและอาจจะเป็นตลอดไป แต่ TI มีชิปภายนอก 32 บิต ยังไม่ได้ดูแผ่นข้อมูลหรือค่าใช้จ่าย ...
หากคุณสามารถเสียสละความถูกต้องอย่างสมบูรณ์ (เช่นขนาดตัวประกอบอาจลดลง 5% หรือมากกว่านั้นไม่ต้องพูดถึง DC offset และความเบี่ยงเบนของเวลาและอุณหภูมิ แต่ความเป็นเส้นตรงจะยอดเยี่ยม) ADC ระดับเสียงอาจเหมาะสำหรับคุณ พวกมันมีอย่างน้อย 16 บิตและออกแบบมาเพื่อตลาดมวลชนบ่อยครั้งคุ้มค่า แต่อย่าคาดหวังว่าจะใช้หนึ่งในเครื่องมือที่มีความแม่นยำซึ่งต้องวัดสัญญาณ DC ให้ +/- 0.1%
คุณไม่สามารถมีทุกสิ่งพร้อมกัน เป็นคำถามที่สำคัญที่สุด ความแม่นยำ, เสียงรบกวน, ดริฟท์ระยะยาว, ความเร็ว, ค่าใช้จ่าย, พลังงาน, ประเภทอินเตอร์เฟส (อนุกรมหรือขนาน) เป็นต้นนอกจากนี้คุณอาจต้องการมัลติเพล็กหลายช่องทางดังนั้นต้องใช้เวลาตอบสนองขั้นตอนที่รวดเร็ว เป็นอย่างอื่นมีคุณสมบัติที่ดีมาก
เมื่อเลือก ADC Google คือเพื่อนของคุณเสมอ มีบทความและบันทึกการใช้งานมากมายจาก TI, Linear, National และผู้ผลิตเซมิคอนดักเตอร์อื่น ๆ อีกมากมาย ระวังสิ่งที่แผ่นข้อมูลไม่ได้บอกคุณเสมอและตรวจสอบเพื่อดูว่าคู่แข่งของพวกเขาให้ความสำคัญกับพารามิเตอร์ใด
แต่ถ้าคุณต้องการทั้งหมดบนชิปไมโครคอนโทรลเลอร์ของคุณอย่าวางแผนที่จะใช้มากกว่า 10 บิต (อาจใช้งานได้ 9, LSB ที่มีเสียงดัง) ในโครงการของคุณ และวางแผนสำหรับการอ้างอิงแบบอะนาล็อกแยกต่างหากและกราวด์หากชิปของคุณอนุญาต ด้วยวิธีนี้คุณจะไม่เสียเวลา
ADC 8 บิตนั้นน่ากลัวที่จะใช้เพราะมีขั้นตอน 0.49% - ฉันเคยเห็นมาแล้ว Arduino ได้รับการออกแบบมาสำหรับงานอดิเรกอิเล็กทรอนิกส์ใช้ขั้นตอนเป็นจำนวนมากถึง 4 เท่าใกล้ถึง 0.1% ซึ่งใกล้เคียงกับสัญญาณเสียงรบกวน (บวกเสียงหึ่ง) ที่คาดว่าจะเกิดขึ้นจากวงจรเซ็นเซอร์ op-amp หรือ transistor ทั่วไป ดีกว่านั้นเสียกับอุปกรณ์อิเล็กทรอนิกส์ที่ทำเองในบ้านระดับไฮโบสต์
ในขณะที่ ADC ขนาด 16 บิตใช้งานได้ในเชิงพาณิชย์พวกเขาใช้เวลาในการปรับตัวนานขึ้นในระหว่างที่เสียงฮัมหรือเสียงดังขยับดังนั้นคุณจึงไม่ได้การวัดที่ดีขึ้นและช้าลง
เมื่อ ADC ทำการแปลงจะให้ค่าดิจิตอล (quantized) สำหรับสัญญาณอะนาล็อกต่อเนื่อง เนื่องจากค่าดิจิตอลจะไม่ตรงกับค่าแอนะล็อกในขณะที่การแปลงความแตกต่างสามารถพิจารณาเป็นเสียงรบกวนเพิ่มเติมได้ ยิ่งความละเอียดของ ADC สูงขึ้นเท่าใดค่าดิจิตอลก็จะยิ่งใกล้เคียงมากขึ้นเท่านั้น กล่าวอีกนัยหนึ่งเราปรับปรุงสัญญาณต่ออัตราส่วนสัญญาณรบกวน quanitization (SQNR) โดยการเพิ่มบิตของ ADC ดังนั้น ADC แบบ 10 บิตจะดีกว่าแบบ 8 บิต (ประมาณ 12dB)
การใช้ A-D แบบ 16 บิตจะดีกว่าในแง่ของ SQNR อย่างไรก็ตามมันมีราคาแพงกว่า และในหลาย ๆ แอพพลิเคชั่น ADC 10 บิตให้ SQNR ที่จำเป็นเพียงพอ
ตามกฎทั่วไปคุณต้องการให้จำนวนบิตใน coveter ของคุณเป็นไปตามที่ขั้นตอนการควอนตัมของคุณเป็นบิตหรือดังนั้นใต้ชั้นเสียง (อนาล็อก) ของระบบ
การใช้บิตจำนวนมากขึ้นและการมีขั้นตอนเชิงปริมาณเพิ่มเติมด้านล่างชั้นเสียงทำให้คุณปรับปรุงประสิทธิภาพเสียงโดยรวมเพียงเล็กน้อย แต่การใช้ซิลิคอนมากขึ้นทำให้เวลาในการแปลงของคุณนานขึ้นหรือต้องการตัวแปลงภายในของคุณให้ทำงานเร็วขึ้น
การใช้บิตน้อยลงและด้วยเหตุนี้การมีขั้นตอนเชิงปริมาณเหนือพื้นเสียงจึงไม่ดี หมายความว่าคุณกำลังสูญเสียประสิทธิภาพของวงจรอะนาล็อกและในบางกรณีมันสามารถสร้างข้อผิดพลาดอย่างเป็นระบบที่ไม่สามารถลบออกได้โดยการหาค่าเฉลี่ย
ความแตกต่างระหว่าง 8 บิตและ 16 บิตคือมาก อดีตจบลงด้วยขั้นตอนเชิงปริมาณที่มีขนาดใหญ่เกินไปแม้ในระบบที่มีประสิทธิภาพของสัญญาณรบกวนต่ำ ระบบหลังเสียระบบที่ไม่ได้ออกแบบอะนาล็อกอย่างระมัดระวัง ดังนั้นไมโครคอนโทรลเลอร์ที่น่าแปลกใจก็ปรากฏตัวขึ้นที่ใดที่หนึ่งระหว่างนั้น
โปรดทราบว่าผู้คนมักพูดถึง "เสียงเชิงปริมาณ" แต่สิ่งสำคัญคือต้องจำไว้ว่าแนวคิดของ "เสียงเชิงปริมาณ" เป็นรูปแบบที่เรียบง่ายของความเป็นจริงที่แบ่งย่อยในบางสถานการณ์
การใช้ ADC ที่ใช้กันมากที่สุดคือเนื้อหาในพื้นที่ประมวลผลเสียง (VoIP, CD เพลง ฯลฯ ) ดนตรีไม่ได้สนใจที่นี่เนื่องจากต้องใช้ 16 บิต แต่ VoIP เป็นสิ่งที่ขับเคลื่อนตลาด ADC ที่ต่ำกว่า VoIP มักจะใช้การคอมไพล์ซึ่งสร้างโค้ด PCM ที่บีบอัด 8 บิตจากสัญญาณอินพุต 12 บิต อินพุตไปยังขั้นตอนการบีบอัดจะต้องมีบิตมากกว่า - โดยปกติคือ 12 หรือบางครั้ง 10 อาจเพียงพอ (คุณสามารถปลอมสองบิตที่ต่ำที่สุด)
เป็นผลให้ความต้องการ ADC แบบ 8 บิตต่ำมาก แต่ ADC แบบบิตที่สูงกว่านั้นเป็นที่ต้องการสูงและมีราคาถูก Arduino อาจใช้ส่วนประกอบที่มีราคาถูกและแพร่หลาย