"Black Pill", PCM5102A ve UDA1334ATS Kullanarak Kendi Ses Kartınızı Tasarlayın
Müzik dinlerken detayları kaçırmak istemeyen ve "bütçe dostu odyofil" deneyimi arayanlar için harika bir açık kaynaklı proje ile karşınızdayız. har-in-air tarafından geliştirilen STM32F411_USB_AUDIO_DAC projesi, piyasadaki pahalı ses kartlarına meydan okuyor. Bu projede, oldukça ucuz olan STM32F411 veya STM32F401 "Black Pill" geliştirme kartı ile Texas Instruments PCM5102A veya Philips UDA1334ATS DAC modüllerini bir araya getirerek yüksek kaliteli bir harici ses kartı (DAC) elde ediyoruz.
Bilgisayarların veya akıllı telefonların dahili kulaklık çıkışları genellikle ses kalitesi ve bas frekansları açısından yetersiz kalır. Bu USB DAC projesi ise asenkron feedback (geri bildirim) mekanizması ve I2S protokolü sayesinde kristal netliğinde, zengin detaylara sahip bir ses performansı sunuyor. Üstelik herhangi bir sürücü (driver) yüklemenize gerek kalmadan tak-çalıştır olarak kullanılabiliyor.
Projeyi hayata geçirmek için STM32 Black Pill kartı ile DAC modülünüz arasındaki bağlantıları aşağıdaki tabloya göre yapmanız gerekir. Ayrıca besleme hattındaki gürültüyü engellemek için 5V ile GND arasına paralel olarak 100uF 16V kondansatör ve 5V TVS diyot eklenmesi önerilir.
| STM32 F4xx Pin | PCM5102A Modülü | UDA1334ATS Modülü | Açıklama / Görev |
|---|---|---|---|
| 5V | VCC | VIN | Pozitif Besleme Girişi |
| GND | GND | GND | Topraklama |
| B13 | BCK | BCLK | I2S Bit Clock (Sinyal Saati) |
| B15 | DIN | DIN | I2S Veri Girişi (Data) |
| B12 | LCK | WSEL | I2S Word Select (Sol/Sağ Kanal Saati) |
| B8 | XMT | MUTE | Sessize Alma (Mute Kontrolü) |
Sistem o an oynatılan ses dosyasının örnekleme frekansına göre harici LED'ler üzerinden bildirim sağlar:
Proje, Ubuntu Linux ortamında veya STM32CubeIDE kullanılarak kolayca derlenebilir. Geliştirici, kod yapısını sade tutmak adına CMSIS ve HAL kütüphanelerini (v1.28.0) doğrudan proje dizinine dahil etmiştir.
Makefile dosyasını açarak kullandığınız mikrodenetleyici modelini (STM32F411 veya STM32F401) ve DAC türünü (PCM5102A veya UDA1334ATS) seçin.PATH değişkeninize ekleyin.make clean
make all
make flash
Not: Kodları karta yüklemek için ucuz bir ST-Link V2 klonu yeterlidir. Yükleme esnasında sadece SCK, DIO ve GND pinlerini bağlamanız, kartın 5V gücünü ise USB kablosundan vermeniz önerilir.
DAC'ınızdan tam performans (24-bit / 96kHz yerel çalma veya upsampling) alabilmek için kullandığınız işletim sisteminde ufak optimizasyonlar yapmanız gerekir:
/etc/pipewire/pipewire.conf dosyasını ~/.config/pipewire/pipewire.conf dizinine kopyalayın ve context.properties altındaki saat hızını şu şekilde güncelleyin:
default.clock.rate = 96000
Sistemi yeniden başlattıktan sonra bir müzik açıp terminalde pactl list sinks komutunu çalıştırarak sesin s24le 2ch 96000Hz formatında çıktığını doğrulayabilirsiniz.
Denetim Masası -> Ses -> Oynatma Cihazları adımlarını takip edin. Listeden STM32 DAC cihazınızı bulun, özelliklerine girip Gelişmiş sekmesinden varsayılan formatı 24-bit, 96000 Hz (Stüdyo Kalitesi) olarak seçin.
Proje sahibi, normalde laptop veya akıllı telefon çıkışlarıyla basları oldukça zayıf gelen emektar Grado SR60 kulaklıklarını bu mini USB DAC ile test ettiğinde sonuçların büyüleyici olduğunu belirtiyor. Ses sahnesindeki detay seviyesi, frekans tepkisi ve yüksek dinamik aralık, bu bütçeyle elde edilebilecek en iyi sonuçlardan biri.
Eğer siz de evde kendi yüksek kaliteli ses kartınızı yapmak, gömülü sistemlerde USB-Audio ve I2S protokollerinin detaylarına inmek istiyorsanız bu projeyi mutlaka denemelisiniz!
STM32CubeIDE için uyumlu hale getirilmiş, gerekli tüm HAL ve CMSIS sürücü dosyalarını içeren kaynak kod paketini aşağıdaki bağlantıdan indirebilirsiniz:
[ STM32F411_USB_AUDIO_DAC-1.1.zip Dosyasını İndir]
Henüz yorum yapılmamış. İlk yorumu siz yapın!