16f877 mp3 gibi ses dosyalarını Okuma

Başlatan Elektrik2012, 20 Eylül 2013, 18:28:54

Elektrik2012

Merhaba acaba 16f877  epprom müzik dosyasını kaydedip sonra çalabiliyiz Yada Hex dosyasına Müzik dosyasını hex çevirip filan :D İşlemciden biraz fazla şey mi istedim yoksa :)

fatih6761

MP3 çözme sorun değil ancak PIC'ler o kadar hafızaya zahip değiller. Harici bir SD kart ile çok kolaylıkla yapılabilir. MP4'ten kastın video oynatmak ise hem mpeg çözme hem ekranı sürme için ARM işlemci daha uygun olur. FPU ünitesine sahip bir ARM işlemci ile çok daha güzel olur :)

Elektrik2012

Anladım fatih hocam Öncelikle ilgilendiginiz için Teşekkürler Ben sadece ses dosyasını çalıştırmak istiyorum Sd kart olabilir :) Daha önce bi denemem oldu baskısı vs herşeyi yaptım çalışmamıştı :) Herhalde sd kart bağlantılarını yanlış yaptım :) Sd kard değilde Usb bellek olsa daha kolay olur  CCS C ile yazmak istiyorum :)

-Hasan-

Hocam size tavsiyem bu işe SD kart ve FAT kullanmadan WAV dosyaları ile başlayın.

FAT kullanmadan dememin sebebi; önce belirli ses datalarını uygun zamanlama ile çıkışa nasıl örnekleyeceğinizi ve donanımda ne yapmanız gerektiğini (DC kuplaj, filtre, buffer vs.) iyice bir kavrayın. Zira bu olayı kavramadan FAT ' ı işin içine sokarsanız daha başlamadan sıkılabilirsiniz.  :)

SD kart ile başlayın dememin sebebi de; SD karttan data okumak USB belleğe göre çok daha kolaydır. SD kartı basit bir SPI protokolü ile okuyabilecekken, USB belleği okuyabilmeniz için USB donanımını kullanmanız gerekir. Bu da birazcık USB bilmeden olmaz tabi.

WAV dosyaları doğrudan dijitalize edilmiş analog ses bilgileridir. Yani uygun örnekleme zamanlarında çıkışa datayı aktarabilirseniz doğrudan sesi dinleyebilirsiniz. MP3 biraz daha karışık bir iş. Sıkıştırılmış ses dataları olduğu için MP3 çözücü kütüphaneler olması gerekiyor. Fatih Hocamın da dediği gibi düşük bellek ve hıza sahip işlemcilerle MP3 okumak pek mümkün değil.

Bir ara ben de Assembler ' de WAV dosyası dinleme uygulaması yapmıştım. Analog bilgim o zamanlar yetersiz olduğu için sesteki cızırtı meselesini çözememiştin ama yine de ses dinlenebiliyordu.

Benim teknik şöyleydi:
*Bir MP3 dosyasını 8 bit 44.1 kHz Mono WAV dosyasına çevir.
*Bu dosyayı SD kartın içine at.
*Daha sonra WINHEX programı ile ses datalarının başlangıç adresini bul.
*PIC programının o adresten itibaren dataları örneklemesini sağla.

PIC programında da ana programda dataları 512 byte ' lık bolklar halinde okuyup RAM ' da belirlediğim bir buffer bölgesine yazıyordum. 44.1 kHz lik kesme programı da dataları birer birer bu bölgeden okuyup PWM ' yazıyordu.

Ben bu işi PIC18F4620 ile yapmıştım. Siz de PIC ile yapacaksanız 18F serisinden bir PIC seçin.

Umarım yardımcı olmuşumdur. İyi çalışmalar.

Elektrik2012

Öncelikle bu verdiginiz bilgiler benim için servet değerinde Size sonsuz saygı ve Teşekkürlerimi sunarım.Bende usb okumak daha kolaydır diye düşündüm çünkü 2 data ucu var :) Ama sd kart öyle değil diye düşünüyorum.Sd kart yuvasının gireceği yeri piyasada bulamamıştım :) En sonunda card reader gibi bir şey vardı ona kablo lehimleyip denemiştim ama ilk denemem olumsuz olmuştu.16f876 kullanmıştım internette bulmuştum örneği :)
Ben usb kullanmak istiyorum daha kolay olur diye Ama :) Dediginiz gibiyse daha zor  Biraz araştırmam gerekecek :) Ben usb bellek not defterinde bir şey kaydeetsem onu lcd göstermek istesem mümkünmü :)

-Hasan-

#5
SD kart soketleri bazı yerlerde pek yaygın değil. Ben de Antalya ' da bulamamıştım. Bu ihtiyacımı da 2.5 TL ' lik SD kart okuyucusu ile gidredim.  :) Hem de iki tane soketim oldu; biri MicroSD diğeri standart SD.  :D

Alıntı yapılan: Elektrik2012 - 21 Eylül 2013, 12:06:29
Ben usb bellek not defterinde bir şey kaydeetsem onu lcd göstermek istesem mümkünmü :)

Dediğiniz şey mümkün ancak söylemeyi unuttum; USB bellek gibi cihazlardan veri okuyabilmek için Host yada OTG USB donanımı olan bir MCU ' ya ihtiyacınız var. Yani bu durumda PIC i bile unutacaksınız.  :) ARM ' ların bir çoğunda bu donanım var. Belki PIC ' lerin üst serilerinde vardır ama kesin bilmiyorum. Bunun dışında dediğim gibi biraz USB hakkında bilgi sahibi olmadan olmaz. Benim de bu konuda bir tecrübem yok maalesef. Ama uğraşacaksan bilen arkadaşlar çıkar.

