avatar_ete

Ders Notlarına ilaveler-11_ Donanımsal SPI ve I2C kullanımı

Başlatan ete, 27 Mayıs 2016, 11:13:47

ete

Yeni bir ders notu hazırladım. Aslında konu epeyce geniş ve üzerinde kitap yazılabilecek bir konu ama kısa tutup bizim gibi amatör programcıları ilgilendireceği kadar konulara değinip gerekli açıklamaları verdim. Bu konu bazı pic işlemcilerde bulunan MSSP (Master-Slave-Serial-Port) modülünü kullanarak dış dünya ile haberleşmenin nasıl yapılacağını anlatmaktadır. Daha ziyade SPI ve I2C haberleşmesini anlatmaktadır. Aslında bu konuda kullandığımız Basic komutları var. Ancak pek çoğunuz belkide karşılaşmıştır bu komutlar çoklu işlemlerde çok yavaş kalmaktadır. Örneğin SHIFTOUT komutu  yerine donanımsal SPI komutlarını kullanırsanız hız açısından en azından 10 kat avantajınız oluyor. Bu hız farkını P10 panelleri sürerken bizzat yaşamıştım. Gerçekten çok belirgin bir hız farkı var. Elbette tavsiyem hızın gerekmediği durumlarda yada haberleşme hacminin çok yüksek olmadığı durumlarda siz yinede Basic komutlarını kullanmaya devam edin. Ama çok hacimli işlerde kesinlikle bu donanımsal komutların hız farkını düşünün derim.

Her zaman olduğu gibi bu notarı yazarken kafama estiği gibi yazıyorum. Bazı hatalarım olabilir. Var ise ikaz ederseniz düzeltirim. Yada eksik kalmış hususlar var ise açıklayın ilave etmeye çalışayım.
Umarım birilerinin işine yarar.

Ete

Mustafa48

Sayın ETE hocam verdiğiniz emeğin karşılığı ödenmez. Teşekkür ediyorum.
Bu günlerde Network üzerinde haberleşme ile çalışıyorum. Piyasada hazır moduller
var. İşlemcinin Tx,Rx uçlarını giriyorsunuz,arayüz programı ile IP adresi ve port
numarası  verip haberleşme sağlıyorsunuz. Aynı ağ üzerinde çok rahat hemen hemen
hatasız ve hızlı haberleşme sağlıyorsunuz. Bu hazır modüller 150-200 lira civarında
Birde ENC28J60 gibi hazır kitli 15-20 lira civarında SPI interface li modüller mevcut.
Biraz incelediğimde 10 Mbps lerde network haberleşmesi sağlıyor. Bu modüle static
IP adresi bir port numarası yada daha ileri gidip dinamik IP adresi almasını sağlamak
Basic le nasıl olacak yada mümkün mü.  Datasheet incelediğimde  control register de
MAC adresleme yapıldığını gördüm. IP adreslemeyi göremedim yada datasheet i düzgün
okuyamadım. Bu konuda öneriniz varsa  yazmanızı rica ediyorum.

ete

Mustafa48,
Çok geniş bir konuyu dar bir çerçevede anlatmaya çalışıp sorunu sormuşsun.
Olaya mikroişlemci haberleşmesi açısından bakar isek ki birden fazla ünite bir araya gelince buda bir network oluşturabilir IP adresi ve port numarası gibi parametrelerin yer alamayacağını kolaylıkla anlarsın. PC ler arası bir haberleşme veya network olayı var ise bunlarda elbette IP adres ve Port numarası gibi parametreler kullanılabilir. Bu konu bizim burada üzerinde durduğumuz konuların dışında bir konu ve bilgi alanımın da biraz dışına çıkıyor maalesef. İşin içine BAsic de karıştırdığına göre mikroişlemci ile PC arası bir haberleşme düşünüyor olmalısın. Bu durumda PC tarafı Basic tarafına uyum sağlamalı. Zİra Basic de IP adres veya PORT adresi gibi parametreler kullanılmıyor. Port Adresi genelde COM port (yada sanal COM port) numarası olarak karşımıza çıkar. PC tarafından bir çıkış sağlayabilmeniz için arada kullandığınız USB to RS232 veya USB to RS485 donanım sürücüsü sanal port yaratıp oradan dışarı çıkış vermenizi sağlar. USB den çıkmanıza rağmen sistem RS232 veya 486 ya çevrildiği için onunda bir port parametresi olacağı için bu numarayı kullanırsınız. Bu PC yi ilgilendiren bir konu.
IP meselesi ile ilgili bir şey söyleyemem. Çok fazla anladığım bir konu diyemem. Anladığım tek şey PC ler arası haberleşmede cihaz adresi gibi düşünüldüğüdür. Ama bizim sistemimizle bağdaştırmak zor bunu.

Ete

Mustafa48

Teşekkür ediyorum hocam Aslında yalnızca PIC to PIC çalışıyorum.kablo
çekmek pek işime gelmiyor. Hazır network altyapısını kullanmak daha kolay
Daha önce bahsettiğim gibi hazır modul alıp kullandığım oldu. Hale hazırda
2 pic arası basic le yazılmış network üzerinde çalışan projelerim mevcut.
Ama PIC ten sonrasını ATMEGA 32 gibi serial to network arabirimler hallediyor.
bu arabirime rs232 yada rs 485 haberleşmeyi sağlayıp datanızı network a aktarabiliyorsunuz.
network un başka noktasında tekrar arabirimden seri  datayı alıp PIC ile istediğiniz forma
getiriyorsuz.  Bu konuda biraz daha araştırma yapmam gerekli olduğunu düşünüyorum
ENC28J60 modülünü SPI üzerinden kontrol edebilirsem muhtemelen işi çözerim ve paylaşırım.

ete


Powered by EzPortal