avatar_mustafa

9600 baudrate hızı için yapılması gerekenler

Başlatan mustafa, 17 Nisan 2012, 21:36:49

mustafa

Merhabalar arkadaşlar,iyi akşamlar herkeze;
Benim sormak istediğim şey ,16f628a da ,Erol beyin de yazdığı programlar da dahil olmak üzere sürekli 2400 baudrate kullanıyoruz.Peki 9600 baudrate de çalışmak istediğimizde program içinde nasıl bir değişiklik yapmamız gerekli bunu merak ediyorum.usart define larını mı değiştirmeliyiz??benim kullandığım define lar..
define hser_rcsta 90h
define hser_txsta 20h
define hser_spbrg 25
define hser_clroerr 1
bunları mı değiştirmeliyiz?

Mucit23

evet aynen öyle
4 mhz osc frekansında 9600 baund için aşağıdaki ayarlar geçerlidir.

    DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
    DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
    DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
    DEFINE HSER_CLROERR 1 ' Clear overflow automatically
    DEFINE HSER_BAUD 9600 ' BaudRate 9600
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Baud rate birim zaman içinde yollanan yada alına bit sayısını belirleyen bir haberleşme hızı birimidir.
Hız büyük ölçüde çalışma frekansınada bağlı bir olaydır. Bu nedenle belirli kristal hızlarında emniyetli bir haberleşme için kriterler belirlenmiştir. Baud rate hesabında ortaya çıkacak olan error yüzdesi sizin bunu kullandığını kristal hızında emniyetli olarak kullanıp kullanamayacağınızı belirler.
4 Mhzde çalışıldığına göre belirli hızlar için error yüzdelerini ortaya koyalım bakalım;

2400 baud ..... için hesaplanan gerçek baud rate 2404 ve error yüzdesi %0,17
4800 baud ..... için hesaplanan gerçek baud rate 4808 ve error yüzdesi %0,17
9600 baud .....için hesaplanan gerçek baud rate  9615 ve error yüzdesi %0,16
olarak bulunmaktadır. 9600 için sanki daha düşük error yüzdesi bulunuyor gözüküyor ama 9600 değerinden uzaklaşma miktarıda 16 olarak karşımıza çıkmaktadır. Bunlar genelde sorun çıkarmazlar. Şayet haberleşme kesintisiz yapılabiliyor ve alınan sinyaldeki voltaj seviyeleri uygun ise bu hızlarda sistem haberleşebilir demektir. Fakat genelde haberleşmeyi etkileyen gürültü vs gibi faktörlerde olduğu için düşük hızlar tercih edilir. Çünki 2400 ile 9600 arasındaki afrkı insanpek anlayamaz.
Çok kritik zamanlama işlerinde ancak aletler ile anlaşılabilecek bir hız farkıdır. Bu nedenle düşük hızlarda güvenle kullanılabilir.

Bir çok kereler belirttim. Haberleşme hızı değişikliklerinde genelde Usart registerlerine değer verilir. Hıza bağlı olarak bu değerlerin nasıl hesaplandığı data sheetlerde yazıyor. Ancak illaki hesaplamak zorunda değilsiniz. Bunun için hazır yapılmış programlar mevcut. Bunlardan birisi PicMultiCalc.exe isimli programdır. BU hesabın yanı sıra pic için gerekli olan başka hesaplarda yapmaktadır. Bu nedenle bu programı kullanmanızı şiddetle öneririm. Bu programda kristal frekansını girer ve hızı seçerseniz size usart register değerlerini hemen verir. Hatta basic için direk yapıştırılabilecek satırlarıda hafızaya alır size sadece yapıştır demek kalır. İnternette arayın bulacaksınız. Bulamayanlar haber versin bir yerlere koyayım.

Ete


mustafa

Erpol bey bu açıklayıcı bilgiler için çok teşekkür ederim.Şimda kafamda daha netleşti bu konu.Çok teşekkürler..

Powered by EzPortal