avatar_kartal_0689

SPI Reset Alma Sorun!!!

Başlatan kartal_0689, 18 Aralık 2013, 11:01:05

kartal_0689

Arkadaşlar Merhaba,

Yapmış olduğum bir sistemde MCP23S08 SPI entegresi kullanıyorum. Kullanıldığı yer ise şöyle;
mikroişlemciden SPI olarak haberleşiyorlar ve SPI' nin çıkışı da ULN2803 ile roleleri kontrol ediyor.
Standart ULN ve role bağlantısı bunlarda bir problem yok.

Şimdi sorun şu. Roleler kuru kontak olarak çalıştığında yani role kontakları enerjisiz ise SPI resetlenmiyor.
Fakat role kontaklarından 220VAC geçirip lambayı yaktığımda SPI resetleniyor ve sistemi yeniden başlatana kadar ayağa kalkmıyor.
Role kontaklarındaki gerilimi 180VAC lere düşürdüğümde sorun olmuyor. Sadece 220VAC geçirdiğimde böyle bir sorun oluyor.

Bu konuda bilgisi olan var mı çok enterasan işin içinden çıkamadım.

i.soran
TURKEY/ANK

ete

Bu tür reseti genelde işlemci atar. Ama SPI ile bir birlerine bağlı oldukları için sorun SPI da gibi görünüyor sanırım.
İlk tedbir olarak sigorta ayarlarındaki BOR ayarını BOR_OFF olarak ayarlayın tekrar deneyin.
BOR (Brown Out Reset) voltajın anlık düşmesi durumunda işlemciye reset attırır. Anlık düşme rölenin çekmesi ile meydana geliyor olabilir.
Genelde röle ve işlemci aynı yerden beslenbiyor ise bu tür sorunlar çıkması kuvvetle muhtemeldir.
Soruyu sorarken ne bir şema ned ebir program parçası vermişsin. Yalnızca sorunu açıklamak çözüm için yeterli olmuyor maalesef.
Röle kontaklarına 100nf kondansatör bağlamak da bazen sorunu çözebilir.
Elbette en güzel çözüm röle beslemelerini ve tetik mekanizmasını opto kullanarak işlemci ksımından izole etmektir.

Ete

kartal_0689

Hocam sigorta ayarları PBOR = OFF olarak seçtim.
işlemci reset aldığında baştan başlıyor normalde ancak bu şekilde olduğunda baştan başlamıyor ki. kafamı karıştıran bu zaten.
Role kontaklarına 100nF 250V bağladım yine olmadı. Gerilimi 110V yaptım hiçbir sorun yok. Sadece role kontaklarından 220VAC geçiriyorum ortalık karışıyo.
Bu yazılımın spi kısmı;

     Relay_Spi_Port.0 := 1; // relay_1
     ModulRly_CSpin := 0;
     SPI2_Write(0x40);
     SPI2_Write(0x0A);
     SPI2_Write(Relay_Spi_Port);
     ModulRly_CSpin := 1;

Zaten sistemde spi olarak sadece role yok hocam. Bütün çıkışlarımı spi ile yapıyorum. yaklaşık 10 farklı çıkışım var 2'şer gruptan. Bunlar da aynı bu şekilde çalışıyor.

Ekte şema var bir de burdan bakalım isterseniz. Benim kafam durdu :)
TURKEY/ANK

ete

Bu resim ve program parçasından bir sorun göremedim.
Ete

İlyas KAYA

Lamba hattının beslemesi (220vac) ile sizin data hattı veya dc besleme aynı kabloyumu kullanıyor ?
Besleme devresini de eklerseniz onu da inceleyelim.

Role çektiğinde oluşan spark'ı önelemek için role kontaklarına da 100n 250v bir kondansatör bağlayıp denermisin.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

kartal_0689

#5
Labma beslemesi (220VAC) ile SMPS beslemesi(220VAC) aynı yerden gelmektedir. Sistemde bir anakart var. Anakart üzerinde 5V regülatör var.
Dolayısıyla data hatlarım ile dc beslemeleri izole.
Anakart besleme (12VDC) SMPS üzerinden gelmektedir. Ve tam izoledir.
Anakarta bir role modulü PCI konnektörlerle modül olarak bağlanıyor. Ve anakart üzerinden klemenslerle dışarıya taşınıyor.
Ben role kontaklarını 220V ile enerjilendiriyorum. İşte bu anda sorun başlıyor. Sorun aşağıdaki gibidir.

1) roleleri tek tek aktif ettiğimde SPI bütün çıkışlarını kapatıyor. Dolayısıyla reset yiyor.
2) rolelerin hepsini aynı anda aktif ettiğimde yine bütün çıkışlarını kapatıyor, reset yiyor.
Ve bu sorun bazen oluyor. Yani 3 seferde 1 kere mutlaka oluyor.

Sistemde 1ms ve 10ms olmak üzere 2 timer var. Ve roleler 1ms lik timer üzerinden açılıp kapanıyor.
Acaba dedim role açma kapama süresi timer içinde daha mı yavaş kalıyor. bunuda denedim. Timer içerisinde
bir sanal timer yaptım ve belli aralıklarla (500ms) roleleri kontrol ettim. yine aynısı oldu.
Ne zamanki role kontaklarından 220VAC nin altında bir gerilim geçiriyorum sorun çözülüyor.

i.soran
TURKEY/ANK

kartal_0689

#6
Arkadaşlar sorunu çözdüm...:)

2 farklı çözüm buldum.

1.Çözüm= Rolenin enerjilendirdiğim kontaklarına; 22nF/250V ve 33R 2W lık direnci seri yapıp kontaklara paralel bağladım.

2.Çözüm= Rolenin enerjilendirdiğim kontaklarına;UF5408 ya da UF4007 diyotların her anotları birbirine bağlanacak şekilde (Cathode......Anode+Anode......Cathode)
role kontaklarına paralel bağladım.

Bu şekilde sorun çözülmüştür arkadaşlar bilgilerinize...

i.soran
TURKEY/ANK

Powered by EzPortal