16 serisi PIC uart 2MBaud olacak şekilde hesapladım.
5cm kadar kısa bir kablo ile başka bir karta veri yolluyorum.
Ara sıra kopma, yanlış algılama oluyor.
Acaba blendajlı kablo kullanmak işe yarar mı? Yoksa bu hızlar tamamen sakıncalı mı?
Kablo blendajlı kullanılacaksa hıza uygun olmalı, RF tip kablolar gibi,
Canlı uç ile GND aynı boyda olmalı, blendaj GND olursa aynı boyda olur
MCU osc doğruluğu önemli, INT OSC de sıkıntı olabilir, XTAL kullanmak lazım
MCU'nun usart'ı alışta sorun çıkarmaz ama,
usart'ın düşük kapasiteli FIFO'su sebebiyle datayı usart'dan hemen çekmek gerek, yoksa taşma hatası oluşur.
Pic ile o hızlara ihtiyaç duyacak uygulama çok zorlama olur gibime geliyor. Hadi haberleşme halloldu o kadar veriyi hangi kapasite işleyecek. :)
İllaki yüksek hız gerekli ise daha üst seri ve yüksek saat hızlarında çalışacak işlemci daha uygun düşer.
Ya da, haberleşmeyi paralel yaparsınız, interrupt kullanırsınız olur mis gibi. Evet fazladan pin kullanılır belki ama buna değecektir.
Meraktan soruyorum, hangi PIC16 serisi ile ve hangi clock frekansıyla 2 Mbps uart hızı hesapladınız?
2mbit kablo açısından çok büyük bir rakam değil, özel bir oratama ihtiyaç olmayabilir de pic o hızda veri alıp işleyebilir mi emin değilim.
Error yüzdesi önemli (hız error'ü)
16 serisi için %0 Error için ayarlar 32MHz de
USART
RCSTA = $90 ' Enable serial port & continuous receive
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 0 ' 2000000 Baud @ 32MHz, 0,0%
EUSART
RCSTA = $90 ' Enable serial port & continuous receive
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 3 ' 2000000 Baud @ 32MHz, 0,0%
SPBRGH = 0
BAUDCON.3 = 1 ' Enable 16 bit baudrate generator