LPC1768 ile mp3 çalar - Denemesi (Software mp3 Decode -Cortex-m3)

Başlatan Elektroemre, 08 Ocak 2011, 16:47:52

Elektroemre

Selamlar;

Bu aralar finallerin yaklaşmasından mıdır nedir ARM kiti gözümü daha güzel görünmeye başladı. (beni cezbedip ders çalışmamı engellemek için :) )
Hep MP3 player yapmak istiyordum ancak, mp3 decode entegresi bulamamaktan dolayı yapamadım, wav dosyalarıyla idare ettik.
Sonra kuzu kuzu yatan ARM kitimiz boş durmasın, bu kadar işlem gücü varken MP3'ü software decode edelim dedim, araştırmaya başladım ve 2 gününün sonunda Helix mp3 kütüphanesini LPC1768'e port edip mp3 çaldırabildim. MicroSD için ChaN'in FatFs'ini kullandım.

Kullandığım software mp3 decode librarysinin linki;
https://datatype.helixcommunity.org/Mp3dec

LPC1768 ile 48000KHz 320Kbit/s Stereo mp3 real-time olarak çözülebiliyor. Yaptığım test devresinde LPC'nin dahili 10bitlik DAC'ini kullandım.
Ses stereo çözülüyor ancak, tek kanalı dışarı veriliyor ve onunda 6biti kırpılıyor ancak ses yine yeterli kalitede.

Deneme Videosu:


Video telefonla çekildiği için pek net değil ancak gerçekte ses güzel.
Helix kütüphanesiyle yapılmış örnek devreler:
http://www.stm32circle.com/projects/project.php?id=82
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3619159&bbs_page_no=5&bbs_id=3020
http://embdev.net/articles/ARM_MP3/AAC_Player#The_DAC_-_First_Version:_CS4331

ChaN üstadımızın Fat librarysi:
http://elm-chan.org/fsw/ff/00index_e.html

LPC17xx için port edilmiş FatFs:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html








İyi çalışmalar...

Mucit23


X-Fi

güzel olmuş kutlarım hocam lpc1768 in  DAC'ı ile 320kbit/s çok iyi sizin sayenizde bizde görüp öğrenmiş olduk. :) iyi çalışmalar.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

Elektroemre

@mucit23
teşekkür ederim

@FxDev hocam teşekkür ederim. Mezun olunca "Mühendis" sıfatını hakedebilmek için şimdiden çalışıyoruz.
Sitenizi ve çalışmalarınızı ilgiyle takip ediyorum. ARM ilgili başlangıç bilgileri ve hatta bu projedeki DAC kısmındada sizin sitenizden yararlandım :)

@X-Fi hocam LPC1768 oldukça iyi işlem gücüne ve donanıma sahip, altından kalkamayacağı iş yok gibi. Bu projede 320kbit/44,100KHz stereo mp3'te mp3 decode için işlem gücünün yaklaşık %45'i (~55 DMIPS) kullanılıyor.
Arka plandaki interruptlar ve SD'den veri okumayla %50-60'ları buluyor. Diğer işler için hala %40 (50 MIPS) işlem gücümüz var. Mükemmel bir rakam bence.

İyi çalışmalar...

X-Fi

evet şimdi baktımda maximum update rate of 1 MHz demiş 44100KHz vız gelir buna :)  keşke 16 bit olsaymış 10 bit biraz az bugün atxmega'larda bile 12 bit DAC var.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

muuzoo

Gerçekten güzel bir çalışma olmuş elinize sağlık. Bu arada söylemeden geçemeyeceğim, sanırım bu sınav dönemleri insanın ilham kanallarını tetikliyor ders çalışmak dışında herşey daha bir güzel geliyor  :). Başlıkla alakasız olacak ama ekşisözlükten geliyor :
http://www.eksisozluk.com/show.asp?t=ders%20%C3%A7al%C4%B1%C5%9Fmamak%20i%C3%A7in%20yap%C4%B1lan%20anlams%C4%B1z%20hareketler
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

Elektroemre

Alıntı yapılan: gerbay - 09 Ocak 2011, 00:57:27
hocam mp3 çalar denemesi ne kadar flash ve ram kullanıyor?

Devre bu haliyle 72KB ROM ve 38KB RAM kullanıyor.
RAM'in 24KB'si MP3 library için + 9,2KB (2x4608 byte) çözülen PCM datayı saklamak için buffer + 4KB SD karttan dosya okumak içi buffer.
Diğer normal değişkenler <1KB yer kaplıyor.

DEno_12

Çok nefis olmuş tebrikler. :] @elektroemre'nin daha nice çözümlerini görmek dileğiyle...

serdararikan

güzel çalışma olmuş.tebrik ederim.sen buna jpeg decoding de eklersin şimdi:)

Elektroemre

Sağolun Serdar hocam, kısmetse finallerden sonra JPEG decode içinde çalışma yapacağım, hatta düzgün bi RTOS port edebilirsem MP3 arka planda çalarken aynı anda JPEG decode ettirmeyi düşünüyorum ama bitmediki şu finaller :)

fatihinanc

Tebrik ederim @Elektroemre gerçekten çok güzel bir iş çıkartmışsın.
Aslında RTos işi benimde aklımdaydı bu aralar. Bakalım sınavlar bir bitsin de...
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

Erhan YILMAZ

Hocam tebrik ederim gerçekten çok güzel uygulamaların var her gün kendini geliştiriyorsun.Aman finalleri aksatma hocam Kocaeli çok kazık diyorlar. :)

Elektroemre

@fatihinanc teşekkür ederim. Cortex-M3 için tavsiye edebileceğiniz bir RTOS var mı?
Geçenlerde nette dolaşırken CooCox - CoOS adında bir RTOS takıldı gözüme. Manuelini ve örneklerini indirdim. Gayet güzel gibi : http://www.coocox.org/CoOS.htm

@tamirci_erhan sağolun hocam. Valla doğru hocam en iyisi ders çalışmaya döneyim :)
Finallerde tüm arkadaşlara başarılar.

İyi çalışmalar.

muhittin_kaplan