เหตุใดไมโครคอนโทรลเลอร์จึงไม่มี DAC บนชิป


44

ในคำตอบนี้ฉันอ่านว่าไมโครคอนโทรลเลอร์มักจะไม่มี DAC ในขณะที่พวกเขามี ADC ทำไมถึงเป็นอย่างนั้น?

แก้ไข
ฉันขอขอบคุณที่การรวมตัวต้านทานเช่นใน R-2R DAC มีราคาแพงในแง่ของอสังหาริมทรัพย์ (ขอบคุณไมค์สำหรับคำตอบของคุณ) แต่ฉันคิดว่าการสลับ DACs ในปัจจุบันสามารถทำได้น้อยมากเพราะพวกเขาต้องการทรานซิสเตอร์เพียงเล็กน้อย


+1 นั่นเป็นคำถามที่ดีจริงๆ ฉันก็สงสัยเหมือนกันเช่นกัน
sybreon

ฉันต้องวัดแรงดัน 2 ตัวด้วย A / D's จากนั้นสร้างสัญญาณ 2 D / A พร้อมกัน นี่คือการควบคุมกระแสผ่าน 2 ทรานซิสเตอร์ในเวลาเดียวกัน เสียงและความไม่เป็นเชิงเส้นของวิธีการกรองแบบเสาเดี่ยวหรือสองชั้นเป็นปัญหาที่แท้จริง บางครั้งคุณต้องการ "กลับไปเป็นแบบอะนาล็อก" ดูเหมือนว่าโซลูชัน Cypress สำหรับฉัน เหตุผลทั้งหมดที่จะไปกับไมโครในสถานที่แรกคือการลดจำนวนชิ้นส่วน การเพิ่มสิ่งต่าง ๆ เช่นเรือของ D / A เอาชนะได้ที่ประตู

คำตอบ:


30

ก่อนอื่นไมโครคอนโทรลเลอร์บางตัวมีตัวแปลง D / A อย่างไรก็ตามสิ่งเหล่านี้พบได้น้อยกว่าตัวแปลง A / D

นอกเหนือจากปัญหาทางเทคนิคเหตุผลหลักคือความต้องการของตลาด ลองคิดดู แอปพลิเคชันประเภทใดที่ต้องใช้ D / A จริง ค่อนข้างยากที่จะต้องการไมโครในการผลิตสัญญาณอะนาล็อกความเร็วสูงพอสมควรยกเว้นว่าจุดนั้นเป็นการประมวลผลสัญญาณ ตลาดหลักสำหรับเรื่องนั้นคือเสียงและต้องการความละเอียดมากกว่าที่คุณสามารถสร้างด้วยกระบวนการเดียวกับที่ใช้สร้างไมโครคอนโทรลเลอร์แบบดิจิทัล ดังนั้นเสียงจะใช้ A / Ds และ D / As ภายนอก DSP ที่มีไว้สำหรับแอปพลิเคชันดังกล่าวมีฮาร์ดแวร์การสื่อสารในตัวเพื่อพูดคุยกับอุปกรณ์ภายนอกเช่น I2S

มิฉะนั้นสำหรับแอปพลิเคชันควบคุมทั่วไปกลยุทธ์คือการแปลงเป็นดิจิทัลตั้งแต่เริ่มต้นกระบวนการจากนั้นจึงทำให้สิ่งต่าง ๆ เป็นดิจิทัล สิ่งนี้โต้แย้งสำหรับ A / D แต่ D / As ไร้ประโยชน์เนื่องจากคุณไม่ต้องการกลับไปเป็นแบบอะนาล็อก

