วิธีเลือกและใช้ตัวแปลงสัญญาณเสียงและไมโครคอนโทรลเลอร์สำหรับไฟล์เสียงตอบรับแบบฝัง
Contributed By DigiKey's North American Editors
2020-12-02
มีความต้องการที่เพิ่มมากขึ้นในระบบฝังตัวเพื่อให้เสียงที่มีความเที่ยงตรงสูงแทน กริ่งสำหรับความคิดเห็นของผู้ใช้รวมถึง สัญญาณเตือน และการแจ้งเตือน แม้ว่าที่ผ่านมาเสียงบี๊บและเสียงกริ่งจะมีประสิทธิภาพ แต่ผู้ใช้คาดหวังว่าเสียงขั้นสูงจะเกิดขึ้นได้จากการเล่นเสียงจากรูปแบบไฟล์เช่น MP3 เท่านั้น ปัญหาคือการเล่นเสียงอาจดูน่ากลัวและเพิ่มต้นทุนและความซับซ้อนเพิ่มเติมให้กับระบบ สัญชาตญาณแรกคือการค้นหาไมโครคอนโทรลเลอร์ที่สามารถเล่น MP3 ได้ แต่สิ่งนี้มักจะเพิ่มเงินหลายดอลลาร์ให้กับรายการวัสดุ (BOM) และความซับซ้อนอย่างมากให้กับซอฟต์แวร์ที่ฝังไว้
โซลูชันหนึ่งที่ดีอย่างยิ่งในการสร้างสมดุลระหว่างต้นทุนเพิ่มเติมและความซับซ้อนของซอฟต์แวร์คือการใช้ตัวแปลงสัญญาณเสียง ตัวแปลงสัญญาณเสียงไม่เพียงแต่รับสตรีมข้อมูลเสียงจากไมโครคอนโทรลเลอร์เท่านั้น แต่ยังมีคุณสมบัติหลายอย่างที่ช่วยให้นักพัฒนาปรับแต่งระบบการเล่นเสียงอย่างรอบคอบเพื่อปรับปรุงคุณภาพของเสียงที่เล่นโดยระบบ
บทความนี้จะกล่าวถึงบทบาทของตัวแปลงสัญญาณเสียงลักษณะสำคัญที่นักพัฒนาควรพิจารณาเมื่อทำการเลือกและวิธีการนำไปใช้อย่างมีประสิทธิภาพ แนวทางแก้ไขจากAKM Semiconductor, Texas Instruments, และMaxim Integratedจะได้รับการแนะนำและใช้เป็นตัวอย่างที่นี่แม้ว่าคนอื่น ๆ ก็มีให้บริการเช่นกัน จะสรุปเป็นกลเม็ดเคล็ดลับในการเร่งการพัฒนาแอปพลิเคชันการเล่นเสียงโดยใช้ตัวแปลงสัญญาณในขณะที่ลดต้นทุนระบบ
ตัวแปลงสัญญาณเสียงคืออะไร?
ตัวแปลงสัญญาณเสียงเป็นส่วนประกอบฮาร์ดแวร์ที่สามารถเข้ารหัสหรือถอดรหัสสตรีมข้อมูลดิจิทัลที่มีข้อมูลเสียง1 ตัวแปลงสัญญาณเสียงมีประโยชน์เนื่องจากช่วยให้การประมวลผลเสียงออกจากไมโครคอนโทรลเลอร์ได้ สิ่งนี้สามารถลดความซับซ้อนของซอฟต์แวร์ลงได้อย่างมากและยังช่วยให้สามารถใช้ไมโครคอนโทรลเลอร์ที่มีราคาไม่แพงและมีความสามารถน้อยกว่าสำหรับแอปพลิเคชัน
ตัวแปลงสัญญาณเสียงทั่วไปจะมีบล็อกการทำงานหลายอย่าง:
- I2S อินเทอร์เฟซเพื่อส่งหรือรับข้อมูลเสียงดิจิทัลที่เข้ารหัส
- I2อินเทอร์เฟซ C เพื่อกำหนดค่าและอ่านการลงทะเบียนควบคุมของตัวแปลงสัญญาณเสียง
- อินพุตไมโครโฟนที่เชื่อมต่อกับตัวแปลงอนาล็อกเป็นดิจิตอล (ADC)
- ช่องสัญญาณเสียงอย่างน้อยหนึ่งช่องเช่นเอาต์พุตลำโพง แต่ส่วนใหญ่ยังมีช่องสัญญาณออกและอาจมีเอาต์พุตลำโพงหลายช่องสำหรับการเล่นสเตอริโอ
- บล็อกดิจิทัลที่มีตัวกรองความถี่สูง, ความถี่ต่ำ, ร่องบากและอีควอไลเซอร์เพื่อปรับแต่งการเล่นและบันทึกเสียง
ตัวอย่างตัวแปลงสัญญาณเสียงที่ค่อนข้างได้รับความนิยมเนื่องจากต้นทุนต่ำและความสามารถด้านเสียงคือไฟล์AK4637EN ตัวแปลงสัญญาณเสียง 24 บิตจาก AKM Semiconductor (รูปที่ 1) AK4637EN มีคุณสมบัติทั้งหมดนี้นอกเหนือจากอินพุตเครื่องกำเนิดเสียงบี๊บที่สามารถใช้เพื่อสร้างเสียงบี๊บโดยใช้สัญญาณการมอดูเลตความกว้างพัลส์ (PWM) ที่ความถี่ที่ต้องการ
รูปที่ 1: AK4637EN เป็นตัวแปลงสัญญาณเสียงที่มีเอาต์พุตลำโพงโมโนที่มีความสามารถในการเล่นและบันทึกเสียง นอกจากนี้ยังมีบล็อกเสียงภายในที่สามารถใช้เพื่อกรองเสียงขาเข้าและขาออกเพื่อปรับปรุงความเที่ยงตรงของเสียง (แหล่งรูปภาพ: AKM Semiconductor)
นักพัฒนาจะพบว่าความแตกต่างหลักสำหรับตัวแปลงสัญญาณเสียงจะเป็นไม่ว่าจะเป็นเอาต์พุตเสียงโมโนหรือสเตอริโอรวมถึงความสามารถในการบล็อกดิจิทัล ตัวอย่างเช่น AK4637EN มีฟิลเตอร์ความถี่สูงตัวกรองความถี่ต่ำอีควอไลเซอร์สี่แบนด์คุณสมบัติช่องปรับระดับอัตโนมัติและอีควอไลเซอร์แบนด์เดียว หลังสามารถใช้เป็นวงจรตัดแถบความถี่ วิธีที่นักพัฒนาตั้งค่าตัวกรองดิจิทัลเหล่านี้สามารถส่งผลกระทบอย่างมากต่อการทำงานของระบบ
ในบางครั้งตัวแปลงสัญญาณเสียงสามารถทำให้นักพัฒนาที่ยังไม่คุ้นเคยกับการเล่นเสียงกลัว ตัวอย่างเช่นในขณะที่ AK4637EN เป็นตัวแปลงสัญญาณเสียงแบบธรรมดาการตรวจสอบแผ่นข้อมูลอย่างรวดเร็วแสดงให้เห็นว่ามีการลงทะเบียนที่กำหนดค่าได้ 64 รายการ นั่นอาจดูเหมือนมากในตอนแรก แต่การลงทะเบียนเหล่านั้นส่วนใหญ่จะใช้เพื่อตั้งค่าสัมประสิทธิ์ตัวกรองสำหรับตัวกรองดิจิทัลต่าง ๆ ที่มีอยู่ มีเพียงไม่กี่คนที่จำเป็นต้องใช้เพื่อให้ระบบส่งสัญญาณเสียงออกมาอย่างถูกต้องทำให้การพัฒนาไดรเวอร์สำหรับตัวแปลงสัญญาณเสียงนั้นง่ายกว่าที่มือใหม่จะคิดได้
วิธีเลือกตัวแปลงสัญญาณเสียง
หนึ่งในตัวขับเคลื่อนสำคัญในการเลือกสิ่งใด ๆ ในการพัฒนาผลิตภัณฑ์คือต้นทุนและตัวแปลงสัญญาณเสียงก็ไม่แตกต่างกัน อย่างไรก็ตามสิ่งสำคัญคือต้องจำไว้ว่านักพัฒนาจะได้รับสิ่งที่จ่ายไปดังนั้นเมื่อพูดถึงเรื่องเสียงทีมงานต้องชั่งน้ำหนักข้อกำหนดในการออกแบบอย่างรอบคอบเทียบกับพารามิเตอร์หลักของโซลูชัน
ข้อพิจารณาประการแรกคือเอาต์พุตที่ต้องการจากตัวแปลงสัญญาณเสียง มีหลายทางเลือกที่แตกต่างกัน ตัวอย่างเช่น AK4637EN มีเอาต์พุตไลน์และเอาต์พุตลำโพงโมโน มีตัวแปลงสัญญาณอื่น ๆ เช่น Texas InstrumentsTLV320AIC3110IRHBRตัวแปลงสัญญาณเสียงสเตอริโอที่สามารถขับลำโพงสองตัวที่ 1.29 วัตต์ (รูปที่ 2)
รูปที่ 2: TI TLV320AIC3110IRHBR เป็นตัวแปลงสัญญาณเสียงที่มีเอาต์พุตสเตอริโอและการขยายสัญญาณนอกเหนือจากอินพุตไมโครโฟน ตัวแปลงสัญญาณสามารถขับ 1.29 วัตต์จากแอมพลิฟายเออร์ภายในและมีบล็อคเสียงดิจิตอลที่ตั้งโปรแกรมได้ (แหล่งรูปภาพ: Texas Instruments)
ตัวแปลงสัญญาณเสียงอื่น ๆ เช่น Maxim IntegratedMAX9867 ได้รับการออกแบบมาเพื่อขับคู่หูฟังเท่านั้น (รูปที่ 3) MAX9867 มี I2S และ I2อินเทอร์เฟซดิจิตอล C แต่ยังมีอินพุตไมโครโฟนสเตอริโอและสองบรรทัดที่สามารถเลือกแบบดิจิทัลได้
รูปที่ 3: ตัวแปลงสัญญาณเสียง Maxim Integrated MAX9867 สามารถขับหูฟังสเตอริโอและเลือกระหว่างอินพุตดิจิตอลไมโครโฟนและสาย (แหล่งที่มาภาพ: Maxim Integrated)
การตัดสินใจระหว่างวิธีแก้ปัญหาทั้งสามนี้ว่าประเภทเอาต์พุตจะเป็นอย่างไร (หรือแม้แต่อินพุต) ถือเป็นการตัดสินใจขั้นต้นที่สำคัญ
นักพัฒนายังต้องพิจารณาถึงสิ่งที่พวกเขาจะขับเคลื่อน ตัวแปลงสัญญาณเสียงจะเป็นหูฟังขับโดยตรงลำโพงหนึ่งตัวหรือลำโพงคู่หนึ่งตัวและคะแนนเอาต์พุตจะเป็นอย่างไร? หากระบบจะขับลำโพงขนาด 5 วัตต์จะมีตัวแปลงสัญญาณสำหรับระบบฝังตัวไม่มากนักที่จะทำเช่นนั้น แต่นักพัฒนาอาจต้องการเลือกบรรทัดออกและใช้ไฟล์Class-D เครื่องขยายเสียงเพื่อขับลำโพงโดยตรง ช่วยประหยัดค่าใช้จ่ายในขณะเดียวกันก็ให้ความยืดหยุ่นในการออกแบบ
การพิจารณาขั้นสุดท้ายสองประการคือความสามารถในการกำหนดเส้นทางภายในและการกรองแบบดิจิทัล นี่คือจุดที่กำหนดความแตกต่างที่แท้จริงและความแตกต่างของต้นทุนสำหรับตัวแปลงสัญญาณเสียง ตัวอย่างเช่น TLV320AIC311IRHBR มีความสามารถในการลดเสียงป๊อปและซอฟต์สตาร์ทเพื่อลดการแตกของลำโพงและช่วยให้สามารถเปลี่ยนไปใช้การเล่นเสียงได้อย่างราบรื่น นอกจากนี้ยังมีมิกเซอร์ภายในสำหรับแต่ละช่องสัญญาณเอาท์พุตและการควบคุมระดับเสียงแบบดิจิตอล
ขึ้นอยู่กับผู้พัฒนาที่จะต้องปรับสมดุลความต้องการของพวกเขาอย่างรอบคอบจากตัวแปลงสัญญาณเสียงกับ BOM และจำนวนเนื้อที่บอร์ดที่จะใช้โดยวงจร
ระบบการเล่นเสียง
เมื่อทำงานกับตัวแปลงสัญญาณเสียงสิ่งสำคัญคือต้องตระหนักว่ามีบล็อกที่แตกต่างกันมากมายนอกตัวแปลงสัญญาณเสียงที่จำเป็นเพื่อให้การเล่นเสียงประสบความสำเร็จ บล็อกที่แน่นอนจะแตกต่างกันเล็กน้อยขึ้นอยู่กับการใช้งานและวิธีการที่ตัดสินใจสำหรับการเล่น แต่แผนภาพทั่วไปจะแสดงในรูปที่ 4
รูปที่ 4: แผนภาพบล็อกการเชื่อมต่อทั่วไปสำหรับระบบการเล่นเสียงในแอปพลิเคชันแบบฝังทั่วไปแสดงให้เห็นว่าจำเป็นต้องมีพื้นที่จัดเก็บสำหรับไฟล์เสียงซึ่งอาจอยู่ในไมโครคอนโทรลเลอร์หรือในหน่วยความจำภายนอก (แหล่งรูปภาพ: Beningo Embedded Group)
มีหลายประเด็นในแผนภาพนี้ที่ควรค่าแก่การพูดคุย ขั้นแรกต้องมีวิธีการบางอย่างที่ใช้ในการจัดเก็บไฟล์เล่นเสียง มีสองตัวเลือกสำหรับสิ่งนี้ จัดเก็บไฟล์ไว้ภายในหน่วยความจำแฟลชไมโครคอนโทรลเลอร์หรือเก็บไว้ภายนอกในหน่วยความจำแฟลช ตัวเลือกจะขึ้นอยู่กับขนาดของไฟล์เสียงและขนาดของหน่วยความจำแฟลชภายในบนไมโครคอนโทรลเลอร์
นักพัฒนายังต้องพิจารณาว่ารูปแบบการเล่นเสียงจะเป็นอย่างไร ที่พบบ่อยที่สุดคือการใช้ MP3 ในกรณีนี้ไมโครคอนโทรลเลอร์ที่เลือกจำเป็นต้องมีกองซอฟต์แวร์ที่รองรับการถอดรหัส MP3 สิ่งนี้ช่วยให้สามารถเปิดไฟล์ MP3 จากนั้นผลักโดยใช้ตัวควบคุมการเข้าถึงหน่วยความจำแบบไดนามิก (DMA) ผ่านทาง I2S อินเตอร์เฟซ แม้แต่ I2สามารถกำหนดค่าพอร์ต S สำหรับ master/slave และโหมดอื่น ๆ ได้หลายโหมดดังนั้นจึงจำเป็นต้องได้รับการตรวจสอบอย่างรอบคอบเพื่อให้แน่ใจว่าข้อมูลถูกถ่ายโอนไปยังตัวแปลงสัญญาณในอัตราที่ถูกต้อง
ดังที่ได้กล่าวไว้ก่อนหน้านี้อาจจำเป็นต้องใช้เครื่องขยายเสียงภายนอกหรือไม่ก็ได้ขึ้นอยู่กับการใช้งาน ตัวแปลงสัญญาณทั่วไปจะให้เอาต์พุตประมาณ 1 ถึง 1.5 วัตต์ซึ่งมีประโยชน์ในการขับลำโพงขนาดเล็ก ในการขับลำโพงขนาด 3 วัตต์ขึ้นไปจำเป็นต้องใช้เครื่องขยายเสียงภายนอก อีกครั้งที่ใช้กันอย่างแพร่หลายคือ Class-D แอมพลิฟายเออร์ไม่จำเป็นต้องได้รับตัวแปรเช่นกัน ตัวแปลงสัญญาณเสียงสามารถปรับการควบคุมระดับเสียงแบบดิจิทัลเพื่อให้กำลังขับที่หลากหลาย
พื้นที่หนึ่งที่มักถูกมองข้ามคือความจุจำนวนมาก เมื่อเล่นเสียงอาจดึงรางปลั๊กไฟได้มาก ถ้าหากมีความจุไม่เต็มคุณภาพของเกมอาจได้รับผลกระทบอย่างมากและอาจเสียแหลมพร้อมกับเสียงที่ไม่ต้องการอื่น ๆ อีกมากมาย สิ่งนี้สามารถตรวจพบได้โดยการตรวจสอบรางจ่ายไฟอย่างระมัดระวังในระหว่างการทดสอบ ไม่ใช่ความคิดที่ไม่ดีในระหว่างการพัฒนาบอร์ดพีซีที่จะทิ้งรอยเท้าเพิ่มเติมไว้บนบอร์ดเพื่อให้สามารถลองใช้ค่าความจุที่แตกต่างกันเพื่อปรับแต่งวงจรเอาท์พุตได้
คำแนะนำและคำแนะนำในการเลือกและใช้ตัวแปลงสัญญาณเสียง
ตัวแปลงสัญญาณเสียงสามารถลดความซับซ้อนของซอฟต์แวร์ที่ฝังไว้ได้อย่างมากและให้แอปพลิเคชันที่มีคุณภาพเสียงที่ดีเยี่ยม ตัวแปลงสัญญาณเสียงอาจเป็นเรื่องยุ่งยากหากนักพัฒนาไม่เคยทำงานร่วมกับพวกเขามาก่อน ในการใช้ประโยชน์จากตัวแปลงสัญญาณเสียงให้ประสบความสำเร็จมีทีม“เคล็ดลับและเทคนิค” หลายประการที่ควรคำนึงถึง เช่น:
- ใช้คุณสมบัติ Direct memory access controller (DMA) ภายในไมโครคอนโทรลเลอร์เพื่อป้อนตัวแปลงสัญญาณเสียงโดยมีการแทรกแซงของ CPU น้อยที่สุด วิธีนี้จะช่วยให้มั่นใจได้ว่าตัวแปลงสัญญาณจะไม่ “starved” สำหรับข้อมูล
- เมื่อไม่ได้เล่นเสียงให้ใช้คุณสมบัติปิดเสียงตัวแปลงสัญญาณเพื่อป้องกันไม่ให้เสียงเอาท์พุตระดับต่ำไปถึงลำโพง
- เมื่อปิดหรือเปิดใช้งานการเล่นให้ใช้คุณสมบัติปิดเสียงของตัวแปลงสัญญาณเสียงเพื่อป้องกันไม่ให้ลำโพงแตกและเสียงรบกวนอื่น ๆ ที่ไม่ต้องการ
- ใช้แอปพลิเคชันเทอร์มินัลเพื่อส่งออกการลงทะเบียนตัวแปลงสัญญาณหลังจากเริ่มต้นตัวแปลงสัญญาณแล้ว สิ่งนี้จะมีประโยชน์อย่างยิ่งเมื่อพยายามแก้ไขปัญหาหรือปรับแต่งวงจรและกล่องหุ้มเอาต์พุตของลำโพง
- ใช้ประโยชน์จากกลไกตัวกรองดิจิทัลภายในที่รวมอยู่ในตัวแปลงสัญญาณ ฟิลเตอร์ดิจิทัลช่วยให้นักพัฒนาสามารถปรับเอาท์พุตให้เท่ากันกรองความถี่สูงและต่ำที่ไม่ต้องการออกไปและเพิ่มคุณภาพของระบบเสียงให้สูงสุด
- อย่าลืมว่าการปรับแต่งเสียงจะเป็นประโยชน์เมื่อติดตั้งแผงวงจรและลำโพงในกล่องหุ้มเท่านั้นเนื่องจากสิ่งที่แนบมาและการติดตั้งสร้างความแตกต่างอย่างมาก
ในการเริ่มต้นนักพัฒนาสามารถทดลองกับไฟล์MAX9867EVKIT+ชุดประเมิน Maxim Integrated’s MAX9867 (รูปที่ 5)
รูปที่ 5: ชุด MAX9867EVKIT + eval สำหรับ MAX9867 เชื่อมต่อกับพีซีผ่านสาย USB และมีอินพุต RCA เอาต์พุตหูฟังและโมดูลส่งและรับไฟเบอร์ออปติก (แหล่งที่มาภาพ: Maxim Integrated)
ชุดประกอบด้วยบอร์ดและซอฟต์แวร์ที่เกี่ยวข้องและมีการกำหนดค่าให้ส่งและรับข้อมูลเสียงโดยใช้อินเทอร์เฟซดิจิทัลของ Sony/Philips (S/PDIF) แม้ว่าจะสามารถตั้งค่าให้ใช้ I2S มีแจ็คอินพุต RCA สองช่องแจ็คหูฟังเอาท์พุตอะนาล็อก 3.5 มิลลิเมตร (mm) สองตัวและโมดูลรับและส่งสัญญาณไฟเบอร์ออปติก ซอฟต์แวร์นี้เข้ากันได้กับ Windows และเมื่อเชื่อมต่อกับพีซีผ่านสาย USB ซอฟต์แวร์จะเปิดขึ้นในอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ซึ่งนักพัฒนาสามารถทดลองกับการตั้งค่าของ MAX9867 ได้ (รูปที่ 6)
รูปที่ 6: ด้วยการใช้ GUI บน Windows ผู้ใช้สามารถทดลองกับการตั้งค่า MAX9867 ที่หลากหลายโดยเริ่มจากนาฬิกาและเสียงดิจิตอล (แท็บที่เลือก) ไปจนถึงรีจิสเตอร์ 1 และรีจิสเตอร์ 2 (ขวา) (แหล่งที่มาภาพ: Maxim Integrated)
สรุป
ผู้ใช้ระบบฝังตัวเริ่มคุ้นเคยกับเสียงที่มีคุณภาพจนถึงจุดที่คาดว่าจะได้รับในตอนนี้แทนที่จะเป็นเสียงกริ่งและเสียงบี๊บสำหรับสัญญาณเตือนการแจ้งเตือนและเสียงตอบรับอื่น ๆ สิ่งนี้ทำให้ทีมพัฒนาต้องใช้ความสามารถในการเล่น MP3 ในระบบของตน ในตอนแรกสิ่งนี้ดูเหมือนจะเป็นความพยายามที่ซับซ้อน อย่างไรก็ตามด้วยการใช้ตัวแปลงสัญญาณเสียงที่เหมาะสมควบคู่ไปกับไมโครคอนโทรลเลอร์และการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในการออกแบบบางประการทำให้นักพัฒนาสามารถสร้างสมดุลระหว่างต้นทุนและความซับซ้อนที่เกี่ยวข้องกับแอปพลิเคชันเสียง
อ้างอิง
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

