12F629 max. Baudrate

Başlatan My75, 26 Temmuz 2011, 17:50:50

My75

Genellikle 9600 Baud üzerinde fazla çalışmam olmadı,bir serial giriş 3 adette çıkış için 12F629 seçtim..Serin komutu  ile max. ne kadar hıza çıkabiliriz?

DMX512 benzeri bir sistem oluşturacağım,120 civarında rx pin ortak kullanacağım.Pic'ler arası mesafe 30cm. geçmeyecek.

Uart donanımı olan 12F1822 kullanıp kesme ile yapmak istiyordum ama bu Pic maalesef Türkiye'de yok sanırım..

20mhz 12F629 ve serin ile max. baudrate hızım ne olur??  Ve olursa mod numarası ne olur? Proton kullanacağım..Teşekkürler..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

My75

#1
Burada max. 38400 kadar çıkabildiğimiz söyleniyor.

http://melabs.com/resources/ser2modes.htm

38400 Driven True None 6

@OG

https://www.picproje.org/index.php?topic=12873.0

Hocam sizin bu konunun benzeri olarak geçmiş dönemlerdeki mesajlarınızı inceledim.Bende sizin gibi 3 adet pwm kontrolu ile birlikte sürekli data alımı yapacağım.DMX512 demeyelimde benzeri bir sistem yapacağım..

38400 baud ile max. 120 adet pic' i kontrol edeceğim.Her pic ilede 8 bit rgb pwm yapacağım.Sorunun üstesinden gelebildinizmi acaba?

Uart olsa hiç sıkıntı olmayacaktı..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

#2
SERIN / OUT   1 değerine kadar inebildiği için onun hızı da 47619baud yapıyor. Ben bu hızı serin/out ile denedim çalışıyor.

DMX ise 250000 baud. Yani serin-Serout komutu ile bu hız olamıyor.

ASM ile ise olur, 250000 hıza çıkarsınız. PIC osc si kristal olmalı ki stabilite yüksek olsun ve 20MHz gibi yüksek değerde çalışırsanız asm timing hesaplarında daha rahat edersiniz.

Edit, 12F629 da HPWM olmadığından çok çok zor olur. Hem datayı takip edip hem pwm in sürelerini kontrolde tutmak çok zorlar denemedim.
3 pwm i data alıp vererek yapıyorsam 3 pwm li chip kullanıyorum. Onlarında zaten USART ı mevcut . SERIN değil de HSERIN işi bitiriyor. Bazen fazlaca kasmak adam için kazanç değil kayıp oluyor.

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

My75

Hocam DMX512 gibi 512 aygıtım yok.Max. 120 slave olsun.

Sizin de bildiğiniz gibi DMX512 'de ,512 slave başına 44 frame düşüyor ve tek byte işlediği için hızından ödün vermiyor.Ben 120 adet kontrol edeceğim ve 2 byte değişken düşünüyorum,şuan hesaplamaları yapıyorum..Bakalım ne olacak..Onun protokolü de farklı bakalım 8N1 ne yapacak..

12F1822 tam benim istediğim gibi ama yok büyük olasılıkla,şu ülkede birde her istediğimizi bir temin edebilsek >:(
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

My75

#4
Alıntı yapılan: OG - 26 Temmuz 2011, 18:52:15
Edit, 12F629 da HPWM olmadığından çok çok zor olur. Hem datayı takip edip hem pwm in sürelerini kontrolde tutmak çok zorlar denemedim.
3 pwm i data alıp vererek yapıyorsam 3 pwm li chip kullanıyorum. Onlarında zaten USART ı mevcut . SERIN değil de HSERIN işi bitiriyor. Bazen fazlaca kasmak adam için kazanç değil kayıp oluyor.

10ms aralıklarla time out ile pwm oluşturmayı düşünüyorum.

Portlar sürekli high olacak,10ms aralıklarla gecikmede kontrol yaparak ilgili çıkışı low yapacağım..Mantık olur diyor ama daha çalışmaya başlamadım..

Daha önce aynı mantıkla 27 kanal 8 bit pwm yapmıştım,ama data alımı yoktu tabi.
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

Az miktarda kullanacaksanız 16F7x7 serisi piyasada bulunabiliyor. Mesela 767. Yalnız bu serinin de dahili EEPROM'u yok.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

My75

Yok hocam,8 pin tercih ediyorum.Hem yer açısından hemde boşta kalan port beni herzaman üzer.. :)

Aslında 14 pin 16F688 var piyasada,uart donanımlı..Ben pwm kısmından çok uart kısmını düşünüyorum..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

#7
Gidecek data DMX ise,

Bunu üreten cihazlar her zaman 512 adres göndermez.

DMX512 masalarda karşılaştım, Siz 1 kanal açtı iseniz ve bu kanal 1 ise yalnızca o kanalı gönderip başa dönen sistemler gördüm, şöyle;

Basla:
Break + StartByte +  1. Byte
Goto Basla

Bunun süresi de çok kısa oluyor. 10ms lik bir süre boyunca takipte hata verecektir.

