software uart ne kadar güvenlidir

Başlatan skara1214, 15 Ekim 2012, 13:11:44

skara1214

28 pinli 2 uartlı pic16 yada 18 serisi pic bulamadım(türkiyede ulaşabileceğim) bende 886 alıp 1 hardware 1 software uart kullanmak istiyorum ama tam olarak software uarta güvenebilirmiyim?herhangi bir sıkıntı yaşayan oldumu?
Herkes ölür ama herkes gerçekten yaşamaz

Erol YILMAZ

Alıntı yapılan: skara1214 - 15 Ekim 2012, 13:11:44
28 pinli 2 uartlı pic16 yada 18 serisi pic bulamadım(türkiyede ulaşabileceğim) bende 886 alıp 1 hardware 1 software uart kullanmak istiyorum ama tam olarak software uarta güvenebilirmiyim?herhangi bir sıkıntı yaşayan oldumu?

kullandığın yere göre değişir.

Misal sadece gönderim yapacağın bir yerdeyse hiç problem olmaz... bence

Pyrodigy

Alıntı yapılan: skara1214 - 15 Ekim 2012, 13:11:44
28 pinli 2 uartlı pic16 yada 18 serisi pic bulamadım(türkiyede ulaşabileceğim) bende 886 alıp 1 hardware 1 software uart kullanmak istiyorum ama tam olarak software uarta güvenebilirmiyim?herhangi bir sıkıntı yaşayan oldumu?
USART kesmesi kullanmıyorsan gönderimde problem olacağını zannetmiyorum Ama alımlar için sürekli taraman lazım.
2 USART lı PIC16 serisi midrange PIC ler var ama bacak sayısı fazla 64 bacaklı. Ben 16f1526 kullanıyorum 2 usartlı. ASM kullanıyorsan pek tavsiye etmem. C varsa direkt 18f serisine geç, yoksa BANK manyaa olursun!
Persistance is the name of the game in this business....

serhat1990

Bence sağlıklı olur pek yüksek olmayan iletişim hızlarında . Change interrupt pinlerine bağlarsan RX pinini durum değişikliğinde kesme alırsın sürekli taramaya gerek kalmaz.

FEHMİ_ASM

       Bence buradaki güven, kullanım şekline ve sonra hızına bağlı. Örneğin donanım Usartında birçok kesme bayrağı var. TX ve RX modülünü eşdeğer/aynı parametrelere göre kursanız bile, fonksiyonel bir seri iletişim için alıcı kısmında sadece TXIF yok, özellikle FERR (görevini henüz bilmiyorum, sanırım baud ratede hata oranının artmasında kulllanılıyor)ve OERR bitlerinin gerekliliği de gözardı edilemez. Donanımsal bir UART'ta bunun gibi birçok kontrol noktası mevcut.
   
    Ellbette bunların hepsini kullanmak zorunda değilsiniz, hatta nerede ise sadece gönderici ve alıcı buffer'ı kullansanız bile iyi bir zamanlama ve buffer kontrolü ile sağlıklı bir iletişim yapabilirsiniz. Ancak buffer kontrolü mutlaka periyodik olarak (tercihen kısa zaman aralıklarında) yapılmalıdır.

     
Hz.Hamza'nın Belinde İki Kılıç Duruyor ! Attığı Her Adım Bir Kalbi Durduruyor ! Ey Hamza ! Gördüğün Hiçbir Şeyden Korkmazsın , Bu Doğru Ama Heybetini Gizli Tut , Yürüyüşün Ölümü Korkutuyor !  İşte Hz.Ömer ve Hz.Ali , Biri Hattaboğlu , Biri Haydâr-ı Kerrar ! Ve Kolkola Ölümün Ağzına Giriyorlar !  Azrai

skara1214

hocam aslında sormak istediğim ccs c nin software uartıydı sistem çok komplike değil ama hız 115 kb gibi bir değer olacak.Sadece 1 pin low yapıldığında
okuma ardından yazma yapılacak sürekli taramaya gerek kalmayacak.Ccs c nin uartı ne kadar sağlıklı onu tam kestiremedim.
Herkes ölür ama herkes gerçekten yaşamaz

OG

ccs c de soft seri haberleşme 115 kb'a çıkıyormu ?  ???
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

serhat1990

#7
Alıntı yapılan: OG - 15 Ekim 2012, 16:22:32
ccs c de soft seri haberleşme 115 kb'a çıkıyormu ?  ???

Hocam sorunuz için hazır bir devrem vardı ccs c ' de ufak bir program yazdım 115200 , 230400 bps hızlarında sorunsuz çalıştı . Terminal programların daha üstünü desteklese deneyecem ama desteklemiyor :)

Bu arada işlemcimin clock frekansı 48mhz.

İyi çalışmalar.

Pyrodigy

#8
Alıntı yapılan: serhat1990 - 15 Ekim 2012, 16:37:43
Hocam sorunuz için hazır bir devrem vardı ccs c ' de ufak bir program yazdım 115200 , 230400 bps hızlarında sorunsuz çalıştı . Terminal programların daha üstünü desteklese deneyecem ama desteklemiyor :)

Bu arada işlemcimin clock frekansı 48mhz.

İyi çalışmalar.
Teorik olarak Fosc=48MHz de 12Mbps hızında seri haberleşme yapabilirsin !
Formül ; Baud Rate = Fosc/[4 (n + 1)]
n= 0 olduğu varsayıldığında = Hız 12Mbs dir.
Ama pratikte 2,5 Mbps hızının üzerini destekleyen arayüz IC ler bulurmusun o meçhul...!
Persistance is the name of the game in this business....

skara1214

Alıntı yapılan: serhat1990 - 15 Ekim 2012, 16:37:43
Hocam sorunuz için hazır bir devrem vardı ccs c ' de ufak bir program yazdım 115200 , 230400 bps hızlarında sorunsuz çalıştı . Terminal programların daha üstünü desteklese deneyecem ama desteklemiyor :)

Bu arada işlemcimin clock frekansı 48mhz.

İyi çalışmalar.
hocam benim kristal 20 Mhz şimdi deneyip göreceğim 115 i destekleyip desteklemediğini
Herkes ölür ama herkes gerçekten yaşamaz

serhat1990

Alıntı yapılan: skara1214 - 15 Ekim 2012, 17:45:10
hocam benim kristal 20 Mhz şimdi deneyip göreceğim 115 i destekleyip desteklemediğini

20MHz kristalim var . 18f4550 kullandım . İşlemci clock frekansını 48MHz'e ayarladım . 115200 destekliyor .

skara1214

#11
16f886 ile 20 Mhz 115200 ü destekliyor.dış kesme konusuna gelince hocam hızı yetmiyor 115200 de başına garip bir karakter ekliyor.bende alfabetik birşeymi diye test ettirince düzeliyor.
Herkes ölür ama herkes gerçekten yaşamaz

serhat1990

Alıntı yapılan: skara1214 - 15 Ekim 2012, 18:03:19
16f886 ile 20 Mhz 115200 ü destekliyor

Güzel o zaman ccs c ' de software usart ' ta kullanılan delay kütüphanesi çok gelişmiş . 16F886 ' da 20MHz' de 43 makine saykılında bir data gönderir veya alır buda 8.68uS yapıyor . ( 115200 bps için . ) Bu kadar kısa sürelerde hatalar çıkabiliyor . Ben hi-tech ' in delay kütüphanesi ile yazmıştım . 19200 ' den yukarıda sıkıntı çıkıyordu . CCS C ' de gecikme kütüphanesini görebiliyormuyuz acaba :)