DMX alıcı HSERIN sorunu

Başlatan safaka123, 24 Ağustos 2014, 23:20:09

safaka123

Merhaba,
DMX sistemiyle ilgilenirken verici ve alıcı yapabilirmiyim dedim yola çıktım. çeşitli araştırmalardan sonra DMX vericisi problemsiz çalışıyor.(profesyonel alıcılarla denedim)  Fakat Alıcı sistemde Hserin problemi var gibi. Bir türlü hatayı göremedim. Verici sistem 512 adresede 0 veriyor sonrasında toggle olarak 255 veriyor. DMX alıcısında 0 değerini görüyorum , sonrasında 255 de görüyorum. Sanki hep aynı adresi görüyormuşum gibi. vericiden 4,5,6. adreslere başka bir şey  veriyorum onları da görmüyor. belki mantık hatası yapıyorum belki de ki büyük ihtimalle hserin komutunda yada yapılması gereken komut parametrelerinde hata yapıyorum. Lütfen yardımcı olurmusunuz. isis ve programlar ekte. pbp 3.0 kullanıyorum config ayarları sizinkinden farklı olabilir.

ete

#1
Verdiğin programlardan alıcı olanda terslik var. Yeniden kontrol et ve çalışan programı buraya koymaya çalış.
Adres isimli bir değişken kullanmışsın ama değişken tanımlamalarında yer almıyor bu değişken.

Alıcı programın config ayarı yanlış. _HS_OSC şeklinde olması gereken OSC tipi dahili OSC olarak belirlenmiş. 20 Mhz de çalışacağına göre HS olarak tanımlanmalı.

250KBaud için aşağıdaki define komut satırlarını kullan seninkileri sil.

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 4   ' 250 KBaud @ 20MHz, 0,0%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically

HSERIN komutunda işine yarayacak bir alt komut vardır. SKIP n. Bu komut alma işleminde bir kaç byte atlanmasını sağlar. Senin 512 adet byte bilgisi yolladığını düşünürsek, komutu  da şöyle organize edersek merak ettiğin hangi adrese ne geliyor meselesini test etmiş olursun.
HSERIN [SKIP 20,a1]
tabiiki göndericide ilk 20 adrese sıfır yada 255 verip sonradan bir veya bir kaç adet mesela 100 verilmelidir.
Alıcı kısımda 3 adet peş peşe HSERIN yerine tek satır kullanılmalı böylece gelenler ardışık olarak alınıp ekrana vermek mümkün olabilir.
Ete

Elzemefe

Interupt kullanmak belki daha ii sonuc verebilir

safaka123

#3
UART kesmesi hiç kullanmadım. düşünülebilir. fakat puls katarı 512 adet bilgi biz bundan rgb için 3 adedini seçeceğiz adres bilgisiyle.     Şöyle bir şey geldi aklıma uygunmudur bilemiyorum. Deneyeceğim. Benim dmx verici sinyalimde isis osilaskopuna göre 8us olması gerekirken 12-16us. fakat profesyonel alıcılar bunu kullanabiliyorlar. stop bit her ne kadar 2 pulse denilse de tüm vericiler aynı olmayabiliyor düşüncesiyle. ve stop bit bir vericide kaç us ile başlarsa o us ile devam eder mantığı ile de pulse in komutuyla ilk gelen IDLE pulsi , mtbf palsi ve stop palsi ölçülerek bundan sonrasında stop bit kadar bekleme yapılabilir diye düşünüyorum ve her defasında aynı start palsinden başlanabilir görüşündeyim. Bu duruma göre yapıp deneyip sonucu bildiririm.
Birde hserin 8N1 olarak çalışıyor DMX512 de stop pulsi 1 pulse fazla ayrıca her data pulse ından önce 1 adet start biti var. buna göre 8N1 değiştirilebilirmi parametrelerle, yani durum 9N2 olacak şekilde.  bu şekilde olursa ETE beyin dediği gibi arka arkaya teksatırda almak mümkün olacak. hserin al,bl,cl gibi.

birde 16f628 dizi değişkeni olarak 40 değişken kabul ediyor. benim dmx vericisinde 512 değişkeni önceden hazırlayıp göndermem gerek. pulse katarında kesilme olmasın diye. şimdiki durumda tek bir datayı 512 adrese verdiğimden problem yok. fakat farklı bilgi vermek istediğimde datayı önceden hazırlayıp  tek bir katar şeklinde yollamam gerek. katar bütünlüğü araya giren komutlarla bozulmasın diye. Bunu sağlayabilecek bir öneriniz var mı.

Teşekkürler cevaplarınız için.

Elzemefe


Uart kullanarak aslinda her bir data suresine uygun timer kurup intrrupt yaparak olabilir die dusunuyorum
Bende dmx le ugrastim bir sure robot programi ve dimmer kullaniyorum konserlerde calistigim sure aklima
Gelmisti bir sure sonra is yogunlugu nedeni ile ara verdim

My9943 my9942 entegreleri bile aldim ama en saglami yazilim olur

safaka123

