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
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,959
Mesajlar
118,817
Üyeler
2,826
Son üye
CortexPhoton

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
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?
Back
Top