21 Ekim 2022 Cuma

Stm32 Mcu ile 60 Amper Electronic Speed Controller (ESC)

Merhabalar, bu günlerde ihtiyacım olduğu kolay üretim şekli ve çalışma algoritmasıyla motorları çılgına çeviren elektronik kartın şahsen üretimi ile karşınızdayım evet başlıkta da okunduğu gibi droneleri şaha kaldıran ESC motor hız kontrolcüsü yapmak için işe koyulalım. 

ESC kullanım şekli


Tasarım konusunda piyasadakilerden çok da ödün vermeden konuya gireyim istetim, aslında boş bir zamanın ardından ve kırık bir ayak ile evde sıkılmaktansa bilgisayarda bir kaç proje fena olmazdı diye düşünerek daha evvel tasarlamış olduğum İvme sensörü destekli flytracker projesine uygun bir proje olması da gerekiyordu bu projeyi drone ile test ederken neden başka bir ekipmanını sıfırdan tasarlamayayım ? evet gene söylemek istiyorum Amerikayı baştan keşfetmek için biraz geç kaldım. Sonunda ESC yapmak için harekete geçtim evet.. Çok şaşırdığım fvp droncuların hazır aldıkları sistemleri kapitalist bir yaklaşımla konuyu sadece kınamak istemedim sonuçta bizde bu sistemin bir parçasıyız ve alt parçaları da olabiliriz. Yakınsamaktan çok bu projeye neden ihtiyacım var olduğunu düşünmem için bir kaç saat film izlemiş olabilirim ve yapmak için işe koyuldum Bir devre kartı tasarlarken o kartın ne iş yapacağı sadece bir fikir tarafı: %50 iş bitirme gerçekleştirmesi diğer yanı ise pcb tasarım işi, kod analizi, elektiriksel  hesaplamalar, kullanılacak eleman seçimleri, mosfet ve gate sürücü hesaplamaları gibi bir takım ve listeyi uzatan seçimlerin yapıldığı.. durun işte aynen böyle; ıslak uyanılmış bir rüya dan sonra yatağın diğer tarafının boş kalması ile aynı sıkıntılı durumu anlatıyor olsa gerek (özgürlük ve ciddiyet bazen iş kaçırabilir)  diye düşünerek..

