Picproje Elektronik Sitesi

DERLEYİCİLER => MikroC - PIC => MikroC ARM => Konuyu başlatan: emre salman - 30 Mart 2014, 18:27:58

Başlık: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 18:27:58
herkese  iyi günler mikroc pro for arm derleyicindeki mmc kütüphanesi ile  mmc karttan wav dosyası okutup çaldırmaya çalışıyorum wav dosyam 8bit mono
ama hala bu işi başarmış değilim daha önce mikroc ile arm programlama kitabında anlatıldıgı gibi flasha wav dosyasının hex kodlarını gömüp çaldırmıştım şimdi sd kart kullanıp çaldırıyım dedim ama başarılı olamadım :S
kodlar aşağıdaki gibidir muhtemelen çok büyük bir yanlışım var daha yeniyim bu konularda yanlısım neredeyse bana gösterebilir misiniz


sbit Mmc_Chip_Select at GPIOE_ODR.B3;
int i=0;
int cnt=0;
unsigned long z=0;
unsigned short datam;
unsigned long zz;
unsigned long zx;
unsigned long size;
unsigned short duty1;
unsigned long sectorNo;
unsigned short veri[512];


void kurulum()
{
RCC_APB1ENR.TIM7EN = 1;
TIM7_CR1.CEN = 0;
TIM7_PSC = 0;
TIM7_ARR = 10499;
NVIC_IntEnable(IVT_INT_TIM7);
TIM7_DIER.UIE = 1;
TIM7_CR1.CEN = 1;
RCC_APB1ENR.DACEN=1;

GPIO_Analog_Input(&GPIOA_BASE,_GPIO_PINMASK_4);
DAC_CR=1;
Mmc_Fat_Init();
Mmc_Fat_Assign("DENEME1.WAV",0x01);
Mmc_Fat_Reset(&size);
}
void mmc(){
Mmc_Fat_Read(&datam);
}



void main() {
kurulum();
mmc();

}

void Timer7_interrupt()iv IVT_INT_TIM7
{
TIM7_SR.UIF = 0;
DAC_DHR12R1=(datam);
i++;
if(i==512)i=0;
}
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 18:31:15
SPI init hani?
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: tntgonzales - 30 Mart 2014, 18:32:50
dostum bende bu uygulamayı yaptım ama sesi çok kısıktı senin hoparlörden gelen ses nasıldı ?
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 18:48:15
evet hocam onu sonradan bende fark ettim şimdi onunla uğraşıyorum ama sonuç alamadım
yeni kodlarım böyle

sbit Mmc_Chip_Select at GPIOE_ODR.B3;
int i=0;
int cnt=0;
unsigned long z=0;
unsigned short datam;
unsigned long zz;
unsigned long zx;
unsigned long size;
unsigned short duty1;
unsigned long sectorNo;
unsigned short veri[512];


void kurulum()
{
RCC_APB1ENR.TIM7EN = 1;
TIM7_CR1.CEN = 0;
TIM7_PSC = 0;
TIM7_ARR = 10499;
NVIC_IntEnable(IVT_INT_TIM7);
TIM7_DIER.UIE = 1;
TIM7_CR1.CEN = 1;
RCC_APB1ENR.DACEN=1;
SPI3_Init();             //hocam bu şekilde kullanabilir miyim acaba böyle yaptım ses alamadım yine
Mmc_Fat_Init();
Mmc_Fat_Assign("DENEME1.WAV",0x01);
Mmc_Fat_Reset(&size);
}
void mmc(){
Mmc_Fat_Read(&datam);
}



void main() {
kurulum();
mmc();
while(1){}

}

void Timer7_interrupt()iv IVT_INT_TIM7
{
TIM7_SR.UIF = 0;
DAC_DHR12R1=(datam);
i++;
if(i==512)i=0;
}


mesaj birleştirme:: 30 Mart 2014, 19:01:37

hocam ben henüz ses çıkartamadım ki
bir ses çıkartabilsem kısıkta olsa bir aşama atlamış olacam acaba siz nasıl yaptınız benim hatam nerde siz kodlarınızı paylaşabilir misiniz burda
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: tntgonzales - 30 Mart 2014, 19:11:24
ben sd karttan okutmadım dostum. kitaptaki uygulamayı yaptım.orada da ses kısık geldi. sen de o kitaptaki uygulamayı yaptım dediğin için merak ettim nasıl yüksek ses aldığını sorudm
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 19:16:08
SPI1_Init_Advanced(_SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT |
                     _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                     _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                     &_GPIO_MODULE_SPI1_PB345);                // PB3= SCK, PB4=MISO, PB5=MOSI
