Elektromanyetik girişim için filtre tasarımı

Başlatan fthsev, 20 Ağustos 2015, 11:51:37

fthsev

Arkadaşlar merhaba

Tasarımı yapılıp üretilmiş bir kartta elektromanyetik girişimden dolayı(inverter çalışınca) buton okumada(buton pull-up da) problemler yaşanıyor. İşlemci bazen butona basılmış gibi algılıyor. Bu problem için faraday kafesi dışında nasıl bir filtre kullanılabilir? Veya filtre dışında bir önerisi olan var mı?

magnetron

ben 0.5 sn lik bir zaman rölesi çalıştırıyorum

0.5 sn sonra hala butona basılıysa ne işlem yapacaksa onu yaptırıyorum

fthsev

Dediğiniz şekilde filtre yazılımda var ama ms mertebesinde.

Mr_YAMYAM

Alıntı yapılan: fthsev - 20 Ağustos 2015, 11:51:37
Arkadaşlar merhaba

Tasarımı yapılıp üretilmiş bir kartta elektromanyetik girişimden dolayı(inverter çalışınca) buton okumada(buton pull-up da) problemler yaşanıyor. İşlemci bazen butona basılmış gibi algılıyor. Bu problem için faraday kafesi dışında nasıl bir filtre kullanılabilir? Veya filtre dışında bir önerisi olan var mı?
Tasarım prosedürleri.
Özellikle sistem grounding ve baskı devre yapım tekniği bu olaya etkendir.
Kesin netice için baskı devre ve sistem şaselenmesi hakkında bilgi gereklidir.

fthsev

#4
Kartın tasarımında pcb için ground plane'ler, montaj vidalarından şase, ESD(Elektrostatik deşarj),gerekli yerlere ferrit bead'ler,varistörler, ferrit core,common mode filter vs var. Kart ayrıca EMI ve EMC testlerinden de geçmiş.
Butonlarda da smd ferrit var ama bahsettiğim üç fazlı inverter çalışmaya başladığı durumlarda bazen butona(stop butonu) basılmış gibi davranıyor ve makine duruyor. Bunun için butonlara şimdilik kart üzerinde bir müdahale gerekiyor sonra tasarım gözden geçirilecek. Bunun için sizlerden öneri bekliyorum.

ferdem

Butonu pullup değil de direkt VDD ye bağladığınızda aynı problem oluyorsa buton devresine müdahale etmek işe yaramaz, bunu bir deneyin derim.
VDD ye bağladığınızda problem çıkmıyorsa, buton devresinin VDD de daha güvenli kalması sağlanarak, buton fonksiyonu da düzeltilebilir demektir. Bildiğim en güvenli-pratik buton devresi aşağıda:

Resim microchip reset devresinden alınıp düzenlendi.
Buradaki pullup direnci de 1k gibi düşük bir değer olursa daha kararlı olur. Sizin buton okuma devrenizde durum nasıl, sadece bead mi var?

Bir de olay butona basıldı etkisi mi emin misiniz? Kart reset atıyor olamaz değil mi? Sistemde başka butonlar var da sadece stop butonu mu etkileniyor, yoksa sadece tek buton mu var... gibi sorular da geliyor aklıma.

fthsev

Alıntı yapılan: ferdem - 20 Ağustos 2015, 15:41:56
Butonu pullup değil de direkt VDD ye bağladığınızda aynı problem oluyorsa buton devresine müdahale etmek işe yaramaz, bunu bir deneyin derim.
VDD ye bağladığınızda problem çıkmıyorsa, buton devresinin VDD de daha güvenli kalması sağlanarak, buton fonksiyonu da düzeltilebilir demektir. Bildiğim en güvenli-pratik buton devresi aşağıda:

Resim microchip reset devresinden alınıp düzenlendi.
Buradaki pullup direnci de 1k gibi düşük bir değer olursa daha kararlı olur. Sizin buton okuma devrenizde durum nasıl, sadece bead mi var?