Tasarım ve fikir zaten hali hazırda mevcut olabileceği ve benim durumuma ek bir özellik gerektirmeyeceği için orayı es geçerek anlatacağım gate sürücüleri de anlatmak isterim fakat orayı da alıntılıyabilrim çünkü üzerine durduğum tek yer yazılım ve donanım üretimi olduğu yüksek akım tasarlarken signal kablosu kullandığınız bir devre kartında 2 katlı bir pcb nin yeterli olabileceğini ama elektromanyetik uyumluluk EMI ve girşimleri EMC çok fazla kafaya takmadan yapılabilecek bir proje olmasından dolayı orayı da es geçtim aslında yazılım dışında çok zorlanmadığım bir tasarım furyasına giriş yapmak üzere olduğumu farkettim yüksek frekanslı faraday kafesi gerektirecek bir verici devre kartı tasarlamıyorsun Hamza diyerek işe koyulmanın önceden yapılacak hesaplamaları bile es geçmeme sebep verebilir. ( EMC ve EMI hakkında uzun soluklu  proje için 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 ucuz mikroişlemci seçimi yapmak bunun için genelde arm mimari kullanılan mcu işimi görecektir sonuçta kahve makinesinden farksız daha az pid gereksinimi duyan pwm üreticisine ihtiyacım var aslında analog entegreler bile bunun için yeterli olabilir fakat birden fazla entegre ve kalabalık bir devre kartı herhalde günümüz elektronik furyasında biraz iyk olurdu. 

Atmega8 - 328, Silaps, Attiny veya Stm32 mikroişlemcileri Arm tabanlı birden fazla Timer içeren basit yapılı beyinleri işimi göreceğinden dolayı piyasa fiyatı 20 - 30 TL ile 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 alamamız gerekiyor sonuçta patlamış mısıra dönmüş pahalı kuzucuklar için üzülmemiz gerekmiyor bir çaresi var bla bla...

Burası biraz sıkıcı gibi geldi sonuçta amerikayı tekrar keşfe çıkmak elbette sıkıcı bir iş gibi gözükmeyebilir ama öyle 

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

Mosfet Seçimi

.... 80 amperin üzerinde, düşük Rds ON değerine sahip NPM kanallı 25 volt üsttünde herhangi bir mosfet seçebilirsiniz 

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

Haberleşme protokolleri esc ler için geliştirilmiş hali hazırda modulasyon sinyali olan bütün donanım/yazılımların adeta virgülü haline gelen PWM sinyali ve diğer sinyaller, bu 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ış modulasyonunu durduracaktır bu iletişim kopukluğu, uçuğu sırasında yaşanırsa facia olabilir yüksek mertebede duran motorların cihazın bir kaç saniye sonra üreticisine söverek parça arayan drone sahibi ile aramızda bir diyalogu başlatabilir bunun olmasını istemeyerek bu konuyu biraz anlatmak istiyorum..

Timer bizim için biçilmiş kaftan donanım üreticilerin bulduğu, şekersiz çay olur mu 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 yakalamak ve anlamak ve bu sinyalden yola çıkarak motorumuzun hızını değiştirmek için rotor konumu hakkında bilgi toplayacak 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 herkez musmutlu evine dönecek.. ııg ıgmm. 

PWM motor frekansı için çok fazla PWM sinyalinin periyodu 2ms bu giriş sinyalinin frekansını bize söylese de yakalayıcı timerların, ana döngüden bağımsız bir frekansta çalışması gerektiğini anlatyor ve bu duruma hak veren diğer sinyaller, Dshot, Multishot iletişim protokollerinde paket boyutu yaklaşık 25us civarında bu sinyal frekansının 1mhz'e yakınlığını anlattığı için 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 sinyal çıkışı  verebilen işlemciyi yormayan görevli meleklerimiz Timer PWM genaratör leri kullanacağız, toplamda 6 çıkış var 3 Pozitif ve diğer 3 ü ölü zaman farkı 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ışı vererek hem doğru iş yapacaklar hem de sinyale ara vermeyecek, mosfetlerimiz yumurta pişirmemiş olacaklar. 

Sistem bekçisi 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 farz ederek işlemciye reset atacak böylece çıkışı durduracak hem mosfetleri hemde motoru veya ters bir durumda çıkışımızı koruyacak bunun dışında sistemde akım ve gerilim okumaları eklersek çıkış akımı veya ters akım koruma alt sistemleri de ekleyerek ESC yi daha güvenli hale getirebiliriz ama ben son 2 koruma devresini dahil etmedim.
Koruma derken es geçmeyelim 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.... bla bla 
  

Final! PCB kart tasarımı 

İşte bu bebeğim astavista!!! 

Gel gelelim işin en çılgın noktasına bu tasarım şuan da inanılmaz gözüküyor evet lehim yerlerini adeta patlayacak şelale gibi açılımda bulunarak biraz olsun gevşemeye hazır bir canlıya çevirdim, adeta evrimin sırlarını açıklayacak nitelikte kontrolcü, evlenmeden önce sizi bekarlığa veda partisinde gazlayan eküriniz gibi durmuyor mu ? hadi oğlum bu tam senlik diyen amcanızın sizi gazladığı gibi ahenkle güç verecek gibi duruyor, baktığımızda bir şeylerin yerden havalandığını fark ettiyseniz.. 

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 bu 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 anladıklarınızı bir yazıya dökmeniz oldukça zaman gerektiren kıymetli şeyler bu postu yazarken çoğu es geçtiğim ö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 efecct 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