Her Yönüyle USART

Başlatan engin_, 23 Mayıs 2006, 23:45:35

engin_


bsivgin

aşağıdaki linkte 16F628 için USART kullanımı için örnek vermiştim inceleyebilirsin. Bu örnekte 16F628 alma modunda interrupt ile gönderme modunda ise kullanıcı talebi ile çalışmaktadır. Tabi küçük bir değişiklikle göndermede interrupt ile yapılabilir.

http://www.diyot.com/RS232.html



Saygılarımla
Bülent ŞIVGIN
www.diyot.com

engin_

Kod için sağol, @bsivgin

Kodu inceledim. Burada çalışma hatası olunca sürekli alma durumundan çıkıp tekrar sürekli alma durumuna geçiliyor. Çerçeve hatasında ise       

ErrFERR
movf   RCREG,W      ;discard received data that has error
goto   EndInt

burada bunu yapmaya gerek var mı ki? Yani direk EndInt'e dallanılamaz mıydı?

bsivgin

Aşağıda application Note 774'den alıntı yaptım. Uygulama Notunda ve 16F628'in kataloğunda şöyle der : Çerçeve ahatası stop biti sıfır olduğu durumda oluşur der (stop biti her zaman bir olması gerekir). Çerçeve hatası bitini sıfırlamak için RCREG'in okunması yeterli der. Umarım anlatabilmişimdir...


bit 2 FERR: Framing Error bit
1 = Framing error (Can be updated by reading RCREG register and receive next valid byte)



FRAMING ERROR
A framing error occurs when the STOP bit is detected
as a zero, because the STOP bit should always be a
one. The framing error is always associated with the
byte in RCREG and is passed through the FIFO in the
same way as the data with which it is associated. Reading
RCREG allows the next data byte to be loaded into
RCREG with its own framing error flag. For this reason,
it is essential to read the error flag before the data is
read from RCREG, in the same way that the ninth data
bit is read before the data in RCREG.
There is no need to clear the framing error flag, since
the FERR bit will be updated as soon as new data is
received into RCREG.
Once a framing error has been detected it can be
cleared, in effect, by reading the RCREG.
How the error is handled will depend entirely on the
application. In the example code in the Appendices, the
data with the framing error is simply discarded. In a
practical application this may not be sufficient and it
may be necessary to request the data to be retransmitted,
for example.


Saygılarımla
Bülent ŞIVGIN
www.diyot.com

engin_

Sağol yeterince iyi anlattın...

Subzero

Beyler bir kaç sorum var :
USART - Universal Synchronous Asynchronous Receiver Transmitter

1.USART kullanım alanları nelerdir, neden tercih edilir ?

2.Ben şimdi bir uygulama için SPI araştırıyorum mesela,
bunlar aynı sınıfa mı girer, başka neler vardır, kullanım alanlarına göre
nasıl tablolarız ?

XX_CİHAN_XX

Alıntı yapılan: "Subzero"Beyler bir kaç sorum var :
USART - Universal Synchronous Asynchronous Receiver Transmitter

1.USART kullanım alanları nelerdir, neden tercih edilir ?

2.Ben şimdi bir uygulama için SPI araştırıyorum mesela,
bunlar aynı sınıfa mı girer, başka neler vardır, kullanım alanlarına göre
nasıl tablolarız ?
oncelıkle yukarıdakı acıklamaları yapan arkadaslara cok teşekkür ederım gercekten oldukca doyurucu bılgı vermısler.

usart adından da anlasıldıgı gıbı asenkron haberlesme saglayan bir protokoldur.Yanı tek bir hattan data alma ve gonderme ıslemı yapılır.Ornegın bilgisayar ın com protundan pıc ile haberlesme yapman ıcın usart protokolunu kullanman gerekır

spı ıse senkron haberlesme saglar.Yanı clock ve data olmak uzere ıkı hattan ıletısım kullanılır.Bunuda daha cok serı verı ıletımınıde shıft regıster kontrollerınde ve bu protokolu kullanan butun sıstemlerde sensor kontrolunde vs... kullanım alanı cok genıstır.

usart a gore avantajı daha guvenılır ve hızlı bır haberlesme ımkanı sunar.Fakat usart moduda pc haberlesmelerınde ve dıger cevresel arabırımlerle olan haberlesmelerde spı kadar yaygın kullanılır.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.