Yazılımsal ve donanımsal uart

Başlatan Emre MERMİ, 17 Ağustos 2015, 20:16:49

Emre MERMİ

Merhaba hocalarım,
Bir soru soracağım size. Biraz baktım da dişe dokunur bir örnek bulamadım. Yazılımsal ve donanımsal uart'ı bir arada kullanabilir miyim? 2 tane uart'ı olan bir pic yerine bir tane donanımsal bir tane yazılımsal kullanabilir miyim ? Örnek var mı elinizde?
Teşekkür ederim şimdiden.

quarko

Yazılımsal ve donanımsal uart ı tabiki de bir arada kullanabilirsin. Öncelikle donanımsal uart ı kullanmayı öğren. Sinyalleri incele. Ondan sonra aynı sinyalleri yazılımsal olarak üretmek çok basit olacaktır.
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

cripple

#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=USART1)// donanımsal uart
#use rs232(baud=115200,parity=N,xmit=PIN_C5,           bits=8,stream=USART2)         // yazılımsal uart 

PIN_C5 yerine istediğini yazabilrsin örnek: PIN_B3

normal kurulum yapmak yeterli oluyor herhangi ekstra bir şey yapmaya gerek yok

sorun çıkabilecek tek durum eğerki yazılımsal uart tan veri almak istersen sürekli dinlemede kalır
bu sorunuda yazılımsal uartın receiver ını (PIN_B0) dış kesme olarak kullanırsın veri geldiğinde bir yükselen kenar oluşur böylece interrupta girer ve dinlemeye sadece interrupt ta yaparsın(sitede örnek var diye biliyorum)


OG

UART = Universal Asynchronous Receiver Transmitter

UART denince akla gelen entegrenin (genelde MCU entegresi üzerine konuşuyoruz, mesela PC ana kartda da UART gibi moduller vardır) içindeki bu işi yapan bir donanım parçacığıdır. Yani zaten UART olarak anılan bir donanım dır. Set ettiğiniz değerler doğrultusunda Asenkron (clock gibi senkronizasyon palseri yok) İletişimini (alım veya gönderimi) yapıp bir kesme üreten donanım. Bu donanım bu işi yaparken MCU'nun ALU ve ona bağlı etraf donanımlarının başka işler ile meşgul olması mümkündür. UART'ın ürettiği kesme ile UART donanımına dönüp gereken işleri yapar.

Siz Asenkron iletişimi UART gibi bir donanıma bağlı olmadan da belli hız sınırlar içinde MCU'nun ana işlemcisi ALU ve bağlı donanımına yaptırabilirsiniz. Herhangi bir PORT'u takip ettirerek oradan gelen pulse ların bir asenkron veri mi olduğunu takip ettirebilirsiniz. Veya bir porta yönelip o porttan Seri Asenkron bir data treni ürettirebilirsiniz. Bu durumda MCU'nun ALU'su o iş bitesiye kadar (kesmeler hariç) yanlız o işlem ile uğraşacaktır. Buna Yazılımsal (Soft) Seri Asenkron denir.

Eğer kontrolunuzu kaybetmeyecekseniz (işlem kaçırmayacaksanız) aynı anda UART ve Soft Asenkron iletişim işlemini yapabilirsiniz. Veya sıra ile bir onu bir diğerini kullanabilirsiniz. Veya iletişim zamanlamaları uymakta ise yanlızca UART'ın giriş ve çıkış pinlerini (TX ve RX) çeşitli switchler ile farklı yollara bağlayıp istediğiniz yoldan iletişimi hep UART kullanarak yapabilirsiniz.

- - - -
Bir de USART var, UART birimleri geliştirilip bir de Senkron iletişim de yapabilme kapasitesine çıkarıldı ve S harfi eklenerek USART oldu. Yeni MCU'larda genelde USART olur.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.