ใช้เคสสำหรับ ADC ภายนอก


9

Microcontrollers (uC) ส่วนใหญ่มี Analog to Digital Converter (ADC) เป็นส่วนหนึ่งของชุดอุปกรณ์ต่อพ่วงของพวกเขาซึ่งเป็นปรากฎการณ์เพราะมันรวมสององค์ประกอบเข้าด้วยกันในแพ็คเกจเดียว ADCs เหล่านี้มักจะทำการแมปด้วยเช่นกันซึ่งทำให้สามารถดึงข้อมูลได้อย่างรวดเร็วและง่ายดาย

แม้จะมีการรวมที่แน่นหนานี้คุณยังสามารถซื้อ ADC ภายนอกได้ ฉันเห็นหลายกรณีสำหรับสิ่งเหล่านี้:

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

ทั้งหมดนี้เป็นสิ่งที่ดีและดี แต่สิ่งที่ทำให้ฉันรู้สึกแปลก ๆ คือ ADC ภายนอกมักจะค่อนข้างแพงกว่าคู่ของพวกเขา แต่ยังมีฟังก์ชั่นที่เทียบเท่า ตัวอย่างเช่นคุณสามารถซื้อชิ้นส่วน EFM32Z ด้วย ADC ขนาด 12 บิต 1Msps (พร้อมการอ้างอิงภายใน) ประมาณ $ 1หรือคุณสามารถซื้อ ADC ขนาด 12 บิตเทียบเท่า 200 บิตต่อวินาทีที่ราคาประมาณ 3.50 (ความเร็วเดียวกัน (ish), จำนวนพลังงานที่เท่ากัน ฯลฯ ) ทำงานเดียวกัน (การดึงข้อมูล ADC)

คำถามจะกลายเป็น: มีเหตุผลที่น่าสนใจหรือไม่ที่วิศวกรจะให้ความสำคัญกับ ADC ภายนอกมากกว่า ADC ของ uC เมื่อผู้ใช้รายหลังสามารถใช้งานฟังก์ชันเดียวกันได้หรือไม่


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

คำตอบ:


12

หาก ADC ภายในของไมโครคอนโทรลเลอร์ของคุณทำงานตามที่คุณต้องการไม่เป็นไม่จำเป็นต้องใช้ ADC ภายนอก แต่นั่นไม่ใช่คนที่พวกเขาตั้งเป้าไว้

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

  1. คุณต้องการเทคโนโลยีการสุ่มตัวอย่างที่แตกต่างกัน - ตัวอย่างเช่น ADC ภายในคือ SAR แต่คุณต้องทำ Delta Sigma
  2. ADC ภายในเนื่องจากเป็นภายในและแชร์ดายเดียวกับ MCU หลักจะไม่มีเสียงรบกวนที่เหลือจาก MCU ที่เหลือทั้งหมด 100% ดังนั้นจึงเป็นไปได้ที่จะสร้างเสียงรบกวนต่ำพิเศษ
  3. ไมโครคอนโทรลเลอร์ / SoC / FPGA ที่คุณเลือกไม่มี ADC สองหลังมีแนวโน้มมากที่สุด - SoCs และ FPGA ทั่วไปส่วนใหญ่ไม่มี ADC ใด ๆ เลย ใช่คุณสามารถรับคนที่ทำ แต่หลายคนไม่ ดังนั้นคุณจึงเพิ่มภายนอก

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


ตอนนี้มันน่าสนใจ เมื่อพูดถึงเสียงแทนที่จะจ่ายเงินเพื่อรับ ADC ภายนอกจะได้ผลลัพธ์เดียวกันโดยการรับบิต uC ADC เชิงลึกที่สูงขึ้นและไม่สนใจบิตที่มีนัยสำคัญน้อยที่สุดของผลลัพธ์ตัวอย่าง บิตเพิ่มเติมไม่ใช่ปัจจัยกีดขวาง)
TRISAbits

3
การประมวลผลสัญญาณหลังความเป็นจริงสามารถช่วยได้เฉพาะเสียงรบกวนจากกระบวนการที่ไม่ขึ้นอยู่กับจังหวะเวลาตัวอย่าง (และทำให้เกิดเสียง "สุ่ม") เสียงรบกวนส่วนใหญ่ในระบบประมวลผลจะเป็นผลมาจากการเปลี่ยนแปลงของแหล่งจ่ายไฟและการโหลดภาคพื้นดินซึ่งค่อนข้างตรงกับกระบวนการสุ่มตัวอย่าง วิธีเดียวที่จะหลีกเลี่ยงได้คือให้ ADC ใช้รางจ่ายแยกเดี่ยวของตัวเอง โปรดทราบว่าไม่จำเป็นต้องมีการแยกแบบเต็มเนื่องจาก ADC จำนวนมากสามารถทนต่อ 100mV ได้ง่ายระหว่าง VDD / VSS อนาล็อกและดิจิตอล
supercat

9

