21 Ekim 2022 Cuma

Stm32 Mcu ile 60 Amper Electronic Speed Controller (ESC)

Merhaba,  konuya doğrudan değinelim kolay üretim şekli ve çalışma algoritması heyecan duyduğum çalışma prensibi olan esc kartından size bahsedeceğim başlıkta da okunduğu gibi ESC motor hız kontrolcüsü yapmak için işe koyulalım. 

ESC kullanım şekli


Tasarım konusunda piyasadaki kartlardan çok da farklı olmayacak şekilde, daha evvel tasarlamış olduğum İvme sensörü destekli flytracker projesine uygun bir proje olması açısından tasarlamak istedim, bu projeyi drone ile test ederken neden kendim yapmıyorum diye söylendim. Doğrusunu isterseniz Amerikayı baştan keşfetmek için biraz geç kaldım zaten gerek de yok. 

Fvp dronu ile uğraşan çoğu arkadaşın hazır aldıkları sistemleri baştan tasarlamak konuyu daha iyi anlamayı sağlayacaktır.Her halükarda bu projeye neden gerek var neden yapmam para, zaman ve emek harcamam gerekiyor diye düşünmem için bir kaç saat film izlemiş olabilirim yani gaza gelmek gerekiyor galiba 😁 ve yapmak için işe koyuldum. 

Bir devre kartı tasarlarken o kartın ne iş yapacağımı anlamak daha doğrusu tam olarak bu kart ne görevi görüyor sorusuna cevap bulmak herhalde bu işin neredeyse yarısı demek, diğer yarısı ise pcb tasarımı, kod analizi, elektriksel  hesap, kullanılacak mazeme seçimleri, mosfet ve gate sürücü hesabı hepsini bir not defteri üzerinde teorik olarak anlamak gerekirse çalışma notlarında sürece ek geliştirme eklemek projemizi daha da geliştirecektir.

Tasarım ve fikir zaten hali hazırda mevcut olabileceği ve benim durumuma ek bir özellik gerektirmeyeceğinden dolayı doğrudan anlatacağım. Gate sürücüleri de anlatmak isterim ama doğrudan alıntı bir yazı bir atıf ile zaman kazandırır çünkü üzerine araştırma yaptığımız proje, yazılım ve donanım geliştirmek o sebeple yüksek akım gerektiren bir devre tasarlarken sinyal kablosu ve kullandığınız bir devre kartında 2 katlı bir pcb nin yeterli olabileceğini gerektiğidir.

Elektromanyetik uyumluluk ( EMC ) ve girişimleri ( EMI ) bu devre kartında yüksek önem taşıyor. Gereksinimleri karşıladıktan sonra o konuya daha sonra değinebiliriz. Yazılım dışında çok zorlanmadığım bir tasarım projesine giriş yapmak üzere olduğumu farkettim yüksek frekanslı faraday kafesi gerektirecek bir verici devre kartı tasarlamıyorsun Hamza 😁 ( bu arada EMC ve EMI hakkında uzun soluklu bir yazı için bu proje üzerinde bilgi tazelemek benim fena olmazdı.) başlayalım.


ESC Çalışma Yöntemi

Üç fazlı fırçasız DA motorun şematik diyagramı 

..Fırçasız DA motorunun geçiş yerlerini, Hall Effect sinyallerini çözerek belirlenmektedir. Altı aşamalı değiştirme tekniği, fırçasız DA motorun üç fazlı motor sürücünün altı adet MOSFET sırasıyla değiştirmek amacıyla kullanılmaktadır. Belirtilen bu yöntemle, her bir sinyal çıkışlarında MOSFET’ler üç fazdan iki tanesini enerjilendirirken tek faz pasif konumda kalmaktadır. Anahtarlama dizilerinin ters çevrilmesi motorun dönüş yönünü değiştirir. Motorun hızı, Hall Effect sensörü sinyallerinin genişliği ile doğru orantılıdır. İdeal hat gerilimleri, geri EMF gerilimleri, komütasyon sinyalleri, faz akımları ve üç fazlı fırçasız DA motorun altı kademeli anahtarlaması şekil’ de gösterilmiştir.



