
در پروژه های صوتی مبتنی بر Arduino، ESP8266 و ESP32 معمولا فایل موسیقی، رادیوی اینترنتی یا صدای ضبط شده به صورت داده های دیجیتال در اختیار میکروکنترلر قرار می گیرد. این داده ها ممکن است از اینترنت، کارت حافظه، بلوتوث یا حافظه داخلی خوانده شوند.
اما بلندگو و هدفون نمی توانند داده های دیجیتال را مستقیما پخش کنند. آنها برای تولید صدا به یک ولتاژ متغیر آنالوگ نیاز دارند که شکل موج صوتی را دنبال کند. وظیفه تبدیل داده دیجیتال به این موج آنالوگ بر عهده مبدل دیجیتال به آنالوگ یا DAC است.
DAC چیست؟
DAC مخفف Digital to Analog Converter به معنی مبدل دیجیتال به آنالوگ است. این مدار نمونه های عددی صدا را دریافت می کند و در خروجی، ولتاژی متناسب با آن اعداد تولید می کند.
در یک فایل صوتی دیجیتال، شکل موج صدا به مجموعه ای از نمونه ها تبدیل شده است. هر نمونه یک عدد است که دامنه صدا را در یک لحظه مشخص نشان می دهد. DAC این اعداد را با سرعت منظم دریافت می کند و از آنها یک سیگنال پیوسته یا نزدیک به پیوسته می سازد.
مسیر کامل پخش صدا معمولا به این صورت است:
فایل MP3 یا جریان اینترنتی ← رمزگشایی صوت ← داده PCM ← رابط I2S ← مبدل DAC ← تقویت کننده آنالوگ ← بلندگو
بنابراین DAC فایل MP3 را مستقیما پخش نمی کند. ابتدا پردازنده باید فایل فشرده را رمزگشایی و به داده PCM تبدیل کند. سپس این داده از طریق رابطی مانند I2S به DAC فرستاده می شود.
چرا خروجی دیجیتال را نمی توان مستقیما به بلندگو متصل کرد؟
پایه های دیجیتال میکروکنترلر فقط می توانند وضعیت های منطقی صفر و یک را تولید کنند. این پایه ها برای راه اندازی مستقیم بلندگو طراحی نشده اند و جریان کافی برای حرکت دادن سیم پیچ بلندگو را ندارند.
اگر یک بلندگو مستقیما به پایه دیجیتال متصل شود، در بهترین حالت صدایی ضعیف، خشن و محدود شنیده می شود. در شرایط نامناسب نیز ممکن است جریان بیش از حد به پایه میکروکنترلر آسیب بزند.
برای پخش صدای با کیفیت، ابتدا باید داده دیجیتال به سیگنال آنالوگ تبدیل شود و سپس این سیگنال توسط یک تقویت کننده مناسب به توان مورد نیاز بلندگو برسد.
آیا PWM جایگزین DAC است؟
برخی پروژه های ساده با استفاده از PWM صدا تولید می کنند. در این روش، پایه دیجیتال با سرعت زیاد روشن و خاموش می شود و نسبت زمان روشن بودن پالس ها تغییر می کند. پس از عبور سیگنال از یک فیلتر پایین گذر، می توان شکل موجی تقریبی ایجاد کرد.
PWM برای تولید بوق، هشدار، افکت های ساده و صدای گفتاری با کیفیت محدود قابل استفاده است؛ اما معمولا نویز، اعوجاج و دامنه فرکانسی آن با یک DAC صوتی مناسب قابل مقایسه نیست.
در پروژه هایی مانند رادیوی اینترنتی، پخش موسیقی، پادکست یا صدای استریو، استفاده از DAC خارجی نتیجه بسیار بهتری ایجاد می کند.
آیا ESP32 مبدل داخلی ندارد؟
برخی مدل های ESP32 دارای DAC داخلی هستند. در ESP32 کلاسیک، مبدل داخلی دارای وضوح ۸ بیت است و می تواند برای تولید صداهای ساده یا کاربردهای عمومی استفاده شود. همه مدل های خانواده ESP32 نیز الزاما DAC داخلی ندارند.
وضوح محدود، نویز داخلی تراشه و نزدیکی مدار آنالوگ به بخش های پردازشی و رادیویی باعث می شود DAC داخلی همیشه بهترین انتخاب برای پخش موسیقی با کیفیت نباشد.
ESP8266 نیز برای خروجی صوتی با کیفیت معمولا از رابط I2S و یک مبدل خارجی استفاده می کند. رابط I2S اجازه می دهد داده صوتی بدون تبدیل زودهنگام به آنالوگ، مستقیما به ماژول DAC منتقل شود.
رابط I2S چیست؟
I2S یک رابط دیجیتال برای انتقال صدای PCM میان پردازنده، DAC، ADC و کدک های صوتی است. این رابط معمولا شامل سه سیگنال اصلی است:
- BCLK یا Bit Clock که زمان انتقال هر بیت را مشخص می کند.
- LRCK یا Word Select که کانال چپ و راست را از یکدیگر جدا می کند.
- DATA که داده های صوتی را حمل می کند.
برخی مبدل ها به سیگنال دیگری با نام MCLK یا Master Clock نیز نیاز دارند. برای مثال، بسیاری از ماژول های PCM5102A می توانند بدون MCLK و تنها با BCLK، LRCK و DATA کار کنند؛ اما مبدل هایی مانند CS4344 معمولا به کلاک اصلی نیز نیاز دارند.
مزایای استفاده از DAC خارجی
مهم ترین مزیت DAC خارجی افزایش کیفیت صدا است.
یک DAC صوتی مناسب برای بازسازی دقیق شکل موج، کاهش نویز و محدود کردن اعوجاج طراحی شده است.
DAC خارجی معمولا وضوح بیشتری نسبت به خروجی داخلی ساده میکروکنترلر دارد و می تواند داده های ۱۶، ۲۴ یا ۳۲ بیتی را دریافت کند. البته تعداد بیت بیشتر به تنهایی تضمین کننده کیفیت بهتر نیست و طراحی تغذیه، مسیر زمین، کلاک و بخش خروجی نیز اهمیت زیادی دارد.
مزیت دیگر، امکان تولید صدای استریوی واقعی است. در پروژه هایی که خروجی چپ و راست اهمیت دارد، استفاده از مبدل هایی مانند PCM5102A یا CS4344 امکان دریافت دو کانال آنالوگ مستقل را فراهم می کند.
انتقال دیجیتال صدا تا نزدیکی DAC نیز می تواند حساسیت مسیر صوتی به نویز را کاهش دهد. به جای عبور یک سیگنال آنالوگ ضعیف از کنار پردازنده، نمایشگر و مدار Wi-Fi، داده ها به صورت دیجیتال منتقل و در نزدیکی بخش تقویت کننده به آنالوگ تبدیل می شوند.
تفاوت DAC با تقویت کننده صوتی چیست؟
DAC و تقویت کننده دو وظیفه متفاوت دارند.
DAC داده دیجیتال را به سیگنال آنالوگ تبدیل می کند. خروجی بسیاری از DACها از نوع Line Level است و توان لازم برای راه اندازی مستقیم بلندگو را ندارد.
تقویت کننده صوتی سیگنال آنالوگ ضعیف را دریافت می کند و ولتاژ و جریان آن را برای راه اندازی بلندگو افزایش می دهد.
بنابراین در یک سیستم مبتنی بر PCM5102A یا CS4344 معمولا مسیر صدا به صورت زیر است:
ESP32 یا ESP8266 ← DAC ← تقویت کننده صوتی ← بلندگو
برای مثال می توان خروجی DAC را به ماژولی مانند PAM8403 متصل کرد و سپس بلندگوها را به خروجی تقویت کننده بست.
خروجی Line Level برای بلندگو طراحی نشده است. اتصال مستقیم بلندگوی ۴ یا ۸ اهم به خروجی PCM5102A یا CS4344 باعث افت شدید صدا، اعوجاج و بارگذاری نامناسب DAC می شود. برای هدفون کم امپدانس نیز بهتر است از تقویت کننده هدفون مناسب استفاده شود.
PCM5102A چه نوع ماژولی است؟
PCM5102A یک DAC استریو با ورودی صوتی دیجیتال است. این تراشه می تواند داده های I2S را دریافت و دو خروجی آنالوگ چپ و راست در سطح Line Level تولید کند.
این مبدل برای پروژه هایی مناسب است که به صدای استریو، کیفیت مناسب و امکان اتصال به تقویت کننده خارجی نیاز دارند. رادیوی اینترنتی استریو، پخش کننده موسیقی، پادکست پلیر و Audio Hub از کاربردهای مناسب آن هستند.
یکی از مزایای PCM5102A وجود PLL داخلی است که در بسیاری از کاربردها نیاز به MCLK خارجی را حذف می کند. در نتیجه اتصال آن به ESP32 معمولا با سه خط BCLK، LRCK و DATA امکان پذیر است.
PCM5102A تقویت کننده بلندگو نیست. خروجی آن باید به ورودی Line یک آمپلی فایر، اسپیکر اکتیو یا تقویت کننده هدفون متصل شود.
CS4344 چه تفاوتی دارد؟
CS4344 نیز یک DAC صوتی استریو است و خروجی آنالوگ چپ و راست تولید می کند. این تراشه برای تبدیل دقیق داده صوتی دیجیتال به سیگنال آنالوگ طراحی شده و به مدار پشتیبان نسبتا ساده ای نیاز دارد.
تفاوت مهم آن با بسیاری از ماژول های PCM5102A، نیاز به سیگنال MCLK در کاربردهای متداول است. بنابراین پردازنده باید علاوه بر BCLK، LRCK و DATA، کلاک اصلی سازگار را نیز تولید کند.
CS4344 نیز خروجی توان برای بلندگو ندارد و باید به یک تقویت کننده خارجی متصل شود. این ماژول برای سیستم های استریو و پروژه هایی که بخش DAC و تقویت کننده به صورت جداگانه طراحی می شوند انتخاب مناسبی است.
MAX98357A چه تفاوتی با DACهای معمولی دارد؟
MAX98357A فقط یک DAC خطی نیست. این تراشه ورودی I2S را دریافت می کند، تبدیل دیجیتال به صوت را انجام می دهد و سپس سیگنال را با یک تقویت کننده کلاس D داخلی برای راه اندازی بلندگو تقویت می کند.
در نتیجه مسیر صدا کوتاه تر می شود:
ESP32 یا ESP8266 ← MAX98357A ← بلندگو
این ماژول برای ساخت رادیوی اینترنتی، اعلان صوتی، دستیار صوتی و دستگاه های کوچک دارای یک بلندگو بسیار مناسب است.
MAX98357A معمولا خروجی مونو دارد. می توان کانال چپ، کانال راست یا ترکیبی از هر دو را انتخاب کرد، اما برای صدای استریو به دو ماژول یا راهکار دیگری نیاز است.
خروجی بلندگوی این ماژول از نوع تفاضلی یا پل است. بنابراین هر دو سیم بلندگو باید به پایه های خروجی مثبت و منفی ماژول متصل شوند و هیچ کدام نباید مستقیما به زمین وصل شوند.
PCM5102A، CS4344 یا MAX98357A؟
- اگر به صدای استریوی Line Level برای اتصال به تقویت کننده خارجی نیاز دارید، PCM5102A یا CS4344 انتخاب مناسبی است.
- اگر اتصال ساده یک بلندگوی کوچک، تعداد قطعات کمتر و خروجی مونو کافی است، MAX98357A انتخاب ساده تری خواهد بود.
- اگر دستگاه باید هدفون را مستقیما راه اندازی کند، بهتر است از DAC یا کدکی استفاده شود که تقویت کننده هدفون داخلی دارد، یا پس از DAC یک تقویت کننده هدفون جداگانه قرار گیرد.
انتخاب مناسب به تعداد کانال ها، توان خروجی، کیفیت مورد انتظار، نوع بلندگو یا هدفون و تعداد پایه های آزاد میکروکنترلر بستگی دارد.
آیا DAC کیفیت فایل صوتی را افزایش می دهد؟
DAC نمی تواند اطلاعاتی را که در فایل صوتی وجود ندارد بازسازی کند. اگر فایل MP3 با بیت ریت بسیار پایین ذخیره شده باشد، استفاده از یک DAC گران قیمت جزئیات حذف شده را باز نمی گرداند.
کیفیت نهایی به تمام زنجیره صوتی وابسته است:
کیفیت فایل یا جریان صوتی، دقت رمزگشایی، تنظیمات I2S، کیفیت DAC، طراحی منبع تغذیه، تقویت کننده، بلندگو و حتی شکل محفظه دستگاه.
یک DAC مناسب مانع از تخریب بیشتر سیگنال در مرحله تبدیل می شود، اما کیفیت کل سیستم همیشه به ضعیف ترین بخش زنجیره محدود خواهد بود.
اهمیت تغذیه و خازن های دیکاپلینگ
DAC بخش آنالوگ حساسی دارد و کیفیت تغذیه آن مستقیما بر نویز خروجی اثر می گذارد. قرار دادن خازن دیکاپلینگ ۱۰۰ نانوفاراد در نزدیکی پایه تغذیه ماژول و استفاده از یک خازن با ظرفیت بیشتر در مسیر تغذیه می تواند نوسان و نویز را کاهش دهد.
تقویت کننده های کلاس D و سروو موتورها جریان لحظه ای زیادی مصرف می کنند. اگر DAC، سروو، نمایشگر و تقویت کننده همگی از یک مسیر ضعیف تغذیه شوند، صدای وزوز، تق تق، قطع صدا یا ریست شدن میکروکنترلر دور از انتظار نخواهد بود.
کوتاه نگه داشتن مسیرهای I2S، استفاده از اتصال زمین مناسب، جدا کردن مسیر توان تقویت کننده از بخش حساس آنالوگ و قرار دادن خازن ها در نزدیکی مصرف کننده ها اهمیت زیادی دارد.
چه زمانی واقعا به DAC خارجی نیاز داریم؟
برای تولید بوق یا صدای بسیار ساده، استفاده از PWM یا یک Buzzer ممکن است کافی باشد.
اما برای پخش موسیقی، رادیوی اینترنتی، پادکست، صدای استریو، اتصال به هدفون یا تقویت کننده و پروژه هایی که کیفیت صدا اهمیت دارد، DAC خارجی تقریبا یک بخش ضروری است.
در پروژه های ARDUnia نیز نوع مبدل بر اساس هدف انتخاب می شود. برای یک رادیوی اینترنتی کوچک با بلندگوی مونو، MAX98357A راهکاری ساده و کم قطعه است. در یک سیستم استریو مانند Audio Hub، استفاده از DAC استریو مانند PCM5102A یا CS4344 در کنار تقویت کننده مجزا انعطاف و کنترل بیشتری فراهم می کند.
نتیجه گیری
میکروکنترلر صدا را به شکل عدد می شناسد، اما گوش انسان و بلندگو با موج آنالوگ سروکار دارند. DAC پلی است که این دو جهان را به یکدیگر متصل می کند.
استفاده از DAC خارجی می تواند صدای شفاف تر، نویز کمتر، خروجی استریو و سازگاری بهتر با تقویت کننده ها را فراهم کند. با این حال باید میان DAC خطی و ماژول دارای تقویت کننده تفاوت قائل شد.
PCM5102A و CS4344 خروجی آنالوگ استریو برای اتصال به تقویت کننده تولید می کنند، در حالی که MAX98357A یک راهکار مونو و یکپارچه برای راه اندازی مستقیم بلندگو است.
انتخاب درست DAC فقط به تعداد بیت یا نرخ نمونه برداری وابسته نیست. نوع خروجی، تعداد کانال ها، نیاز به MCLK، کیفیت تغذیه، تقویت کننده بعدی و کاربرد واقعی پروژه باید همزمان در نظر گرفته شوند.
منابع رسمی:
مشخصات PCM5102A در Texas Instruments