Dediğim gibi bu işlere başlangıçta SD kart daha kullanışlıdır. SD kart soket meselesini, MicroSD adaptöre header lehimleyerek yapanlar da var. bu da aklınızda olsun.

Rica ederim, iyi çalışmalar.

Elektrik2012

Tekrar teşekkür ederim anladım sd kart ile başlamam lazım :) Fakat arm bilgim 0 Daha hiç başlamadım ama Arm başlamak istiyorum pic artık küçük geliyor

AYKIRI

#7
microchipin sitesinden alıntıdır. OTG support olan 16 bit piclerin bazıları. 16 bit ve üzeri olanların hemen hemen hepsi otgli

PIC24FJ32GB002    Full Speed (Device, Host, OTG)    USB 2.0 OTG    32    8192    28    2 -UART 2 -SPI 2 -I2C
PIC24FJ32GB004    Full Speed (Device, Host, OTG)    USB 2.0 OTG    32    8192    44    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB002    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    28    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB004    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    44    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ128GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    128    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GB108    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    80    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GC006    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    64    4 -UART 2 -SPI 2 -I2C
PIC24FJ192GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    192    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GB110    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    100    4 -UART 3 -SPI 3 -I2C


link http://www.microchip.com/pagehandler/en-us/technology/usb/products/devicemcus.html

Elektrik2012

Teşekkürler ilginizden dolayı otg nedir tam olarak :) Yani usb bağlantısı yapılabilir Okuma özelliği olan mı?

fatih6761

OTG : On-The-Go. Bu özellik USB cihazın hem Host hem de Device Olarak davranabilmesini sağlar. Yani OTG veya Host olmayan bir cihaz yalnıca slave olarak iletişim kurabilir. Ancak iki slave cihaz kendi aralarında iletişim kuramaz. USB fare/klavye/flash bellek vs. bu şekildedir. USB bellekten veri okuyabilmek için onun bağlanacağı cihaz USB Host olmalıdır. OTG ise bu ikisini birleştirir. Eğer siz bir usb fare yapmak istiyorsanız USB HID modunda kullanılır. Eğer bir usb bellekten veri okumak istiyorsanız aynı modül Host gibi davranır.
Örneğin, OTG özelliğine sahip bir telefon/tablet pc'ye bir usb bellek bağlarsanız telefon host gibi davranır ve iletişimde telefon master, bellek slave olur. Eğer telefonu bilgisayara bağlarsanız telefon host özelliğini bırakır ve bilgisayar master, tel. slave olur.

Elektrik2012

Fatih hocam Bilgileriniz için sonsuz Teşekkür ederim.Otg öğrenmiş oldum sayenizde Allah razı olsun  ??? Fakat şuan bu usb Konusu kafamda allak bullak oldu.Basit bir kaç uygulama yaparsam anlıycam Galiba :) Usb 16f877 uygulama yapabilirmiyim?Otg olmadıgı içni yapamam galiba onun için 18 serisini kullanıcam 18f450 Gibi Dogrumu?  ;D

-Hasan-

18F4550 ' deki USB Device özelliğinde. Size OTG lazım. Dediğim gibi 18F serisini unutun. AYKIRI arkadaşımız sağolsun OTG USB ' si olan PIC ' leri yazmış. İlla PIC diyorsanız bu listeden bir seçim yapacaksınız demektir.

Alıntı yapılan: AYKIRI - 21 Eylül 2013, 12:51:20
microchipin sitesinden alıntıdır. OTG support olan 16 bit piclerin bazıları. 16 bit ve üzeri olanların hemen hemen hepsi otgli

PIC24FJ32GB002    Full Speed (Device, Host, OTG)    USB 2.0 OTG    32    8192    28    2 -UART 2 -SPI 2 -I2C
PIC24FJ32GB004    Full Speed (Device, Host, OTG)    USB 2.0 OTG    32    8192    44    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB002    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    28    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB004    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    44    2 -UART 2 -SPI 2 -I2C
PIC24FJ64GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ128GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    128    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GB108    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    80    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GC006    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    8192    64    4 -UART 2 -SPI 2 -I2C
PIC24FJ192GB106    Full Speed (Device, Host, OTG)    USB 2.0 OTG    192    16384    64    4 -UART 3 -SPI 3 -I2C
PIC24FJ64GB110    Full Speed (Device, Host, OTG)    USB 2.0 OTG    64    16384    100    4 -UART 3 -SPI 3 -I2C
link http://www.microchip.com/pagehandler/en-us/technology/usb/products/devicemcus.html

Elektrik2012

Kusura bakmayın 18 serisi nerden aklıma geldiyse yanlış yazmışım.24serisi kullanıcam Teşekkürelr Basit örnek uygulamalar ne olabilir?Usb ile Teşekkrüelr  ;D

-Hasan-

18F ile Device USB yapsaydınız örnek uygulama çoktu. Ama OTG olunca işler değişiyor. Türkçe bulmanız imkansız gibi. Ancak siz başlangıcı yaparsanız, bilen arkadaşlarımız muhakkak yardımcı olacaklardır.

İyi çalışmalar.

LukeSkywalker