อีกสองสามเหตุผลในการสนับสนุน ADC ภายนอก:

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

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

  3. แม้ว่า ADC ภายในจะมีความกว้างสิบสองบิต แต่โดยทั่วไปแล้วก็ไม่ได้หมายความว่าจะต้องอ่านค่าที่ถูกต้องในส่วนหนึ่งของ 4096 ADC ภายนอกทั่วไปมักจะมีคุณสมบัติที่ดีกว่าภายในหนึ่งแม้ว่าทั้งคู่จะมีความลึกของบิตที่โฆษณาเท่ากันก็ตาม

การรวม ADC เข้ากับไมโครคอนโทรลเลอร์เป็นเรื่องง่าย การบูรณาการADC ที่ดีนั้นยากกว่ามาก เดาซึ่งเป็นเรื่องธรรมดามากขึ้น


1
SAR ADC ได้รับผลกระทบเพียงเล็กน้อยจากการฉีดประจุเนื่องจากการเชื่อมต่ออาร์เรย์ตัวเก็บประจุแบบสุ่มตัวอย่างกับอินพุตนั้นจะรบกวนสิ่งที่วัดได้ หากแหล่งอินพุตไม่สามารถกู้คืนได้เร็วพอนี่จะทำให้เกิดข้อผิดพลาดในการวัด ความละเอียดที่มากขึ้นมักจะต้องใช้ความจุการสุ่มตัวอย่างภายในที่มากขึ้น ความละเอียดเดลต้าซิกมาขึ้นอยู่กับการขยายตัวนับดิจิตอลเท่านั้น (แม้ว่ารายละเอียด INL / DNL ความละเอียดสูงที่ดีนั้นไม่ได้เป็นเรื่องง่ายที่จะบรรลุ)
MarkU

@supercat: ฉันไม่เคยถือว่าแอมป์เป็นส่วนหนึ่งของการแปลง นี่เป็นการเปิดลู่ทางการสุ่มตัวอย่างวงจรที่น่าสนใจ
TRISAbits

2
@MarkU: ฉันสังเกตเห็นปัญหาการอัดประจุในบางวงจร อยากรู้อยากเห็นผู้แปลงบางคนพยายามที่จะคิดค่าเข้ากับค่าตัวอย่างก่อนหน้านี้ (จากที่ใดก็ตามที่ถูกสุ่มตัวอย่างครั้งสุดท้าย) บางคนพยายามที่จะคิดค่ามันไปที่ศูนย์และอย่างน้อยหนึ่งดูเหมือนจะสุ่ม ("สุ่ม") หรือแรงดันไฟฟ้าต่ำลงซึ่งฉันพบว่าค่อนข้างน่ารำคาญ ฉันไม่เข้าใจว่าทำไมส่วนหนึ่งจะทำหลัง แม้ว่าการชาร์จเข้าหาบางสิ่งการชาร์จไปยังศูนย์อย่างสม่ำเสมอจะดีกว่าการชาร์จเข้าสู่ค่า "สุ่ม" บางอย่าง
supercat

4

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

ในกรณีที่ ADC ไม่มีความละเอียดความแม่นยำหรือความเร็วสูง แต่มีราคาพรีเมี่ยมนี่อาจเป็นเหตุผล

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

ตอนนี้ถ้าคุณเริ่มจากศูนย์และไมโครคอนโทรลเลอร์ที่คุณเลือกมีช่อง ADC เพียงพอที่จะตอบสนองความต้องการของคุณ


2

ฉันรู้ว่านี่เป็นคำถามที่เก่ามาก แต่เป็นคำถามที่เราถกเถียงกันบ่อยครั้ง

คุณขวาก็จะมีความผิดปกติในการเลือก ADC ภายนอกหากรุ่นภายนอกว่าทำงานได้เทียบเท่า อย่างไรก็ตามจากประสบการณ์ของฉัน micros ราคาถูกมักจะมี ADC ที่มีหมัดสวยพร้อมดริฟท์อุณหภูมิจำนวนบิตต่ำ (10 - 12 บิต) และเสียงรบกวนจาก VCC (+/- 20mV ในบางกรณี) ... แม้ว่าการผกผันอาจเป็นจริง .. คุณสามารถปรับปรุง S / N หากคุณมีตัวอย่างมากเกินไปและมีเสียงรบกวน ในกิจกรรมการพัฒนาผลิตภัณฑ์ของเรามันค่อนข้างยากที่จะประเมินการเลือก MCU ของเราตามคุณภาพของ ADC ที่มีอยู่ภายใน โดยทั่วไปแล้วจะเป็นเรื่องของ toolchain, ค่าใช้จ่าย, เฟิร์มแวร์ที่ยังหลงเหลืออยู่ ฯลฯ โดยทั่วไปแล้ว ADC ภายในจะ จำกัด อยู่ที่งานที่ไม่สำคัญเช่นการอ่านแรงดันไฟฟ้าของแบตเตอรี่