merhaba,
DMX alıcısı olarak hala çalışıyorum. Firmaya yeni scope alındı bununla inceliyorum. Şu an yıllık izine çıktım bundan dolayı daha fazla uğraşabileceğim ortam oluşacak diye düşünüyorum. Daha önce pulse katarlarını pulse in komutuyla alırım dedim ama aradaki mtbf kaçıyor yada start pulsini göremiyor. Hala bu konu için uğraşırken picbasic komutlarının çokluğundan zaman gecikmesi olduğunu anladım bundan dolayı picbasic içinde asm kullanabilirmiyim ona bakacağım. en azından alma durumunu halledebilsem sonrası daha kolay gelebilecek gibi. Zaten sonrasında pwm kontrolü ki bunun programını başka bir yerde zaten kullanıyorum. an1076 ile alayım sonrasında yapayım diye araştırdım an1076 yok. my9942 çinlilerin çok kullandığı ürün ama o da sanırım türkiyede yok. Bu iş başa kaldı ya yapacağım ya yapacağım. Bakalım önümüzdeki günlerde başarabilirsem buraya koyacağım çünkü hiç bir ticari kaygım yok.
şayet senin fikirlerin varsa burada paylaşırsan belki doğru yola sen götürebilirsin bizi.
iyi çalışmalar

safaka123

DMX alıcı sonunda çalışmaya başladı. 16f628 20mhz olarak çalıştırabildim. Proteus üzerinde çalıştırdım şimdilik. LCD den takip edebiliyorum.

verici 0 ve 1-255 arası bizim verdiğimiz değere göre çalışıyor. sıfırda sönük 1-255 arası ise aydınlık seviyesi olarak ayarlanabiliyor. verici gerçekleştirildi ve şu an profesyonel armatürlerle çalışabiliyor.

Sorun alıcı kısımdaydı. Bunuda sonunda picbasic ile başarabildim tabiki yardımlarınızla. Ayrıca Bir başka yerde 12f1822 ile 3ch dmx alıcı vardı. ASM dosyası ile proteus üzerinde çalışma yaptım ve çalışıyordu. Bunu programlayıp deneyeyim dedim. maalesef 12f1822 yi pickit3 programlayabildiğinden ve pahalı olduğundan deneyemedim. Kendi devrem 16f628 ile çalışıyor. http://phalox.be/wp/electronics/dmx-receiver-3-channel/

Problem var mı derseniz. Evet 1-255 arası tüm değerleri görüyor ama sıfır geldiğinde bazen 128 diye bir değer gösteriyor. Sanırım biraz daha  ince ayar gerekli. Belki yardımınız olur diye buraya göndermek istedim.

Değerli yardımlarınızı bekliyorum.

Gönderdiğim rar dosyasında proteus devreside var. çalıştırabilirsiniz. ver: 7.10



safaka123

#7
Sonunda DMX alıcı verici devresini 16f628A entegresiyle yapmayı başardım. Belki şuan eksikleri olabilir ama gayet güzel bir şekilde DMX sinyallerini alıyor.  Tüm projede kullandığım dosyaları aşağıdaki paylaşım alanından alabilirsiniz.

Proje tam bir profesyonel devre değil fakat bu işi picbasic ile çözmek isteyen benim gibi amatörlerin başlangıç yapabileceği bir proje olabilir.  Biliyorum sıkıntısını çektim Aylarca araştırma ve deneme yaparak buraya kadar gelebildim.

Bu konu ile ilgili olsun olmasın üstadların yazdıklarından çok faydalandım kaleminize sağlık diyorum.

Bu projedeki dosyaları indirdiğinizde okubeni.txt dosyasını okursanız dizindeki dosyaların açıklamalarına ulaşabilirsiniz. Projenin açıklamalarına ulaşabilirsiniz.

http://1drv.ms/1EC5Zlj

http://1drv.ms/1EC5Zlj

Herkese teşekkürler.

Birol KURNAZ

hocam paylaşım için teşekkürler.
2 link aynı yere açılıyor.
dosyayı indirdim sıkıştırılmış dosyayı aç dediğim de anti virüs uyarı veriyor.

hocam tekrar kontrol etme şansın var mı ? dosyaları.

Saygılar.

safaka123


bilgi verdiğin için  teşekkürler. AVG kullanıyordum problem göstermiyordu. bunun üzerine eset le kontrol ettim. 2 virus buldu. bunun yanısıra adaware virüsleri varmış avg nin görmediği onlarda temizlendi. sonrasında tekrar dosyaları yeniledim.

Bir deneyip bilgi verirmisin.

Kolay gelsin

Mutlu yıllar.


Birol KURNAZ

Hocam virüsler azalmış.
DMX_Control_V_1_02 uyarı veriyor.

Saygılar
Mutlu Yıllar Tüm Forum Ailesine.

safaka123

Hangi virus programını kullanıyorsun. 3 virus programından sonra hala varsa benimde virus programını değiştirmem gerek.

mutlu yıllar

safaka123

#12
O dosyayı tekrar aşağıdaki online sitede virus taraması yaptım. dediğine göre tüm virus programlarına göre taramış ve hiç bir şey bulamamış.

https://www.virustotal.com/tr/file/26e46851ba35f8db83435e3d11f8b33134c692688bebf93bc77ae4424a7b735c/analysis/1420113092/

Belki senin virus programınla kendi bilgisayarımı taratırsam farklı bir sonuca ulaşırım.


fero

hocam dmx alıcı dosyasını tekrar yüklermisiniz?

Powered by EzPortal