كيفية جعل الحديث أوميغا 2 أو أسطورة I2S

ما المشكلة الكبرى مع I2S ، تقول؟ قم بتوصيل الأسلاك بالدبابيس المطلوبة وكل شيء يعمل.

أوميغا 2 كمبيوتر صغير فكرت بذلك أيضًا ، ولكن مع الكمبيوتر الصغير Omega2 اتضح أنه ليس بهذه البساطة. لذلك قررت كتابة هذه المقالة.

لنبدأ بما حققته في النهاية. لقد قمت بتوصيل شريحة TDA1543 (ستريو I2S DAC بدقة 16 بت في السعة) بالحاسوب الصغير أوميغا 2. الصوت جيد ، وأنا أستمتع بالاستماع إلى محطات راديو الإنترنت (يجب أن يكون هناك نكتة حول الصوتيات والصوت الأنبوبي الدافئ). ومع ذلك ، ما زلت لم أفهم سبب التحميل الزائد للصوت ، لكنني تعلمت فقط تجاوزه بطريقة العكاز. وأود أن أسمع أفكارك حول هذه المسألة.

ربما شخص ما لا يعرف ما هو أوميغا 2. هذا هو الكمبيوتر الصغير الذي يعتمد عليه Linux على LEDE ، وهو في الأساس فرع من OpenWRT. معالج MT7688 ، ذاكرة 64 ميجابايت و 16 ميجابايت فلاش. بشكل عام ، يمكنك قراءة المزيد على ويكيبيديا ، هنا وهنا .

من المهم أيضًا ملاحظة أنه يتم تنفيذ جميع الإجراءات على إصدار البرامج الثابتة الأصلي 0.2.0

والآن ، دعنا نتحدث قليلاً عن الألم عندما جئت إلى هذا.
بادئ ذي بدء ، كل شيء شفاف ، نربط جميع خطوط I2S TDA'shki و Omega. هذه هي خط ساعة CLK ، وخط تزامن قناة WS ، وخط بيانات DATA ، وأرض GND على التوالي. بالإضافة إلى ذلك ، نضيف زوجين من المقاومات والمكثفات ، ولكن الشيء الرئيسي هو مقاومة الضبط في المحطة السابعة من TDA1543. يجب تطبيق إزاحة صفرية على هذه الساق ، حيث أنني نمت لأول مرة. والحقيقة هي أن شريحة TDA1543 ، الفريدة من نوعها في وقتها ، تعمل بقوة أحادية القطب. حسنًا ، إشارة الصوت هي التذبذبات فيما يتعلق بـ 0 لأسفل وأعلى ، لذلك تحتاج إلى تحويل هذا الصفر إلى منتصف نطاق جهد الإمداد والحصول على التذبذبات نسبة إلى هذه النقطة. كل شيء مكتوب في ورقة البيانات ، ولكن في البداية قمت ببناء دائرة بمقاوم تقليدي (من هذه الخاصة بك على الإنترنت) وتلقيت تشوهات لم أفهمها لفترة طويلة. ضع مقاومًا متغيرًا وحقق انحيازًا صفرًا في حالة عدم وجود إشارة عند الإدخال (وضع الاستعداد) 1.3-1.5 فولت (مع مصدر طاقة 3.3 فولت). اتضح المخطط التالي.

TDA1543 إلى مخطط اتصال أوميغا 2

علاوة على ذلك ، باتباع الخطوات من موقع البصل الرسمي ، يتم تحديثنا لتطوير إصدار البرنامج الثابت ، الذي أضاف دعمًا لـ I2S (أردت أن أكتب أقل من عام ، ولكن لا ... مرت). نقوم بتحديث وتثبيت الحزم اللازمة للصوت:

opkg update opkg install alsa-utils mpg123 

قم بتبديل GPIO إلى وضع I2S باستخدام الأمر:

 omega2-ctrl gpiomux set i2s i2s 

قمنا بنسخ ملف wav للاختبار ، استخدمت الكلاسيكية Suzanne Vega - Tom's Diner. وحاول اللعب باستخدام aplay:

 aplay za_sebya_i_za_sashky.wav 