Üç fazlı fırçasız DA motor sinyalleri ve anahtarlama örüntüsü 





Fırçasız DA Motorlarda Manyetik Alan Ve Manyetik Akı Hesaplamaları 

H=N*I/L Burada, H manyetik alan şiddeti, 

N sarım sayısı, I akım şiddeti, 

L stator kol uzunluğu B= µ *H veya B= µ (H+M) 

Burada, B manyetik akı yoğunluğu, µ = 4π* 10-7 manyetik akı geçirgenliği, 

M silisyumlu sacın manyetik geçirgenliği.

 

Mcu Seçimi 

Esc, için mcu seçiminde dikkat edilmesi gerekilen nokta giriş ve çıkışları belirleme ve ardından bu gereksinimleri sağlayacak kolay ulaşılabilir mikroişlemci seçimi yapmak bunun için genelde arm mimari kullanılan mcu işimi görecektir sonuçta kahve makinesine benzer hatta daha az pid gereksinimi duyan pwm üreticisine ihtiyacım olduğunu biliyorum aslında analog entegreler bile bunun için yeterli olabilir fakat birden fazla entegre ve kalabalık bir devre kartı herhalde günümüzde pek hoş karşılanmıyor sebebini biliyoruz :). 

Atmega8 - 328, Silaps, Attiny veya Stm32 mikroişlemcileri ki özellikle Stm32 motor sürücüsü fikri ile tasarlanışmış olduğundan Arm tabanlı birden fazla Timer içeren fiyat akabinde uygun seçimler işimi görecektir piyasa fiyatı 2 dolar altı olan 4 adet ESC için baştan kendime bir fiyat düzeni uyguladım, kısaca STM32F051'in iyi bir seçenek olacağını düşündüm. 

FIRÇASIZ MOTOR

Fırçasız motor iç gösterimi

Rotor tarafından oluşturulan dönen manyetik alan fırçalar ve komütatör yardımı ile meydana gelir. Komütatör ve fırçalar rotorun pozisyonuna göre rotor sargısı üzerinden geçen akımın yönünü değiştirerek dönen manyetik alanı oluşturur.
Şekilde gösterildiği gibi motorun iç yapısını gösteriyor genelde drone veya quadcopter gibi rc araçlarda bu motorlar sıkça kullanılır tabi benzinli olanları ayrı bir dünya..

Resimdeki motorda  6 dan fazla komütatör var fakat normalde 6 komütatör kullanılmaktadır. Bu motorlar genel bir tabirle az ekmek çok iş yapabilen AC 3 faz (phase) sinüs dalgasıyla çalışmayı destekler ve böylelikle verimlilik ve potansiyel kazanç fazladır ayrıca yüksek hızlara ulaşabilir. (24k Rpm)

BEMF

BEMF veya Geri Elektro-Motive Kuvveti, bir manyetik alanda bir bobinin dönüşü ile oluşturulan, polaritede zıt olan, çok işlevli bir kod çözücü tarafından ölçülebilen ve geri besleme olarak kullanılabilen bir voltajdır. Bu alıntı bilgi ile emf yi net olarak tanımladık şimdi nasıl yaptığımıza bakalım.

Bir motor tarafından geliştirilen maksimum tork, E BEMF = V Besleme ÷ 2 denklemine eşittir .


Rotor pozisyonunu belirlerken stator sargılarında indüklenen zıt emk’ya göre bu dedektörlerden faydalanmak mümkün olmaktadır. Sıfır geçiş dedektörü motor sürücüsüne bağlıdır ve rotorun konumunu belirlemek için, besleme gerilim değerinin yarısı ile statordaki faz sargılarına uygulanan gerilimi karşılaştırmak gerekir. Bu sensörlerin avantajı, hareket eden parçasının olmaması ve motordaki hareket eden diğer parçalarla bağlantısının olmamasıdır. Aşağıdaki şekilde bu dedektöre ait yapısı ile bağlantısı gösterilmiştir.