Delay_ms(100);
   if (!Mmc_Fat_Init()) {// FAT init edildikten sonra Hız coşturuluyor..
 
    // reinitialize spi at higher speed
    SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT |
                       _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                       _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                       &_GPIO_MODULE_SPI1_PB345);


Hoparlörü direk PA4'e bağlayamazsınız. Pini veya işlemciyi yakabilirsiniz. Kitapta bunun uyarısını yaptım. Kulaklığa veya herhangi bir ses yükseltecine bağlayın.
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 19:21:06
ses yükseltecine bağladım hocam zaten direk bağlamadım şimdi verdiğiniz spı_initi deneyip size geri dönecem
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 19:24:45
Sana yazmadım zaten, üstteki arkadaşa yazdım onu...
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 19:36:29
hocam ekledim sizin verdiklerinizide ama hala bir ses alamadım :(

sanırım benım dac sürme şeklimde bir hata var ya sizide çok uğraştırıyorum ama henüz bir ilerleme kaydedemedim hala birde spı1 bağlantıları yazdığınız gibi demi
sbit Mmc_Chip_Select at GPIOE_ODR.B3;
int i=0;
int cnt=0;
unsigned long z=0;
unsigned short datam;
unsigned long zz;
unsigned long zx;
unsigned long size;
unsigned short duty1;
unsigned long sectorNo;
unsigned short veri[512];


void kurulum()
{
RCC_APB1ENR.TIM7EN = 1;
TIM7_CR1.CEN = 0;
TIM7_PSC = 0;
TIM7_ARR = 10499;
NVIC_IntEnable(IVT_INT_TIM7);
TIM7_DIER.UIE = 1;
TIM7_CR1.CEN = 1;
RCC_APB1ENR.DACEN=1;
SPI1_Init_Advanced(_SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT |
                     _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                     _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                     &_GPIO_MODULE_SPI1_PB345);                // PB3= SCK, PB4=MISO, PB5=MOSI
Delay_ms(100);
if (!Mmc_Fat_Init()) {// FAT init edildikten sonra Hız coşturuluyor..

    // reinitialize spi at higher speed
    SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT |
                       _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                       _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                       &_GPIO_MODULE_SPI1_PB345);            //hocam bu şekilde kullanabilir miyim acaba böyle yaptım ses alamadım yine
                       }
Mmc_Fat_Init();
Mmc_Fat_Assign("DENEME1.WAV",0x01);
Mmc_Fat_Reset(&size);
}
void mmc()
{
Mmc_Fat_Read(&datam);
}

void main() {
kurulum();
mmc();
while(1){}

}

void Timer7_interrupt()iv IVT_INT_TIM7
{
TIM7_SR.UIF = 0;
DAC_DHR12R1=(datam);
i++;
if(i==512)i=0;
}
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 19:40:56

sbit Mmc_Chip_Select at GPIOE_ODR.B3;
int i=0;
int cnt=0;
unsigned long z=0;
unsigned short datam;
unsigned long zz;
unsigned long zx;
unsigned long size;
unsigned short duty1;
unsigned long sectorNo;
unsigned short veri[512];


void kurulum()
{
RCC_APB1ENR.TIM7EN = 1;
TIM7_CR1.CEN = 0;
TIM7_PSC = 0;
TIM7_ARR = 10499;
NVIC_IntEnable(IVT_INT_TIM7);
TIM7_DIER.UIE = 1;
TIM7_CR1.CEN = 1;
RCC_APB1ENR.DACEN=1;
SPI1_Init_Advanced(_SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT |
                     _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                     _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                     &_GPIO_MODULE_SPI1_PB345);                // PB3= SCK, PB4=MISO, PB5=MOSI
Delay_ms(100);
if (!Mmc_Fat_Init()) {// FAT init edildikten sonra Hız coşturuluyor..

    // reinitialize spi at higher speed
    SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT |
                       _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                       _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                       &_GPIO_MODULE_SPI1_PB345);            //hocam bu şekilde kullanabilir miyim acaba böyle yaptım ses alamadım yine
                       }
Mmc_Fat_Assign("DENEME1.WAV",0x01);
Mmc_Fat_Reset(&size);
}
void mmc()
{
Mmc_Fat_Read(&datam);
}

void main() {
kurulum();
while(1){}

}

void Timer7_interrupt()iv IVT_INT_TIM7
{
TIM7_SR.UIF = 0;
mmc();
DAC_DHR12R1=(datam);
i++;
if(i==size)i=0;
}



mesaj birleştirme:: 30 Mart 2014, 20:41:10