ونسمع التشويه. فقط الكثير من الحمل الزائد الصعب. لدرجة أنه قد يبدو أنك عدت في عام 2007. ولكن يمكن تتبع الدافع الصادم للأغنية فيها ، لذلك هناك شيء يعمل هناك ، أليس كذلك؟

لقد حاولت خفض مستوى الصوت في خلاط alsa - ولكن دون جدوى ، لأن السائق يتم شحذه بواسطة شريحة MAX98090 ، والتي يتم التحكم فيها بواسطة I2C وبالتالي يتم إرسال جميع الإعدادات ببساطة إلى I2C ، ولا تتغير بيانات I2S نفسها.

حسنًا ، افتح ورقة البيانات على MAX98090. ونبدأ في النور. تدعم الدوائر المصغرة الكثير من تنسيقات بيانات الإدخال: I2S / LJ / RJ / TDM ويمكنها هضم جزء كبير. ويمكن لمعالج MT7688 نفسه أن يكون أكبر وأسرع من TDDA. ربما مشاكل البيانات في I2S؟

ذهبت تدريجياً مع راسم الذبذبات.

بت 16 بت؟ نعم قمت بتعليق خط WS على قناة واحدة على القناة الأخرى ، خط CLK. وكنت مقتنعا بطول النبض WS-16.

ترددات التشغيل خاطئة؟ لا. جميع الترددات تتوافق مع العمال. WS - 44100 هرتز ، CLK - 1411200 هرتز.

تنسيق أرقام النوع في البيانات؟ يتم استخدام تنسيق الحرف الصحيح (نعم ، أعتقد أن هناك حاجة إلى عدم التوقيع). قام بالتحقق من خلال إنشاء جيبات اصطناعية وتحريكها صعودا وهبوطا بالنسبة إلى 0 في الجرأة وتغيير السعة. لا توجد تغييرات نوعية.
هل هناك I2S على أي حال؟ على الأرجح نعم. أولاً ، لأنه بعد ذلك نجح كل شيء بالنسبة لي (حسنًا ، أو يبدو لي بهذه الطريقة) ، وثانيًا ، حاولت التحقق باستخدام مرسمة الذبذبات ، على الرغم من أنه بدون محلل منطقي ، فإن هذا صعب بالطبع. قد يكون من المفيد إجراء اختبار أكثر دقة وإحضار عظم Beaglebone إلى هنا.

يبدو أن كل شيء صحيح ، وللرجال من منتدى البصل يعمل كل شيء ، لكن الحقيقة موجودة على شرائح أخرى: MAX98357A و PCM5102. بشكل عام ، أتخلى عن فكرة لعب wav'ki والحصول على mpg123 لتشغيل ملفات mp3. أقطعها بعلامة -C وأبدأ في خفض مستوى الصوت. وجلست هنا. عند ضبط مستوى الصوت في برنامج mpg123 على حوالي 1 بالمائة ، أحصل على صوت رائع. تتأرجح الشريحة إلى السعة الكاملة. أبدأ الراديو بعلامة -f 128:

 mpg123 -f 128 http://us2.internet-radio.com:8443/ 

وتلتقي أصوات البلوز الأمريكي المريح. بالمناسبة ، قد لا يعمل الرابط إلى الراديو ، أخذ من هنا .

الصورة أقوم بتشغيل إشارة سن المنشار وزيادة السعة تدريجيًا. ونتيجة لذلك ، رأيت أن التشوهات هي قفزات فوضوية من 0 إلى جهد الإمداد وكلما ارتفع المستوى ، زادت هذه القفزات. استغرق الأمر مني عدة أسابيع لجعل أوميغا تتحدث. كنت متعبًا جدًا ، وبالتالي قررت في هذه اللحظة التوقف - إنه يعمل!

ومع ذلك ، أفهم أن هذا مستحيل ، لذلك سأكون سعيدًا لسماع أفكارك واقتراحاتك. حسنًا ، بالنسبة لأولئك الذين يحاولون إجراء أوميغا حديثًا في عذاب ، آمل أن أساعدك!

شكرا لكم جميعا!

Source: https://habr.com/ru/post/ar413623/


All Articles