สิ่งที่ไมโครคอนโทรลเลอร์ควบคุมมักถูกควบคุมด้วย PWM (PulseWidth Modulation) การสลับแหล่งจ่ายไฟและเสียงคลาส D โดยปกติทำงานบนพัลส์ การควบคุมมอเตอร์การควบคุมโซลินอยด์ ฯลฯ ทำด้วยพัลส์อย่างมีประสิทธิภาพ คุณต้องการให้องค์ประกอบ Pass ไม่สามารถเปิดหรือปิดได้เต็มที่เนื่องจากสวิตช์ในอุดมคติไม่สามารถกระจายพลังงานใด ๆ ในระบบขนาดใหญ่หรือที่กำลังไฟฟ้าเข้าน้อยหรือมีราคาแพง (เช่นการทำงานของแบตเตอรี่) ประสิทธิภาพของระบบสวิตชิ่งเป็นสิ่งสำคัญ ในหลายกรณีปานกลางพลังงานทั้งหมดที่ใช้ไม่ใช่ปัญหา แต่กำจัดพลังงานที่สิ้นเปลืองเนื่องจากความร้อน วงจรสวิตชิ่งที่กระจาย 1 W แทน 10 W อาจมีค่าใช้จ่ายเพิ่มขึ้นเล็กน้อยในชิ้นส่วนอิเล็กทรอนิกส์มากกว่าวงจรเชิงเส้น 10 W แต่มีราคาถูกกว่ามากเพราะคุณไม่ต้องการแผ่นระบายความร้อนที่มีขนาดและน้ำหนักที่เกี่ยวข้อง

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

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


นอกเหนือจากเสียงแล้ว Arbitrary Function Generator (ARB) เป็นแอพพลิเคชั่นเดียวที่ฉันนึกได้ว่าคุณไม่สามารถใช้ PWM ได้
stevenvh

จุดเดียวที่ DAC ดูเหมือนจะมีประโยชน์กับฉันเมื่อต้องการความละเอียดสูงและความเร็วสูง PWM มีความละเอียด จำกัด เนื่องจากเป็นตัวนับหรือตัวจับเวลาและด้วยความเร็วการอัปเดตที่แน่นอนจึงต้องมีการอ้างอิงความเร็วสูงมาก
ฮันส์

ที่อื่น ๆ ที่มีประโยชน์คือเมื่อคุณต้องการแรงดันไฟฟ้าสำหรับเซ็นเซอร์อะนาล็อกแบบสุ่มออฟเซ็ท
Rocketmagnet

1
@Rocket: การลดทริมเป็นแบนด์วิดท์ต่ำมากดังนั้นการกรอง low pass ที่ผ่านการกรองจึงทำงานได้ดีสำหรับพวกเขา ไม่จำเป็นต้องมีชิ้นส่วนพิเศษมากนักเนื่องจากคุณต้องการเปลี่ยนและลดทอนช่วงเต็มรูปแบบสำหรับการปรับการตัดขอบ
Olin Lathrop

1
ฉันไม่แน่ใจว่าตัวแทนของผู้ผลิตรายอื่นอย่างไร แต่ประมาณ 10% ของ PIC havec มี D / A อยู่บนกระดานฉันเชื่อว่าพวกเขาทั้งหมด 10 บิต 16 รูป (ส่วนใหญ่อยู่ในตระกูล PIC24 และ dsPIC33 แต่คู่ PIC16s) มีสอง D / A
tcrosley

12

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


6

อีกสองประเด็นที่ยังไม่ได้กล่าวถึง:

  • มีหลายกรณีที่ชิ้นส่วนจะต้องสามารถวัดแรงดันไฟฟ้าบนพินได้หลายตัว แต่ไม่พร้อมกัน เป็นไปได้ที่จะใช้ ADC เดียวพร้อมกับ pass-gate ต่อขาเพื่อทำสิ่งนี้ ในทางตรงกันข้ามชิ้นส่วนส่วนใหญ่ที่ต้องการ DAC หลายเอาต์พุตจะต้องการพร้อมกัน

  • วงจรที่เชื่อมต่อ ADC กับโลกภายนอกนั้นจะต้องสามารถถ่ายโอนกระแสได้เพียงพอที่จะชาร์จหรือปล่อยประจุใด ๆ ที่มีเจตนาหรือกาฝากบนวงจรอินพุตของ ADC ไม่เพียง แต่จะมีกระแสไฟฟ้าเพียงเล็กน้อยเท่านั้น แต่ยังเป็นอิสระจากแอปพลิเคชัน พื้นที่พิเศษที่ต้องใช้ในการจัดการกับข้อกำหนดการจัดการกระแส "กรณีที่เลวร้ายที่สุด" จะเล็กน้อยเมื่อเทียบกับสิ่งที่จำเป็นสำหรับบางสิ่งที่สามารถทำงานได้ในสภาพแวดล้อมที่เหมาะสม ในทางตรงกันข้ามแอพพลิเคชั่น DAC ที่แตกต่างกันจะมีความต้องการการจัดหาหรือการจมในปัจจุบันที่แตกต่างกันและปริมาณของพื้นที่ชิปที่ต้องใช้ในการจัดการกับความต้องการเหล่านั้นจะแตกต่างกันอย่างมากมาย การใช้พื้นที่ชิป 20% ใน DAC สองตัวที่เหมาะสมกับความต้องการของแอปพลิเคชันจะสมเหตุสมผล