-----------

En küçük ve ucuz DMX devrem budur,


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

ipek

OG hocam gördüğüm kadarı ile kristalden kurtulamamışsınız süreler bu işte önemli galiba.

OG

#9
DMX sinyali, her biti 4usn genişliğinde olan hassas bir sinyal. 4usn takibi için pic iç osilatörü doğruluğu yeterli değil, kristal şart.

Ayrıca https://www.picproje.org/index.php/topic,34639.0.html burada gecen sorunun da resimli cevabıdır. 3 PIC tek kristal ile idare ediyor.

Alttaki devrede daha sağlıklı olsun diye bulabildiğimde hazır osilatör, bulamadığımda kristal kullanıyorum.





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

My75

#10
OG hocam;

Protonda çok iyisiniz o yüzden BascomAvr 'yi bir inceleyin derim..

Attiny2313 ile ben Bascom'da sadece bir kaç komutla süper dmx512 modüller yapmıştım.Üstelik 4 kanal hpwm var,8,9,10 bit seçeneğiniz var.Kütüphane olayı zengin olduğu için bu tip protokollerle fazla uğraşmıyorsunuz..Ben lisanslı aldım 100€ ama değdi,tüm avr ve atmega serisini bununla derliyorum..Dmx data alımında Hpwm de en ufak problem yok,çok kararlı..

Kısaca tavsiye ederim..Avr kullanınca insanın Pic'e bakası gelmiyor ama Pic'de Avr kadar sakat sigortalara sahip değil..
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...

OG

Estağfirullah, öyle çok iyi falan değilim aksine ihtiyaç karşılayacak kadar.

Tavsiyen üzere BASCOM'u indirdim ama henüz Atmel mimarisine giriş yapamadım, nasip olursa bakarız.

Kısa tecrübem şu, kıçıkırık imalat işiyle uğraşıyorsanız önce malzeme bulunabiliyormu ona bakmalısınız. Çünkü yaptığınız işler stok değilse, müşteri talebine göre alelacele imal edip veriyorsanız malzemenin bulunabilirliği çok önemli. Aksi taktirde macera peşinde oluyorsunuz.

Bilmem Atmel iç piyasa için bu konuda nasıl?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

OG

DMX512 tam adı, 9N1 asenkron seri protokolu kullanan bir haberleşme sistemi, 8 bit (0-255) arası data taşır.
250.000 baud hızda

Başlangıç noktasını 88us lik (min) bir LOW palsi belirliyor, adı BREAK palsi,
Sonraki ilk byte startbyte deniyor, rezerve edilmiş, içeriği bizi genelde ilgilendirmiyor.
Sonradan peşisıra gelen 512 adet byte. Her biri 8 bitlik data taşır.
Sahne ışık show falan için yerleşmiş bir haberleşme sistemi.

Show dataları ışık masalarında veya PC tabanlı programlarda hazırlanır, RS485 formatında çıkış yapar.

http://www.dmx512-online.com/packt.html
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

bymrz

Alıntı yapılan: OG - 28 Temmuz 2011, 13:58:55
DMX512 tam adı, 9N1 asenkron seri protokolu kullanan bir haberleşme sistemi...

çok önemli değil gerçi ama, 8N2 olacak sanırım  ...

My75

9N1 genelde pic ile olan DMX uygulaması oluyor,OG hocamızın demek istediği bu aslında.DMX512 8N2 olarak geçmekte fakat pic ile uygulamada 9.bit aktif yapılarak kullanılır..

Hocam geçen sene Atmel fiyatları çok uygundu,Atmega16 2$ civarında idi çünkü fazla talep yoktu ama bu sene fiyatlar uçmuş..Attiny2313 perakende 5TL alınıyor..

Bakın hocam,gerekli ayarlamaları yaptıktan sonra sadece do..loop arasındaki komutlar ile RGB pwm dmx512 data alımı mükemmel işliyor..

$regfile = "attiny2313.dat "
$crystal = 8000000
$hwstack = 32
$swstack = 16
$framesize = 40
$baud = 250000

R  ALIAS PWM0A
G  ALIAS PWM1A
B  ALIAS PWM1B
CONFIG Pinb.4 = OUTPUT
CONFIG Pinb.3 = OUTPUT
CONFIG Pinb.2 = OUTPUT


CONFIG Timer0   = PWM , PWM = ON , Compare A PWM = CLEAR Down , Prescale = 1
CONFIG Timer1   = PWM , PWM = 8  , Compare A PWM = CLEAR Down , Compare B PWM = CLEAR Down , Prescale = 1
CONFIG Dmxslave = Com1 , Channels = 3 , Start = 1 , Store = 3

ENABLE Timer0
ENABLE Timer1
ENABLE Interrupts
R=0
G=0
B=0


Do
R = _dmx_received(1)
G = _dmx_received(2)
B = _dmx_received(3)
Loop

END
Tomurcuk için çaba göstermeyen dal,odun kalmaya mahkumdur...