ด้วย micros ต่าง ๆ อาจมีปัญหากับตัวจับเวลาที่ใช้ร่วมกันซึ่งจำเป็นต้องมีการผูกขาดสำหรับเวลาการสุ่มตัวอย่างอย่างรวดเร็ว แต่รบกวนสิ่งอื่น ๆ ใน MCU (พอร์ตอนุกรมซอฟต์แวร์ ISR ฯลฯ ) เมื่อพวกเขาผูกขาดสำหรับ ADC

นอกจากนี้ VREF คืออะไร หากคุณใช้ VCC เป็นข้อมูลอ้างอิงในเฟิร์มแวร์แม้ว่าคุณจะปรับเทียบกับ VCC "ของจริง" ค่าดังกล่าวอาจผันผวนอย่างมากในระหว่างการดำเนินการ หากคุณมีอุปกรณ์ที่ใช้กระแสไฟสูง (วิทยุ, wifi, MCU ฯลฯ ) ที่มีการใช้งานกระแสไฟฟ้าขนาดใหญ่ชั่วคราว VCC อาจลดลงถึง 4.8 โวลต์ในระหว่างการส่งสัญญาณและหากตัวอย่างของคุณเกิดขึ้นในช่วงหน้าต่างนั้น ADC อ่านค่าแรงดันไฟฟ้าด้วย ADC_VAL / 1023 * 5.0 - คุณสูญเสียความแม่นยำถึง 200mV หรือหากคุณมีโหมดพลังงานที่แตกต่างกัน (USB, Wall wart, แบตเตอรี่) - VCC ที่ MCU สามารถเปลี่ยนแปลงได้ (โดยเฉพาะกับ USB) ADC ภายนอก (แม้จะมีจำนวนบิตเท่ากัน) สามารถให้ vref ภายในที่มั่นคงของหินภายใต้เงื่อนไข VCC ที่ผันผวน

การแก้ปัญหาค่อนข้างสำคัญ ฉันคิดว่ามีการใช้งานบางอย่าง (ในโลกแห่งความเป็นจริง) สำหรับความละเอียด 10-12 บิต แต่สำหรับแอปพลิเคชันในโลกแห่งความจริง (การตรวจจับก๊าซการวัดอะคูสติกการวัด accelerometer การวัดอุณหภูมิที่แม่นยำ ฯลฯ ) 16 บิต ความละเอียดขั้นต่ำเพื่อให้ได้สัญญาณเพียงพอต่อสัญญาณรบกวนและความละเอียด แม้แต่ MCU 32 บิตที่ดีมากเช่น SAMD ของ Atmel นั้น จำกัด อยู่ที่ ADC ภายใน 12 บิต

Clock jitter เป็นปัญหาและยังมีความไม่แน่นอนอยู่บ้างเมื่อต้องใช้ไมโคร 8 บิตอื่น ๆ เพื่อให้อ่านได้กว้าง 12 บิตและต้องการวงจรนาฬิกาอย่างน้อย 2 รอบเพื่อจัดการค่า 12 บิตซึ่งอาจไม่เป็นจริง ด้วย ADC ภายนอก (เนื่องจากสามารถมีออสซิลเลเตอร์ภายใน)

นอกจากนี้ยังมีบางครั้งที่ความใกล้ชิดทางกายภาพของตัวแปลงสัญญาณและการแยกตัวจาก MCU เป็นสิ่งที่สำคัญ ทรานสดิวเซอร์ที่มีความไวสูงบางตัวต้องการพลังงานปรับอากาศของตัวเองระนาบกราวด์ที่แยกได้และแอมป์สับละเอียดที่ไวต่อแสงมาก ๆ พร้อมพาสซีฟ 0.01%

บางครั้งมีเหตุผลที่น่าสนใจสำหรับการใช้ ADC ภายใน DMA เป็นเหตุผลหนึ่งที่ ... อัตราการสุ่มตัวอย่างเป็นอีกหนึ่ง ความง่ายในการ oversampling เป็นอีกเรื่องหนึ่ง การเชื่อมต่อ ADC ภายนอกด้วยอัตราการส่งข้อมูลที่สูงสามารถทำให้หมุด I / O แบบมัลติเพล็กซ์มีค่าจำนวนมากและทำให้การออกแบบมีความซับซ้อนมากขึ้น นอกจากนี้ ADC จำนวนมากที่เราใช้นั้นเป็นแบบ I2C ดังนั้นอัตราการสุ่มตัวอย่างจึงถูก จำกัด ด้วยความเร็วบัส I2C แม้จะอยู่ที่ 1mbits / วินาทีการอ่านแบบ 16 บิตจะใช้เวลานานมาก


นี่คือความเข้าใจที่ยอดเยี่ยม! เมื่อหลายปีผ่านไป (และประสบการณ์ของฉันก็เพิ่มขึ้น) ฉันจะต้องเห็นด้วย: ADC ของ MCU ภายในอาจเป็นหมัดค่อนข้าง
TRISAbits
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.