Açıklamaya göre, rotor pozisyonu belirlenerek çıkış pwm sinyalleri yani hangi mosfetin açılıp kapanacağı gibi bazı sorular için bize bir cevap olur.

Gate Sürücüler
Boostrap gate driver

Projede IR2101S kullanılmaktadır.

Mosfet sürücü bu projede çok önemli bir yerde çünkü pwm sinyalini motora göndermek için bir mosfetin nasıl kullanılacağı ve sinyalin frekans yada duty cevabına göre doyumda olup olmaması çekilecek akımı doğrudan etkiler ve motora gönderilen akımın doğrudan akmasına veya kısmen akmasına sebep olacak olan high side ve low side durumlarını bir ele almamız gerekiyor sonuçta patlamış mısıra dönmüş pahalı mosfetler için üzülmemiz gerekmiyor bir çaresi var..

https://www.firatdeveci.com/dikkat-high-side-gate-driver/

Mosfet Seçimi

80 amperin üzerinde, düşük Rds ON değerine sahip voltaj geçişi yada frekans etkileşimi sırasında RDS direnci üzerinden bir akım alacak bu direnç mosfet yapısı gereği yüksek frekans veya voltaj değerinde değişebilir ve gereksiz güç sıçraması yaratabilir N kanallı 25 volt üstünde herhangi bir mosfet seçebilirsiniz gate threshvolt datasheet üzerinde 10 volt altında gerekirse 4 volt seçilmeli. 

Pwm sinyali, Dshot, Multishot , TIMER Zamanlayıcı

Haberleşme protokolleri esc için geliştirilmiş hali hazırda modülasyon teknikleri olan bütün donanım/yazılımların PWM sinyali ve diğer sinyaller, bu kartlarda haberleşmek için sinyalin dutty değeri ile Usart benzeri sabit hızları olan sinyaller veya dijital sinyaller olabilir ESC işlemcimiz ana görevini icra ederken bir yandan da girişi dinleyerek çıkışa yönlendirmek zorunda eğer giriş sinyali bir şekilde kaybolursa Esc, çıkış modülasyonunu durduracaktır. Bu iletişim kopukluğu, uçuş sırasında yaşanırsa facia olabilir yüksek mertebede duran motorların cihazın bir kaç saniye sonra üreticisine ** parça arayan drone sahibi ile aranızda bir diyalogu başlatabilir bunun olmasını istemeyerek konuyu biraz anlatmak istiyorum..

Timer bizim için biçilmiş kaftan donanım üreticilerinin bulduğu, şekersiz çay olur mu?(Olur) diyenleri anlamamı sağlayacak bir donanım yönetim sistemi kendi başına bir roma imparotoru ve bunun içinde biraz adil bir sistem. Bu donanım, içeride gerekli olan İnput sinyalini (yukarıda zaten bahsettik biraz da aşağıda değineceğiz) DMA kullanarak keşfetmek ve anlamak ve bu sinyalden yola çıkarak motorun hızını değiştirmek ve rotor konumu hakkında bilgi toplayıp anında pwm pulse sinyali için için yardımcı bir görev olarak çalışacak, CPU ana loop, bilgiyi toplama konusunda vakit kaybetmeyecek ve ana döngü ile yakalayıcı donanımların frekansları karışmayacak.

PWM motor frekansı ve periyodu 2ms bu giriş sinyalinin frekansını bize söylesede yakalayıcı timerların, ana döngüden bağımsız bir frekansta çalışması gerektiğini anlatıyor. Dshot, Multishot iletişim protokollerinde paket boyutu yaklaşık 25us civarında bu sinyal frekansının 1mhz'e yakınlığını anlatıyor giriş modunda timer frekansını belirleyici etki sağlayacaktır. 

Bir diğer nokta GPIO çıkışları direkt cpu ana program fonksiyonu ile kontrol etmek yerine yerine PWM elektriksel bağlantı çıkışı aktarabilen,  işlemciyi yormayan görevli meleklerimiz Timer PWM genaratörleri kullanacağız, toplamda 6 çıkış var 3 Pozitif ve diğer ölü zaman frekansı ile negatifi. Böylece işlemci giriş sinyalinin hesabı, rotor dönüş yönü, akım yada gerilimler, adım bilgisi verilerini işlerken arka planda zamanlayıcımız gate sürücüsüne gerekli pwm çıkışı göndererek hem doğru iş yapacaklar hem de sinyale ara vermeyecek, mosfetlerimiz yumurta pişirmemiş olacaklar. 

