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 (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.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://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 (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 (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 (http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/arm_memcards/index.html)
(http://img341.imageshack.us/img341/9355/image0256.jpg)
(http://img577.imageshack.us/img577/8318/image0261.jpg)
(http://img88.imageshack.us/img88/8287/image0260s.jpg)
İyi çalışmalar...
Tebrikler kardeş çalışman çok başarılı olmuş.
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.
@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...
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.
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 (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)
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.
Çok nefis olmuş tebrikler. :] @elektroemre'nin daha nice çözümlerini görmek dileğiyle...
güzel çalışma olmuş.tebrik ederim.sen buna jpeg decoding de eklersin şimdi:)
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 :)
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...
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. :)
@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 (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.
freertos lpc1768 i destekliyor.
http://www.freertos.org/a00090.html#NXP
http://www.freertos.org/shop/education-evaluation-kits-c-38.html
FreeRtos'a da daha önce göz atmıştım, ancak şu na kadar hiç RTOS deneyimim olmadığı için biraz teferruatlı geldi bana.
Fakat bu kadar çok kişi FreeRTOS kullandığına göre vardır bir bildikleri. Daha derinden incelemek lazım uygun zamanda.
Eline sağlık hocam gerçekten çok hoş bir çalışma.Tebrikler gerçekten
Birde sorum olacaktı.Kullandığınız ekran nokia 1208 sanırım.Acaba lehimi sıkıntı çıkarıyor mu?TFT ekranlarla bir uygulama yapmak istiyorumda.Lehimlemede sıkıntı yaşamayacağım (ya da en rahat olan) bir modeli tercih etmek istiyorum.Tavsiye eder misiniz acaba?
Ayırca bütün öğrenci arkadaşlara finallerde başarılar :D
@gerbay, sade bir RTOS'la başlayıp ilerlemek istiyorum. CoOS'la yapılmış güzel bir örnek, aynı anda SD karttan wav dosyası okuyup çalarken, diğer taraftan FFT yapılıp ekrana basılıyor: http://projectproto.blogspot.com/2010/06/mini-stm32-wave-audio-player.html (http://projectproto.blogspot.com/2010/06/mini-stm32-wave-audio-player.html)
@strom teşekkür ederim. Resimdeki ekran Nokia 6610'a ait. Ancak aynı sistemde 1208-1600 ekranlarınıda çalıştırdım.
10'lu incecik bacakları olan soketleri var LCD'lerin, telefon tamircilerinden temin edilebilir, lehimlemesi biraz zor ama altı-üstü 10 pin.
6610-1208-1600 ekranlarının hepsinde aynı sürücü chip var, sadece bacak bağlantıları farklı. Nette mevcut bağlantılar.
İyi çalışmalar.