Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: My75 - 26 Temmuz 2011, 17:50:50

Başlık: 12F629 max. Baudrate
Gönderen: My75 - 26 Temmuz 2011, 17:50:50
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..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 26 Temmuz 2011, 18:21:17
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ı..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 26 Temmuz 2011, 18:52:15
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.

Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 26 Temmuz 2011, 19:01:11
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 >:(
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 26 Temmuz 2011, 19:02:49
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.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 26 Temmuz 2011, 19:04:31
Az miktarda kullanacaksanız 16F7x7 serisi piyasada bulunabiliyor. Mesela 767. Yalnız bu serinin de dahili EEPROM'u yok.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 26 Temmuz 2011, 19:10:37
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..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 26 Temmuz 2011, 19:19:05
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,

(http://s2.postimg.cc/u5o9p45zm/Untitled_1.jpg) (http://www.postimg.cc/)
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: ipek - 26 Temmuz 2011, 23:25:29
OG hocam gördüğüm kadarı ile kristalden kurtulamamışsınız süreler bu işte önemli galiba.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 26 Temmuz 2011, 23:39:38
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.

(http://s1.postimg.cc/c2khwc2r8/image.jpg) (http://www.postimg.cc/)


(http://s1.postimg.cc/4zcprsmbi/image.jpg) (http://www.postimg.cc/)
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 27 Temmuz 2011, 02:33:36
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..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 13:35:18
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?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 13:58:55
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
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: bymrz - 28 Temmuz 2011, 14:16:58
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  ...
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 14:31:38
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
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 14:38:26
Alıntı yapılan: alone_lover - 28 Temmuz 2011, 14:16:58
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  ...
Evet doğru, 8 data (byte), 2 stop bit ikiside High, anlatırken hep usart için yaptığım ayarla karıştırırım. My75 de açıklamış zaten.

Alıntı YapHocam aşağıdaki animasyona baktığımda bunların hepsi paralel mi acaba birbirlerine?
Paralel de olabilir, RS485'in izin verdiği paralel yükleme adedince. Ama cihazlarda genelde inp ile RS485 alınır, TTL seviyesine çevrilir (SN75176 vb türü ile), Aynı sinyal tekrar RS485 e çevrilir (yine 75176 ile) ve data output dan güçlenmiş olarak diğer kola aktarılır.

Yani her cihazda sinyal tekrar güçlendirilmiş oluyor. Şekildeki bağlantı o anlamda. Aksi taktirde herşey bir RS485 in çıkışına bağlanabilecek RS485 girişi sayısı ile ilgili.

Alıntı YapAttiny2313 perakende 5TL alınıyor..
Bu fiyat da fena sayılmaz. Bulunabildikten sonra.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 14:41:41
Madem Bascom indirdiniz size birde programlayıcı lazım.STK200 paralel port,ben bunu kullanıyorum..Çizdiğim pcb dosyasını birazdan eklerim..

http://www.lancos.com/e2p/betterSTK200.gif
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 14:49:38
Paralel port kalmadı :)
Seri bile kalmadı.

USB yokmudur?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 14:54:27
Maalesef hocam,Bascom kullanacağım zaman eski laptop'u kullanıyorum. :)

Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 15:00:58
Bu sitede bir uygulama var, bir ara kendimede yapabilirim..Denemek lazım..

https://320volt.com/atmel-avr-usb-programlayici/
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 16:44:36
Yok hocam Pickit2 'ye hiç bulaşmam,aldım kenarda süs olarak duruyor.. :) Bendeki klon,pek verim alamadım..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: t2 - 28 Temmuz 2011, 16:46:21
Alıntı yapılan: OG
DMX

OG hocam, bana birden fazla pici paralel bağlayabileceğim master slave tarzı bir örnek uyuglama lazım. dmx formalitesine aynen uyması gerekmez.  Sizde böyle basit bir örnek var mıdır?   İletişim çift yönlü olsa iyi olur.  hem de protonla yapılmalı. led yakıp söndürsem yeter. Ana pic şu led yansın diyecek, o yanacak. veya sensör bilgisi soracak ilgili pic sensörü okuyup bildirecek.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 17:06:11
Alıntı yapılan: FxDev - 28 Temmuz 2011, 16:32:07
Alıntı yapılan: My75 - 28 Temmuz 2011, 15:00:58
Bu sitede bir uygulama var, bir ara kendimede yapabilirim..Denemek lazım..

https://320volt.com/atmel-avr-usb-programlayici/

Elinizde Pickit 2 varsa o da AVR programlayabiliyor (muş) :)

http://pickit2.isgreat.org/

Bu enteresan. Adam avr programı ile pickit2 arasında bridge yapmış.

Alıntı Yapbirden fazla pici paralel bağlayabileceğim master slave tarzı bir örnek uyuglama lazım. dmx formalitesine aynen uyması gerekmez.  Sizde böyle basit bir örnek var mıdır?   İletişim çift yönlü olsa iyi olur.  hem de protonla yapılmalı. led yakıp söndürsem yeter. Ana pic şu led yansın diyecek, o yanacak. veya sensör bilgisi soracak ilgili pic sensörü okuyup bildirecek.

Basit bir uygulama değilmi. Hazırda yoksa bir ara bakarız.
Kaç slave olacak?
Master ve slaves için kaç pin gerekli? Mesela slave 12F675 olabilirmi (adc için). ADC 1 port, tx/rx kontrolu 1 port gibi.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: t2 - 28 Temmuz 2011, 17:29:09
4 -10 tane slave 1 tane master olması yeterli. I2c benzeri uygulama olacak.

Usartın senkron kullanımı gibi olsa daha iyi olur.  Software  değilde hardware iletişim gerekli.  usartın adresleme kabiliyeyi de oluyormuş. 

slave 16f628a lar 16f877A ile iletişim kursun. ve düzgün şekilde çalışsın. 
8 pinli adcli ve usartlı pic bilmiyorum o yüzden 628a dedim.

Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 17:33:44
Haberleşme için uzak mesafe 2 hat kullanacaksan I2C olmaz, RS485 bu iş için uygun. Yolla 2 hattı uzaklara, slave cihazları çamaşır asar gibi bağla (paralel).
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: t2 - 28 Temmuz 2011, 17:37:04
Yakın mesafe olacak picler aynı kart üzerinde. 3-5 cm mesafe.

Burada takıldığım konu data ve clk hattının paralel bağlanıp adresleme yapılarak güzelce kullanılabilmesi. varsa proton i2c örneği de işimi görür. fakat bunun sınırı nedir neye dikkat etmek  gerek. yavaş mı olur? donanımsal hali var mıdır? usart , i2c? spi?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 17:56:48
O zaman kolay,

Sistem budur,

(http://s1.postimg.cc/uh609rd44/sema2.gif) (http://postimg.cc/image/24aijar0k/full/)

(https://i.ibb.co/xf8SyDs/sema2.gif) (https://ibb.co/xf8SyDs)
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 18:18:46
Hocam bu şekilde sorun teşkil etmezmi?   Açık kollektör çıkış olması gerekmezmi..Birde bunu inceleyin bu şekil olması lazım..

(http://s4.postimg.cc/2wm060yqs/rxtx.jpg) (http://postimg.cc/image/2wm060yqs/)
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 18:48:27
Invert kapısı zaten transistor olmalı, altına not yazmıştım. Fakat bir şeyi unutmuşum, transistor datayı invert ediyor. SERIN, SEROUT da problem olmaz invertlu alınır verilir (max 47619 baud) ama USART iletişiminde problem olur, araya bir invert daha gerekir.

(http://s3.postimg.cc/ptu0wz3it/sema2.gif) (http://postimg.cc/image/10kgwbk78/full/)
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: My75 - 28 Temmuz 2011, 18:53:50
Kapının transistör olduğunu anladım ama invert olayından dolayı tereddütte kalmıştım..Şimdi anlaşıldı..
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: t2 - 28 Temmuz 2011, 19:18:43
kapı mapı da neyinnesi. sadece 2 hat olacak data clock. hadi 3 hat olsun. bunları pull up yapacaz.  1master 10 slave haberleşecek. çok şeymi istiyorum?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 28 Temmuz 2011, 19:47:48
O zaman I2C haberleşeceksin. Yine Opendrain ihtiyacın var.

Bu devre ile 47619 bauda kadar haberleşebilirsin,

(http://s3.postimg.cc/irondprzp/sema2.gif) (http://postimg.cc/image/11mysoe10/full/)

Başlık: Ynt: 12F629 max. Baudrate
Gönderen: Maxim - 28 Temmuz 2011, 21:49:10
Alıntı yapılan: OG - 28 Temmuz 2011, 18:48:27
Invert kapısı zaten transistor olmalı, altına not yazmıştım. Fakat bir şeyi unutmuşum, transistor datayı invert ediyor. SERIN, SEROUT da problem olmaz invertlu alınır verilir (max 47619 baud) ama USART iletişiminde problem olur, araya bir invert daha gerekir.

(http://s3.postimg.cc/ptu0wz3it/sema2.gif) (http://postimg.cc/image/10kgwbk78/full/)

OG hocam ben bundan birşey anlamadım, neden yapı bu şekilde ? bunun yazılım tarafı nasıl işliyor ?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 29 Temmuz 2011, 18:35:31
(http://s3.postimg.cc/irondprzp/sema2.gif) (http://postimg.cc/image/11mysoe10/full/)

Ana prensip yukarıdaki devre, devrede aynı data hattına çok istasyon bağlayabilmek için Opendrain portlardan istifade ediliyor. Fakat seri iletişim "yazılım" tabanlı, yani donanım kullanmıyor. Bu durumda hız 47619 bauda kadar çıkabiliyor.

Hız yükseltmek istenirse USART donanım kullanım gereği doğuyor. USART TX portu open drain olmadığından kapı (transistor) kullanılıyor. 1 transistor bunun için. araya 1 transistor girince faz terslendiği için bu işlemi bir daha yapıp fazı düzeltiyoruz, o da 2. kapı (transistor) demektir.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: SpeedyX - 29 Temmuz 2011, 20:03:22
Alıntı yapılan: OG - 28 Temmuz 2011, 14:38:26
Ama cihazlarda genelde inp ile RS485 alınır, TTL seviyesine çevrilir (SN75176 vb türü ile), Aynı sinyal tekrar RS485 e çevrilir (yine 75176 ile) ve data output dan güçlenmiş olarak diğer kola aktarılır.
Yani her cihazda sinyal tekrar güçlendirilmiş oluyor. Şekildeki bağlantı o anlamda. Aksi taktirde herşey bir RS485 in çıkışına bağlanabilecek RS485 girişi sayısı ile ilgili.
Çift yönlü haberleşme, hemde her node da güçlendirme falan nasıl oluyor? tek chip yerine iki tane mi var?
Bu mantıkla çift yönlü güçlendirme amaçlı repeater yapılır mı?
Şema varsa incelesek?
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: OG - 30 Temmuz 2011, 19:04:08
Benim yaptığım tek yönlü haberleşme için kuvvetlendirme. Çift yön için hiç düşünmedim.
Başlık: Ynt: 12F629 max. Baudrate
Gönderen: EFESU - 16 Ocak 2012, 23:51:50
Merhaba arkadaşlar ... konuyu baştan sona  okudum aklımda olan bir çok sorunun cevabını buldum ..
ben dmx512 haberleşmesi ile uğarşıyorum ve PIC ile yapamaya çalışıyorum .. gönderme kısmı bir iki  oldu ama yine ufak tefek
sıkıntılar var sanırım açıkcası olmuyo gibi ..

attiny2313 le olmuş sanırım bana yardımcı  olurmusunuz artık dmx yada PIC mi desem beni  çatlatmak üzere...