Bir de olay butona basıldı etkisi mi emin misiniz? Kart reset atıyor olamaz değil mi? Sistemde başka butonlar var da sadece stop butonu mu etkileniyor, yoksa sadece tek buton mu var... gibi sorular da geliyor aklıma.

Kartta 10 adet buton var ve matris okuma yöntemi kullanılıyor. Sadece stop butonunda sorun var. 3.3V beslemesi butonlara ve işlemciye 10k ve ferrit üzerinden geliyor. Butonun diğer ucu da işlemciye bağlı, bu pinler output ve her zaman high da. Yazılımda okuma döngüsünde bu output pinleri sıra ile low yapılıyor bu esnada butonun diğer ucundaki input pinlerinden de(ferrit ve 10k olan yer) okuma yapılarak basılan buton varsa tespit ediliyor.

Sorun şöyleki butona basılmadan bu 10k ve ferrit kısmındaki 3.3V EMI dan ötürü low seviyesine geliyor ve okuma döngüsü stop butonuna basıldığını zannediyor. Ama bu nadiren oluyor.

Biraz karışık oldu anlaşılmayan bir yer varsa simülasyon şeklinde de gönderebilirim.

z

if (buton==1) goto Yallah;

Kodları bu şekilde mi yazıyorsun?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fthsev

Alıntı yapılan: z - 20 Ağustos 2015, 16:03:40
if (buton==1) goto Yallah;

Kodları bu şekilde mi yazıyorsun?

Yazılımı profesyonel bir ekip yapıyor. Yazılımsal filtreler 1ms aralıkla okuma vs yapılıyor. Buton okuma döngüsü özellikle hızlı çalışması adına assembly olarak yazıldı.

Mr_YAMYAM

Alıntı yapılan: fthsev - 20 Ağustos 2015, 14:37:50
Kartın tasarımında pcb için ground plane'ler, montaj vidalarından şase, ESD(Elektrostatik deşarj),gerekli yerlere ferrit bead'ler,varistörler, ferrit core,common mode filter vs var. Kart ayrıca EMI ve EMC testlerinden de geçmiş.
Butonlarda da smd ferrit var ama bahsettiğim üç fazlı inverter çalışmaya başladığı durumlarda bazen butona(stop butonu) basılmış gibi davranıyor ve makine duruyor. Bunun için butonlara şimdilik kart üzerinde bir müdahale gerekiyor sonra tasarım gözden geçirilecek. Bunun için sizlerden öneri bekliyorum.
GROUND PLANE'lerin amacı farklıdır.
EMI ve EMC teslerinin kapsamı neler idi. ?
Butonlardaki SMD ferritlerin olması pek birşey ifade etmez. Bu elemanlar butonların şase bağlantılarına yapılmışsa tamamen yanlıştır.
İnverterin çalışmaya başladığı andaki EMC ve EMİ etkileşimleri demekki test edilememiş veya atlanılmış.
Ancak genel görüntü gösteriyor ki sistem şaselenmesi (GROUNDING) oldukça yanlış yapılmıştır.
Alıntı YapKartta 10 adet buton var ve matris okuma yöntemi kullanılıyor. Sadece stop butonunda sorun var. 3.3V beslemesi butonlara ve işlemciye 10k ve ferrit üzerinden geliyor. Butonun diğer ucu da işlemciye bağlı, bu pinler output ve her zaman high da. Yazılımda okuma döngüsünde bu output pinleri sıra ile low yapılıyor bu esnada butonun diğer ucundaki input pinlerinden de(ferrit ve 10k olan yer) okuma yapılarak basılan buton varsa tespit ediliyor.
Butonlar ile işlemci arasındaki bağlantı ilişkileri ve işlemcinin besleme groundu buradaki temel sorun gibi görünüyor.

fthsev

