أردوينو وراسبيري باي

كودك HDA متعدد القنوات على RP2040

واجهة HDA Link، ويُطلق عليها أيضًا Azalia، لا تظهر عادةً إلا في مجموعات شرائح حواسيب المكتب. أراد كاتب مقالة على Habr التحقق من إمكانية أن يعمل المتحكم الدقيق RP2040 الموجود في Raspberry Pi Pico مضيفًا لهذه الواجهة. والفائدة واضحة: كوادك الصوت HDA متعددة القنوات توفر عددًا من القنوات يفوق بكثير ما يوفره I²S.

يقوم المشروع على RP2040 ذي كتل PIO وكودك Realtek ALC889 المثبّت على اللوحة، وهي لوحة بقيت من محاولة سابقة فاشلة باستخدام STM32F103 وSpartan-3. يجب أن تكون إشارة BCLK مستقرة عند 24 ميغاهرتز، لذلك لا يمكن توليدها برمجيًا. تستخدم الواجهة أربعة خطوط: BCLK وSYNC وSDO وSDI، وإطار من 1000 بت يعطي 48 كيلوهرتز، وعند 96 و192 كيلوهرتز يزداد عدد العينات في الإطار.

ينفذ التصميم أربع آلات حالة PIO: إخراج SDO، وإخراج SYNC، وإدخال SDI مع توليد BCLK، وآلة تُسند عنوانًا إلى الكودك. تنتقل البيانات عبر DMA، بينما يجمع النواة الثانية في RP2040 العينات والأوامر ويحلل ردود الكودك. يولّد المشروع التجريبي موجات جيبية على خمسة محولات DAC ستيريو، وتبلغ توافقية الرتبة الثالثة نحو −123 ديسيبل.

عمل الكودك بمعدل أخذ عينات 192 كيلوهرتز. وكان رفع تردد RP2040 إلى 32 ميغاهرتز (256 كيلوهرتز) ناجحًا، لكن الكودك سخن بشدة. تستهلك اللوحة ما بين 150 و270 مللي أمبير عند 3.3 فولت. وهناك قيود أيضًا: تعمل المرشحات المدمجة كمرشح تمرير عالٍ من الرتبة الأولى بتردد قطع نحو 4 هرتز، ولا يسمح عرض نطاق إدخال HDA بثلاث قنوات ستيريو بدقة 24/192 في الوقت نفسه.

وجد الكاتب كذلك خللًا في التزامن في RP2040 عند تشغيل DMA وUSB وأخذ العينات من XIP معًا، وقد حدد متخصصو Raspberry Pi سببه. وللمعالجة المعقدة يوصي بـ RP2350 الذي يحتوي على تعليمات DSP. وأعجبني أن المشروع يعرض بصدق النتائج ونقاط الضعف معًا.

المصدر: Habr

التعليقات 0

اترك أول تعليق، بأي لغة.

سجّل الدخول للتعليق