קודק HDA רב-ערוצי על RP2040
ממשק HDA Link, הידוע גם בשם Azalia, מופיע בדרך כלל רק בצ'יפסטים של מחשבי PC. כותב מאמר ב-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
הפרויקט נשען על 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
הניחו את התגובה הראשונה, בכל שפה.
התחברו כדי להגיב