AD9833 SIN-GEN ARDUINO IDE(SPI lib.)

bu günlük geliştirmeye son veriyorum sabah devam edicem.
misafir geldi gitti bölündü kafam çok dağıldı
 
programda hala sorun var bazen frekansı değiştiriyor bazen değiştirmiyor.
 
modülün enerjisi kesilse'de set edilen frekansı unutmuyor.

frekansı değiştiremediğim halde hangi dalgayı açarsam açayım 500'de açılıyor.
dalga tipi sorunsuz değişiyor.

frekans değiştirmeyi'de başarırsam finale geliyoruz.
 
hmmm d14-d15'e yazmam gerekiyor frekansı ben sadece birine yazıyorum
hem 0xFFFC000
hemde 0x3FFF yazmam gerekiyor sanırım
 
C++:
(frq , 0x3FFF ,BIN)
Hmm bu şekilde yazınca sapıtıyor.
benim bunları binary olarak yazmam gerek böyle yazınca olmuyor | yazınca'da olmuyıor
 
O nasıl bir şey ya? Önüne HEX yazıp yanına BIN ekliyorsun. Doğru gelmedi bu bana.
 
bu dün bi kere 500 Hz'ye ayarlandı kaldı orada birdaha ayar yapamıyorum sadece dalga tipi değiştirebiliyorum
 
ama sürekli 500 çıkıyor sapma çok çok az 499un altına inmedi 502 üstüne çıkmadı dalga tipi ne olursa olsun hep bu aralıkta kaldı.
Program düzgün hale gelirse Timur abi ne kadar toleranslı çalıştığını tespit eder.
 
asdassad.png

Böyle operatörler buldum bunları deneyeceğim
 
Programda SPI.endTransaction fonksiyonlarını kaldır, onlara gerek yok. CS den sonraki delay'lere de gerek yok. Şimdilik yapılandırmayı bir kere yap ve işlemciyi sonsuz döngüye sok, bir daha ellemesin AD9833 ü.

Frekans hesabı da yanlış, long veri tipi ile bu hesabı yapamazsın, taşma olur.

C++:
double frequency = 12000.0;

void loop()
{
  double freq0 = round(frequency * 10.73741824);
}
 
FREQ0 değerini AD9833 e yazarken de datasheet'te belirtilen prosedürü uygulamamışsın. Şu picoyu monte edeyim bakalım ben de deneyeyim burada.
 
Programda SPI.endTransaction fonksiyonlarını kaldır, onlara gerek yok. CS den sonraki delay'lere de gerek yok. Şimdilik yapılandırmayı bir kere yap ve işlemciyi sonsuz döngüye sok, bir daha ellemesin AD9833 ü.

Frekans hesabı da yanlış, long veri tipi ile bu hesabı yapamazsın, taşma olur.

C++:
double frequency = 12000.0;

void loop()
{
  double freq0 = round(frequency * 10.73741824);
}
transferi bitirleri kaldırınca çok yavaş çalışıyor veri yazdıktan 2 saniye sonra geliyor ayarladığım dalga tipi.

1ms delayın işlevi olmayabilir ama 5.5saniye olan şimdilik kalmak zorunda art arda çok hızlı veri yazınca anlamlı bir çıkış göremiyprum skopotan ya setup kısmında halledeceğim yada yazdıktan sonra while(1) yapıp tekrar etmesine engel olacağım.

herhangi bir frekans ayarlaması yapamadığım için malesef şuan bilmiyorum doğru mu yanlış mı hesap yaptırdım onu başarınca göreceğim.

& kullanıunca çıkış bir anlığına istediğim frekansa yaklaşıp geri 500Hz'ye geliyor
 
kütüphaneden kopya çekme olsa şimdiye güzel halde yazardım bu herif nası bunu kusursuz çalıştırmış ya kendini camdan attıracak yada 220yi doğrultup besletecek kendini 300le(!)
 
Öncelikle SPI bus'a doğru veri çıkıyormu onu teyit et osiloskop ile. Döngü içinde sabit bir sayı yaz ve SS, SCK, MOSI ye bak. Böyle problemler çıkınca aşama aşama baştan kontrol etmen lazım.
 
Öncelikle SPI bus'a doğru veri çıkıyormu onu teyit et osiloskop ile. Döngü içinde sabit bir sayı yaz ve SS, SCK, MOSI ye bak. Böyle problemler çıkınca aşama aşama baştan kontrol etmen lazım.
abi bunu çalıştırıyorum
C++:
  void setup() {
    SPI.begin();
    SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE2));
 
  }
 
  void loop() {
    SPI.transfer16(15);
    SPI.endTransaction();
    delay(10);
 
  }

Veri gittiğni anlıyorum ama doğru gidip gitmediğini anlayamıyorum
 
üç sinyalin olduğu osiloskop ekranını koy beraber bakalım.
 
Mesela ben şimdi arduino uno'da SPI bus'a sürekli olarak 0x1234 yazdırıyorum. Protokol çözümleme yapmadan doğrudan SS, SCK, MOSI ye bakıyorum

a.png
 
benim skop 2 kanallı ama hallederim.
rahat anlaşılması için end'den sonra while(1) koyayım mı?

bu haliyle CS hiç devrye girmiyor hep 1 konumda

O zaman iki ayrı gözlem yap:

1) kanal 1 SS olsun kanal 2 SCK, görüntüyü al
2) kanal 1 SS olsun kanal 2 MOSI, görüntüyü al
 

Forum istatistikleri

Konular
5,917
Mesajlar
100,993
Üyeler
2,502
Son üye
FURKAN1

Son kaynaklar

Son profil mesajları

Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
Back
Top