Koda bir bakabilir misiniz ?

Başlatan Deli_Nedym, 14 Ocak 2013, 18:54:09

Deli_Nedym

stm32f4 kiti ile kullanıyorum keili ve aşağıdaki kodu yazıp dac kullanarak pa4 pininden ses çıkışı almak istiyorum. Keili da ilk kez kullanıyorum bir yardımcı olabilir misiniz hocalar ?
//   DAC1 kullanacagiz
 
     GPIOA->MODER=0xA8000200;        // GPIOA4 Analog inp yapildi
     RCC->APB1ENR|=1<<29;            // Artislik olsun (0x20000000 ile OR yap demek)
     DAC->CR=0x00000003;             // DAC1 ve Bufferi aktif edelim
 
//   Timer 7 ile calisalim
 
     RCC->APB1ENR|=0x00000020;       // Timer7 CLK'u aktif edelim (84 Mhz)
     TIM7->CR1=0x0080;               // Otomatik Reload
     TIM7->PSC =0;                   // Prescaler cikis frekansimiz 84Mhz
     TIM7->ARR =84000000/SampleRate; // Counter, Decimal 1 olunca basa donsun. 
     TIM7->DIER=0x0001;              // Update Int enable
     NVIC->ISER[1] = 0X00800000;     // NVIC de Timer 7 interrupta izin verelim
     TIM7->CR1|=0x0001;              // Counter Enable
} 
 
void TIM7_IRQHandler()
{
static int Indx=0;
 
    TIM7->SR=0;                       // Timer Int Flagini silelim
    if (Indx<NumOfData)
      {
        DAC->DHR12R1=Wav[Indx]<<4;
        Indx++;
      }
    GPIOD->ODR^=0xF000;
} 
 
int main()
{
    while(1);
}


wav.c proje klasöründe ve kodun en üstünde #include ile tanımlı. Kod derlenince bir hata vermiyor ancak pa4 pininden herhangi bir ses çıkışı alamadım. Farklı wav.c dosyaları oluşturup onlarla da denedim fakat sonuç hep aynı. Ses çıkışı almam gerekiyor nasıl yaparız   ???

z

Programlar çalışıyordu. Test ettiğim için biliyorum. Sesi nasıl alıyorsun? Nasıl bir sistemden dinliyorsun?

PA4 pinine 1uF nin + bacağını bağla.  Eksi bacağından da PC ye bağlanan  ses sistemine gir.

(Harici hoparlörler + içinde amplifikatör olanlardan. 220v dan adaptörle beslenen.)

Bu durumda sesi sorunsuz dinleyebilmen gerekiyor.

Acaba math işlemci sorunu mu var. Target for optionda, math işlemciyi kullanma seçeneğini işaretlemeyi unutma.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Deli_Nedym

#2
Öncelikle cevabınız için çok müteşekkirim z hocam.
https://www.picproje.org/index.php/topic,44564.0.html Burada detaylı bir şekilde yazmıştım hocam. Ben bir opamp yardımıyla yaptığım devrede pa4 pininden aldığım jak çıkışına doğrudan hoparlör bağlıyorum da ses değil gürültü geliyor sadece. Linkteki program konuşan tavla zarı adlı programınız ama soru olarak sorduğum kodlarda hiç ses çıkışı alamadım.
Hocam 1uf kondansatörün + bacağını pa4 pinine bağladım. Eksi bacağını da hoparlarün jak girişine krokodille tutturdum. Yine vidyodakiyle aynı ses yani gürültü çıktı. Sizin dediğinize göre pc'ye bağlanan ses sistemine gir derken ne yapacağımı tam anlayamadım ? Pc laptop bende -ses kartı içinse ulaşmam zor :(
Birde target for option da math işlemciye hangi sekmeden bakıyoruz hocam ? Bulamadım onu da maalesef ...
Şimdiden çok teşekkürler, kolay gelsin, iyi çalışmalar...

z

#3
PA4 piniyle doğrudan hoparlor süremezsin. Hatta kulaklık bile süremezsin.

Aşağıdakine benzer bir devre yapmalısın.



Girişteki 100 Ohm potu 10K olarak değiştirmelisin.

Aşağıdaki devre de olabilir.



8 bacaklı amplifikatör çipleri olacak. 1/2w vs. Picprojede değişik kereler şemalarını vermiştik. Şu anda hatırlamıyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Deli_Nedym

Eyvallah hocam çok makbule geçti devreyi kuracak malzemeleri yarın edinip bi an önce kurucam devreyi.
Bi de math işlemci vardı target options da ama ?  ???
Kolay gelsin, iyi çalışmalar... Tekrar teşekkürler


Deli_Nedym

#6
Keil programında istediğim frekansta sinüs sinyali üretip bunu arm işlemcimin dac çıkışından alıp dinleyebilir miyim acaba ? Öncelikle sinüs oluşturup oluşturamayacağımı düşünüyorum bilen arkadaşlar yardımcı olursa sevinirm...

pisayisi

Sinüs bilgisini içeren bir lookup table oluşturup, arzuladığın işaretin frekans ve çözünürlüğüne uygun bir timer kesmesi ile bu tablo içeriğini dac çıkışına yazdıracaksın...
Murat

Deli_Nedym