usart spbrg brgh hesaplama programı
Seri iletişimde baud rate ve kristal değerinizi programa girerek seri iletişim için gerekli spbrg değerini hesaplayabilirsiniz. Ayrıca iletişim hızınızın hata oranını görebilirsiniz. Örneğin proton basic için şu satırlar verilebilir:
Declare Xtal = 20
Declare Hserial_Baud = 9600 ' Set baud rate to 9600
Declare Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
Declare Hserial_TXSTA = 100100 ' Enable transmit and asynchronous mode
Declare Hserial_SPBRG = 129
TXSTA registerinin 2. biti, brgh'nin asenkron modda yüksek hız içi 1, düşük hız için 0 seçilerek kullanılmasını sağlıyor. Programda da brgh seçeneği mevcut. Burada brgh 1-0 ile hata oranını görerek uygun seçimi yapabilirsiniz. Programın bir eksiği PLL ile ayarlanabilen 48mhz frekans sınırı mevcut. Birde baud rate hız en fazla 250000 seçilebiliyor 48mhzde. Daha yüksek frekanslar için aşağıdaki formülü kullanmalısınız:
BAUD RATE = FOSC / 16 ([SPBRGH:SPBRGL] + 1
Bu formülü yukarıdaki proton basic örneği için çalıştırırsak:
9600 = (20000000)/16*(X+1)=1250000
9600*(X+1)=1250000
X=(1250000 - 9600)/9600=129 DEĞERİNİ BULURUZ.
Yüksek frekans (48mhz) için programda yaptığım bir örnek aşağıda:
Bu örnekte hız 9600 baud ve brgh 1 seçilirse hata oranı kabul edilemez bir değer olan %22 çıkıyor. Yani program 48mhz'de 9600 baud ile ne işin var hızını artır diyor. İşlemci saat hızı ile baud rate hızı arasında mantıklı bir değer olması gerektiğini buradan anlıyoruz. 48mhz ile 2400 baud seçilemeyeceği gibi.
Şimdi programın sağlamasını formülle görelim:
19200 = (48000000)/16*(X+1)=3000000
19200*(X+1)=3000000
X=(3000000 - 19200)/19200= 155 DEĞERİNİ BULURUZ.
Aşağıdaki linkten hesaplamaları yapabileceğiniz programı indirebilirsiniz, kurulum gerektirmez:
SPBRG HESAPLAMA PROGRAMI DOWNLOAD
Spbrg hesaplama için online araçlarda mevcut aşağıdaki linkten böyle bir aracı deneyebilirsiniz:
https://trolsoft.ru/ru/uart-calc
Online hesaplama aracı sayfasının kaynak kodunu buradan indirebilirsiniz. Html bilgisi olanlar kendi araçlarını bu örnek üzerinden geliştirebilir.
Yorumlar
Yorum Gönder