Böyle dene..
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 19:55:24
hocam yok olmadı ya acaba frekans ayarlarıındamı hata yapıyorum bölüm 3.5 teki gibi yani sayfa 66 daki gibi yapıyorum ayarlarıda
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 20:08:37
SD kartı fat 16 olarak biçimlendirdin mi? Aynen buradaki gibi üyük harflerle DENEME1.WAV olarak isimlendirdin mi dosyayı?
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 20:17:25
hocam benim attığım wav dosyası 8khz ama 8 bit değilmiş şuan 8 bit yapmaya çalışıyorum ama en düşük 16 bit seçebiliyorum sizin elinizde 8 bit bir wav dosyası varsa onunla deneyeyim

mesaj birleştirme:: 31 Mart 2014, 11:23:12

recall programından ses kaydı yapıp onunla denedim yine hiç bir ses yok bağlantı hatası filanda yok çözemedim bir türlü :(

mesaj birleştirme:: 31 Mart 2014, 11:23:42

küçük harflerle yazmıstım fat16 olarak biçimlendirdim

mesaj birleştirme:: 31 Mart 2014, 11:26:48

hocam fat olarak biçimlendirdim ayırma birimi 16 kilobayt DENEME1.WAV dosya ama ses soluk yok :(

mesaj birleştirme:: 31 Mart 2014, 11:30:58

ayrıca reset tuşuna bastığım andada küçük bir dıt sesi geliyor ama bunun dip ses oldugunu düşünüyorum

mesaj birleştirme:: 30 Mart 2014, 20:53:57

hocam benim dac kullanım şeklim doğrumu DAC_DHR12R1=(datam); bu şekildemi kullanıyorum bence burda bir hata var :S
bunu DAC_DHR12R1=(datam); olarak değiştirdim birde unsigned short datam[512] yaptım yine olmadı
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 20:56:25
http://www.dosya.tc/server26/dhfsql/MMCKartWavPlayer.rar.html (http://www.dosya.tc/server26/dhfsql/MMCKartWavPlayer.rar.html)
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 21:01:34
hocam hemen yarım saat içinde sizin gönderdiğiniz deniyecem çok teşekkür ederim ilgilendiğiniz için

mesaj birleştirme:: 30 Mart 2014, 21:44:20

Hocam şuan eve gelmek zorunda kaldım bir saate kadar iş yerine geri donecem anca o zaman deneye bilirim acaba siz denediniz mi bu programı onu merak ediyorum
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 22:08:58
hocam şuan deniyorum ama bunuda çalıştıramadım çok mu beceriksizim anlamadım ki hiç ses alamıyorum ilk başta besleme voltajı geldiğindeki hışırtı hariç
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 22:11:53
Verdigim ornek calisan ornektir. Cs pinini degistirmistim.

mesaj birleştirme:: 30 Mart 2014, 22:12:36

Bir de hangi ledler yaniyor?
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 22:13:13
mavi ile kırmızı yanıyor cs pinini pc3e aldım sizin örneği denerken

mesaj birleştirme:: 31 Mart 2014, 13:24:39

şuandada sadece mavi yanıyor reset attıgımda bazen tek basına kırmızı yanıyor bazen mavi ya anlamadım kesinlikle bağlantıda veya mmc kartta hata var ama bağlantı uçları filan kaç kere kontrol ettim doğru

mesaj birleştirme:: 31 Mart 2014, 13:26:18

beslemeyi kapatıp her açtığımda ledlerin durumu değişiyor şuandada hiç led yanmıyor :S

mesaj birleştirme:: 30 Mart 2014, 22:28:46

hocam tamamen silip tekrar verdiğiniz programı yükledim ve çalıştı sorunsuzz elinize saglık çok teşekkür ederim hakkınız vallaha ödenmez bir gün boyunca üşenmediniz benimle uğraştınız ne kadar teşekkür etsem az
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: LukeSkywalker - 30 Mart 2014, 22:38:29
Kolay gelsin..
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 30 Mart 2014, 23:26:22
konu başarıya ulaşmıştır @LukeSkywalker hocamın verdiği kodlar sorunsuz bir şekilde çalışmaktadır bu konuda proje yapmak isteyenlere ışık olsun kendisine sonsuz şükranlarımı sunarım
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: mltmsntrk - 12 Mayıs 2014, 17:41:35
Merhabalar.Ben de sizin gibi STm32f4 kullanarak sd karttan vaw dosyası kullanarak kulaklıktan ses almaya çalışıyoruz.Fakat SD kart ile stm arasındaki bağlantılarda problem yaşadığımızdan dolayı işlemi gerçekleştiremedik.Bağlantının nasıl yapılacağı konusunda yardımcı olabilirseniz çok sevinirim.Şimdiden teşekkürler.
Başlık: Ynt: sd karttan wav dosyasını stm32f407 ile çalma
Gönderen: emre salman - 25 Mayıs 2014, 18:12:45
@LukeSkywalker hocamızın verdiği kodlarımı kullandınız ?