avatar_elektro77

SPI veya 12C veya seri iletişim

Başlatan elektro77, 13 Ocak 2020, 08:57:11

elektro77

Merhabalar.
SPI veya 12C veya Seri usart iletişim kullanılan bir alıcıda vericiden gelen bilgileri nasıl tespit edebiliriz. Hani şu tv kumanda datalarını çözdüğünüz bir yöntem var. Buna benzer bir yöntemle vericisi bozulmuş bir cihaza yeni verici yapabilmek için ne gibi bir yol izlenebilir.
 
Bir sistemde hangi iletişim türü kullanıldığı nasıl belirlenir?

İletişim türü belirlenmiş bir sistemde verici yani master datalarını bilmiyorsak nasıl bir yol izlenip bir slave yapabiliriz.
amaç sadece iletişim türünü belirlemek ve bir tane dahi olsa doğru bir data yollayıp alıcıdaki tepkiyi görmek. Doğru olan bu tek data sayesinde de diğer doğru dataları deneme yanılma ile bulmaya çalışmak doğru bir yolmudur. Yapılabilirliği varmıdır.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Tespit işinin  en kolayı örnek veri alma bölümleri yazıp denemektir. I2C de standart bir alışveriş sözkonusudur Nispeten daha kolaydır. Ancak kaç veri geldiğinide bilmek gerekiyor. bilmiyorsan en azındn tek veri alırsın alınabiliyor ise vede bildiğin bir veri ise tespiti çok kolay olur.
SPI sisteminde ise bir kaç farklı versiyon bulunuyor. Verileri MSF first yani yükek bit'den alça bite doğru gönderme , yada LSB-First yani alçak bitten yüksek bite doğru gönderme seçenekleri olduğu gibi Clk seviyesi lowdan High'a geçerken veri yollama yada Highdan Lowa geçerken veri yollama gibi seçenekler de vardır. Ancak bunlar seni çok fazla ilgilendirmez sanırım.
Seni ilgilendirecek olan verinin yüksek bitden mi başladığı yoksa alçak bit denmi başladığıdır. Zira doğru bilgi bunu bilirsen eline geçer. Aksi taktirde alakasız yada olması gerekenin tersi bir bilgi almış olursun.

Diğer bir kolay yöntem de , bir lojik analizör kullanıp gelen verileri alıp kayıt etmek ve Lojik analizör arayüzün haberleşme tipini belirlemesini beklemektir. Saleae isimli Lojik analizör arayüzü gelen verinin hangi haberleşme sistemini uyguladığını çoğunlukla belirleyebilmektedir.

Ete

elektro77

hocam elimde kontrol paneli bozuk bir koşu bandı var.
Bu koşu bandına bir kontrol paneli yapmak istiyorum.
Motor sürücüsü kontrol panelinden gelen datalara göre satart alıyor ve yine datalara göre hızlanıp yavaşlıyor. Başkada bir işlem yok. Start-stop-hızlan ve yavaşla.
motor sürücüsüne hangi algoritmalar ile nasıl kodlar yollayıp çalıştırabilirim bunu araştırıyorum.
Yukarıda bahsettiğiniz spı iletişimde:MSF-LSB-Clk seviyesi lowdan High'a geçerken-Highdan Lowa geçerken veri yollama,12C iletişim ve diğer iletişim yolları ile yapılmış bu motor sürücüde tepki alabileceğime inandığınız bir kaç kod örneği ve açıklama yapabilirmisiniz?
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Ders notlarında SPI ile haberleşme notlarına bak orada olması lazım örnekler.
MCS de SHIFTOUT komutu üzerine kursörü getirip F1 tuşuna basarsan ekrana o komutla ilgili açıklamalar gelir orada da parametreleri görebilirsin.

Benzer uygulamayı I2CWrite komutu içinde yapabilirsin.

Ete

elektro77

Alıntı yapılan: ete - 13 Ocak 2020, 15:03:11Ders notlarında SPI ile haberleşme notlarına bak orada olması lazım örnekler.
MCS de SHIFTOUT komutu üzerine kursörü getirip F1 tuşuna basarsan ekrana o komutla ilgili açıklamalar gelir orada da parametreleri görebilirsin.

Benzer uygulamayı I2CWrite komutu içinde yapabilirsin.

Ete

Peki hocam işlemcide hangi pinlerin kullanıldığı bize iletişim türü ile ilgili bilgileri verirmi? Bunlar nelerdir?
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Hem I2C hemde SPI için serbest modda rastgele pinler kullanılabilir. Ancak işlemcinin donanımsal portunu (MSSP) kullanmak için elbette o iş için ayrılmış pinler kullanılmalı. Bunun için işlemcinin MSSP1 ve var ise MSSP2 için ayrılmış pinlerine bakmak gerek.

Ete


Powered by EzPortal