Sistemi dinleyen Whatcdog ana döngüde yolunda gitmeyen durum fark ettiğinde kısaca 24 khz frekansında başa dönmediği zaman bir terslik olduğunu fark ederek işlemciye reset atacak böylece çıkışı durduracak hem mosfetleri hemde motoru veya ters bir durumda devreyi koruyacak tabi biz burada yavaş bir şekilde akımı kesebilen algoritma ekleyebiliriz. Bunun dışında sistem de akım ve gerilim için adc eklersek çıkış akımı veya ters akım koruma alt sistemleri ESC'yi daha güvenli hale getirebilir yine de ben son 2 koruma devresini dahil etmedim.
Havada  yanmaya başlamış bir drona henüz rastlamamış olsamda mosfetler yüzünden ısınan dış kablolar yangına müsait bir ortam yaratabilir mosfet sıcaklığını bile sisteme dahil edebiliriz.
  

Final! PCB kart tasarımı

Sözün özü tasarladığımız proje aşağıda arkadaşlar şimdi ise test ve yazılımı kontrol etmede....
Espride geri kalmadığım durumların işimi son derece sevdiğimi anlatmama gerek olmadığı kaanatindeyim ama açıklamak istiyorum v1.0  hali ile EAGLE ile tasarladığım bu pcb için eleştiriler son derece önemli.

Malzeme listesi

STM32f051 LQFP-32 kılıfında bir ic, 
3 adet mosfet sürücü IR2101S,
P-TDSON-8 kılıfında 85 Ampher 30 volt 3.2 mohm N channel 6 adet mosfet ,
 BEMF devresi için 3x10k, 6x33k, pull res. 10k, 
8 mhz kristal 20pf ,
5 volt için 2x78m05 
mcu beslemesi için L11173v3 ldo entegresi kullandım 12, 5, 3.3 gerilim hattları için 22uf, 100nf kondansatörler kullandım.  hepsi bu kadar gelecek projede görüşmek üzere sağlıkla kalın.

Özet

Bu yazının asıl amacının projeyi sadece yazı veya referans görsellerle bırakmamak kaydıyla bir işe koyulmanın ilk adımı diyebilirim, çok özverili bir şekilde yapmaya başladığım yaparken hem anlayıp hemde yazıya dökmek oldukça zaman gerektiren kıymetli şeyler bu postu yazarken çoğu  önemli detayların aslında altını çizmek için bir fırsat totemi olarak düşünüyorum sonuçta kıymetli olanın pek de üzerine düşmediğimiz gerçeğinin bir insan doğası olduğunu kabullenmem sadece bu posta özel bir durum değil anlayışınıza sunarım.
Üst görünüm

Alt görünüm mosfetle birlikte

Kod

Özel tasarlanmış pcb için özel tasarlanmış yazılım olmak zorunda değil sonuçta aynı görevi olan bir mikroişlemcinin yazılımda sadece gpio farkı olur veya özel olarak eklenecek devrenin örneğin akım okuma, led çıkışı hall efect sensörü okuma veya multishot, oneshot  protokol desteği yazılıma eklenebilir. Kullandığım MCu bu proje için diğer stm32f0xx lerden tek farkı paket boyutu LQFP-32 olmasından dolayı yazılımda hiç bir değişiklik yapmayacağımı anladığımda piyasada ki çoğu esc firmware yazılımlarının aynı mantıkla çalıştığını biliyoruz böyelikle sözün linki aşağıda..

Runn!


.

# kaynak

Hiç yorum yok:

Yorum Gönder

Ads-B nedir ne için kullanılır?

Günümüz havacılığında uçakların nerede olduğunu, ne hızla gittiğini veya hangi yüksekliği kullandığını takip etmek hem güvenlik hem de trafi...