บังเอิญเทคนิคหนึ่งที่ฉันไม่เคยเห็นมาก่อนก็คือการรวม DAC เข้ากับ PWM เมื่อใช้ R / 2R DAC เป็นเรื่องง่ายที่จะเพิ่มอินพุตพิเศษที่มีน้ำหนักเท่ากับ LSB (เช่น DAC 3 + 1-input) จะมีน้ำหนัก 1/2, 1/4, 1/8 และ 1/8) การใช้ DAC 8 บิตและเพิ่มสัญญาณ PWM อาจให้ผลลัพธ์ 12 บิตพร้อมเสียง 1/128 ของ PWM 12 บิต แต่ในราคาที่ถูกกว่าการใช้ DAC 12 บิตที่มีความเป็นเชิงเส้นที่เทียบเคียงกัน


1

ตามที่แลงกล่าวว่า MCU บางตัวมี DAC ดู Cypress PSoC3 และ PSoC5 ประกอบด้วย DAC มากถึงสองชุด สิ่งเหล่านี้มีประโยชน์อย่างมากในแอพพลิเคชั่นการตรวจจับแบบอะนาล็อกซึ่งต้องใช้แรงดันไฟฟ้าตัดก่อนการขยายสัญญาณ

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

มันยอดเยี่ยมมากที่สามารถมี ADC, DAC, Opamps และ MCU ทั้งหมดในชิปตัวเดียว


1
เกี่ยวกับการใช้งาน DAC พร้อมเซ็นเซอร์ความดันซึ่งคุณใช้แรงดันออฟเซ็ต แน่นอนฉันไม่ทราบรายละเอียดของวงจรของคุณ แต่จะไม่ง่ายกว่าหรือถ้าจะบันทึกออฟเซ็ตในหน่วยความจำ uC และใช้การแก้ไขแบบดิจิทัลในเฟิร์มแวร์?
Nick Alexeev

@NickAlexeevit อาจไม่ใช่สิ่งที่ดีที่สุดเนื่องจากการทำเช่นนั้นทำให้คุณสูญเสียช่วงของ ADC ไปเล็กน้อยทำให้ความแม่นยำลดลง
clabacchio

เผง หากคุณต้องการใช้แอมพลิฟายเออร์ (x50) คุณจำเป็นต้องมีแรงดันต่างต่ำสุดที่ศูนย์ความดัน
Rocketmagnet

0

การทบทวนอีกครั้งในปี 2560 ขณะนี้มีตระกูลไมโครคอนโทรลเลอร์จำนวนมากที่มี DACs (นอกเหนือจาก Cypress PSOC และ PIC ที่แสดงไว้ด้านบน):

  • Analog Devices ADuC70xx
  • Atmel AVR XMEGA (บางส่วน)
  • Infineon XMC4100 / XMC4200
  • ซีรี่ส์ NXP Kinetis, อื่น ๆ
  • Renesas H8, R8, อื่น ๆ
  • Silicon Labs
  • STMicroelectronics ในตระกูล STM32 บางรุ่น
  • TI, ซีรี่ส์ MSP430 บางรุ่น, และซีรีย์ C2000 บางรุ่น
  • Zilog (พร้อมโปรเซสเซอร์ Z8)

การค้นหาดัชนีผลิตภัณฑ์ Digikey > วงจรรวม (ICs)> แบบฝัง - ไมโครคอนโทรลเลอร์ให้รายการโดยมีหนึ่งในคอลัมน์ชื่อ "ตัวแปลงข้อมูล"

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