STM32F401/411 ve PCM5102/UDA1334ATS ile Hi-Fi Audio DAC Yapımı

👤 Yazar: ozcan 📅 Tarih: 04.07.2026 14:43 👁️ Görüntüleme: 44

 STM32F411 ile Yüksek Çözünürlüklü (Hi-Res) USB Audio DAC Yapımı

"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.

Projenin Öne Çıkan Özellikleri

  • Sürücüsüz Kurulum: USB Full Speed Class 1 Audio cihazı standardındadır, takıldığı anda sistem tarafından tanınır.
  • USB'den Güç Alma: Harici bir güç kaynağı gerektirmez, enerjisini USB üzerinden çeker.
  • 24-Bit Yüksek Çözünürlük: 44.1kHz, 48kHz veya 96kHz örnekleme frekanslarına sahip 24-bit ses akışlarını yerel olarak destekler.
  • Donanımsal Kontrol: USB Audio Volume (0dB ila -96dB arası, 3dB adımlarla) ve Mute (Sessize alma) desteği mevcuttur.
  • Gelişmiş Senkronizasyon: Örnekleme frekansını (Fs) mükemmel şekilde senkronize etmek için isochronous endpoint feedback (3 byte, 10.14 formatında) mekanizmasını kullanır.
  • Geniş Donanım Desteği: Ucuz STM32F401CCU6 veya STM32F411CEU6 "Black Pill" modüllerini; DAC tarafında ise dahili MCLK üretebilen popüler PCM5102A veya UDA1334ATS entegrelerini destekler.

Donanım Bağlantı Şeması (Pinout)

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ü)

Durum Gösterge LED'leri

Sistem o an oynatılan ses dosyasının örnekleme frekansına göre harici LED'ler üzerinden bildirim sağlar:

  • Pin B3 (Kırmızı LED): Fs = 96kHz aktif olduğunda yanar.
  • Pin B6 (Yeşil LED): Fs = 48kHz aktif olduğunda yanar.
  • Pin B9 (Mavi LED): Fs = 44.1kHz aktif olduğunda yanar.
  • Pin C13 (Kart Üzerindeki LED): Genel sistem durum tanılama (Diagnostic) amaçlı yanıp söner.

Yazılım Geliştirme ve Derleme

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.

Terminal Üzerinden (Makefile) Derleme Adımları:

  1. İlk olarak projedeki Makefile dosyasını açarak kullandığınız mikrodenetleyici modelini (STM32F411 veya STM32F401) ve DAC türünü (PCM5102A veya UDA1334ATS) seçin.
  2. ARM derleyici (toolchain) yolunu sistem PATH değişkeninize ekleyin.
  3. Terminali açıp proje dizinine gelerek şu komutları sırasıyla çalıştırın:
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.

En Yüksek Ses Kalitesi İçin İşletim Sistemi Ayarları

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:

1. Ubuntu / Linux (PipeWire Kullananlar İçin)

/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.

2. Windows 10 & 11

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.

Sonuç ve Odyofil Deneyimi

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!

Proje Dosyaları

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]

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1