avatar_ete

I2C komut kullanımı ile ilgili yorum ihtiyacım var

Başlatan ete, 31 Aralık 2011, 10:40:00

ete

Bu entegre ile ilgili epeyce kod yazmıştım. Ancak başarılı olamayınca hepsini sildim attım.
Yeniden kod yazmak açıkçası işime gelmez. Çünki register tablsunu anlayıp kod yazmak lazım. İlk seferinde 10 gün uğraşmıştım data sheetle. Yeniden o maceraya girmek istemiyorum.
Bu arada yanlış anlaşılmasın. Başarısızlığın ardında yatan sebep muhtemelen entegrenin doğru dürüst bir karta yerleşmemesi. Zira entegre çok küçük. Alttan nokta bacaklı. Yandan bacak lehimi yapamazsınız. Mutlaka sıcak hava tabancası ile komple bir kerede lehimlenmeli. En önemlisi entegrenin orta alt kısmı gnd bağlantısı ve bu bağlantının bile yapılıp yapılamadığını görmek mümkün değil. Donanım olarak çok zor bir entegre. Şimdiden Allah sabır versin diyorum size.
Ete

sozkarabacak

Merhaba,
Bir radyo amatörü arkadaş sağolsun aşağıdaki register tablosunu gönderdi. Bu tabloda datasheetteki hatalar düzeltilmiş. Belki sizinde işinize yarar diye burada paylaşıyorum. Kolay gelsin. Ama bu entegreyle ilgili örnek bir kod hazırlarsanız bu entegreyle uğraşan ve pek bir kaynak bulamayan bayağı kişiye yardımcı olmuş olursunuz:):):):)

ete

Bu aletin programlama klavuzunda (programming guide) bunların hepsi var zaten. Verdiğin excel tablosu o klavuz temel alınarak hazırlanmış gibi.
Çok karmaşık bir entegre. Karmaşıklığı yüzlerce fonksiyonundan geliyor. Üstelik çalıştırıp çalıştırmadığını anlayabileceğin bir konumuda yok üstelik. Bu entegre ile konuyu sular seller gibi bilen birisinin uğraşması gerek.
Haberleşme için bence I2C tercih edilmeli ve device adres formatına dikkat edilmelidir yalnızca.
Öyle uzun boylu anlatılacak bir kod gereksinimi yok aslında standart I2C komutlarını uygulayın olsun bitsin.
Ben uğraşmak istemiyorum. Çünki bu entegre bana epeyce sıkıntı vermiş idi. Yemiden o sıkıntıya girmek istemiyorum. Bana amaçsız yapılacak bir iş gibi gözüküyor.

Diyelimki bir devre hazırladınız. Üzerinde bu entegre yer alıyor. Hangi komutu verip de karşılığında ne görmeyi umarsınız bunun cevabını bana verin fikrimi söyleyeyim. Frekans kilitleme vs konularını geçin çünki onun için çok esaslı bir telsiz devreniz olması gerekiyor. Varsa böyle bir sisteminiz sözüm yok .

Ete

ta3ag

Değerli Arkadaşlarım ve Karabacak.


1.  RDA1846 için çalışılacak frekansı hesaplama yöntemi;

Örnek frq= 433.500 Mhz = 433500 Khz

433500 * 8 = 3468000

Hexadecimal olarak   =  0034EAE0
               Hex   =      0    0    3    4    E    A    E    0
Binary olarak  Bin   =   0000 0000 0011 0100 1110 1010 1110 0000

Datasheet şöyle der:  bu toplam  32 bitlik sayının  sondaki 0 ıncı bit ile 15. biti dahil olan sayıyı( EAE0 )

ayır ve bunu frq alt değer olarak 2a adresine yolla. bunu yaparken adres ve datayı birleştirip her adres için

tek seferde göndereceksin. yani 2a adresine göndereceğin veri şöyle olacak =  2AEAE0

Diğer sayıyı yani 16. bit ve 32. bit dahil olan sayıyı ( 0034 ) ayır ve bunu frq üst değer olarak 29 adresine yolla.
aynı şekilde adres ve data birleşerek tek seferde yollanacak.  ikinci veri şöyle olacak = 290034



RXadr_29=0x00290034;
delay; ( iki veri arasına çok ufak bir gecikme koy )
RXadr_2A=0x002AEAE0;

2.  evet bu verileri RDA ya nasıl yollayacaksın.
Ben SPI olarak yollamayı tercih ettim ve rutini oluşturdum. derleyicilerin kendi hazır rutinlerine bağlı kalmadım. sebebi malum.

datasheet derki;

3 wire spi grafiğinden anlaşıldığı üzere
ilk önce sclk palsı low olmalı , sen low olmalı
delay

sonra sclk palsı high yap
adresin 7. bitini yani toplam verinin 23. bitini test et 1 se SDIO yu high yap 0 sa low yap.
sclk palsını 0 yap
delay

sclk palsı high yap
adresin 6. bitini yani toplam verinin 22. bitini test et 1 se SDIO yu high yap 0 sa low yap.
sclk palsını 0 yap
delay
  .
  .
  .
  .
  .
bu işlemi toplam 23 bitin 0. bitine kadar yap



0. biti yolladıktan sonra
sclk low yap
sen  high yap

veri RDA ya ulaştı.

bu SPI olarak yapabileceğin en basit yöntemlerden biri.

Bunu for next(BASIC)  yada for (C) döngüsü içerisindede kurabilirsin daha kısa olur,

Daha başka yöntemlerde var tabii sana kalmış.

  Bu arada Register tablosundaki sıralamaya uyarak bir init ve çalışma rutini oluşturursan
RDA ya istediğini yaptırabilirsin.

Datasheet i iyice incelersen müthiş becerikli bir entegre olduğunu göreceksin.

Anlatım tarzım ve yöntemim çok iyi olmayabilir kusura bakma.

umarım faydalı olmuşumdur. Başarılar diliyorum. Neticeden haberdar edersen sevinirim.


de TA3AG.

Powered by EzPortal