Alıntı yapılan: Mr_YAMYAM - 20 Ağustos 2015, 16:12:48
GROUND PLANE'lerin amacı farklıdır.
EMI ve EMC teslerinin kapsamı neler idi. ?
Butonlardaki SMD ferritlerin olması pek birşey ifade etmez. Bu elemanlar butonların şase bağlantılarına yapılmışsa tamamen yanlıştır.
İnverterin çalışmaya başladığı andaki EMC ve EMİ etkileşimleri demekki test edilememiş veya atlanılmış.
Ancak genel görüntü gösteriyor ki sistem şaselenmesi (GROUNDING) oldukça yanlış yapılmıştır.Butonlar ile işlemci arasındaki bağlantı ilişkileri ve işlemcinin besleme groundu buradaki temel sorun gibi görünüyor.



Ground plane i kartın tasarım aşamalarını soran arkadaş için verdiğim örnekler arasında söyledim.
Butonların bağlantısı şekildeki gibi. EMI ve EMC test kapsamlarını şu an bilmiyorum. Inverter çalışırken test edilmiş ama sonradan daha büyük bir inverter a geçilince sorun başlıyor. Kart tasarımı gözden geçirilecek ama şu an kart üzerinde müdahale imkanı varsa onu denemek amacındayım.

z

Alıntı yapılan: fthsev - 20 Ağustos 2015, 16:07:11
Yazılımı profesyonel bir ekip yapıyor. Yazılımsal filtreler 1ms aralıkla okuma vs yapılıyor. Buton okuma döngüsü özellikle hızlı çalışması adına assembly olarak yazıldı.

Bence yazılımınız sorunlu.

Donanımsal filtre konmasa bile MCU bir pini bir süre gözleyerek 1 mi sıfırmı karar verebilir.

Buton okuma rutininizi C'ye çevrilmiş şekilde verebilirseniz problemin üzerine  odaklanabiliriz. Yoksa şuraya filitre koy gecikme koy gibi afaki önerilerle bir yere varamazsınız.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Mr_YAMYAM

Sorunun çözümü için şu başlıkları önerebilirim.
1 LOW-NOISE LOW DROP-OUT besleme kaynakları.
2 High-speed PCB design.
http://www.ti.com/lit/ml/slyp173/slyp173.pdf
3 IMPORTANCE of GROUNDING TECHNIQUES
http://www.celectronics.com/pdf/IEEE11-9-05.pdf
Temel prensipler doğrultusunda tasarım prosedürleri incelenmelidir. Ortaya çıkabilecek yüzlerce ihtimal gözden geçirilip olası hatalar düzeltilmelidir.

fthsev

Alıntı yapılan: z - 20 Ağustos 2015, 16:42:12
Bence yazılımınız sorunlu.

Donanımsal filtre konmasa bile MCU bir pini bir süre gözleyerek 1 mi sıfırmı karar verebilir.

Buton okuma rutininizi C'ye çevrilmiş şekilde verebilirseniz problemin üzerine  odaklanabiliriz. Yoksa şuraya filitre koy gecikme koy gibi afaki önerilerle bir yere varamazsınız.



Yazılım defalarca kontrol edildi bir sorun yok. Dediğiniz şekilde bir pin bir defa okunmuyor belirli bir periyotta birden fazla okuma yapılıyor tuşa basıldı mı yoksa gürültü mü emin olunmaya çalışılıyor, bu şekilde sorun azaltıldı. Yazılımla sorunu tamamen kaldıramıyoruz çünkü butona basıldığında kaçırma durumları oluşmaması için bekleme ve okuma sayısı optimum süreye ayarlandı.

ferdem

Pullup 10k direnci kısa devre edip bahsettigim denemeyi yapabilirsiniz, buton kullanılmayacak sadece gözlem yapılacak. Problem gözlenmezse pull up değeri düşürmek iyileştirir. Bu arada seri L yerine toprağa inen paralel kapasite daha iyi olurdu...