Hemen kolayca ir2153 ile yapayım dedim böyle sanki daha zor oldu.
Burst mode çalışmasına rağmen çıkışlar iyi.
0-35Volt 17Amper 0-60v da verebliyor bir tuş ile ama 35 volttan sonra amper düşüyor, lazım olur diye yaptım.
16saat timer ayarı da var. Otomatik kapanma :P
Stm8 kaynak kodu ve derlemmiş dosya .s19 -> http://s7.dosya.tc/server8/riy48r/500wsmps.rar.html
(https://image.ibb.co/k7zrGU/500_W_Stm8_Power_Supply.png)
(https://image.ibb.co/npEcO9/20180809_231728.jpg)
(https://image.ibb.co/hfVywU/20180808_151119.jpg)
(https://image.ibb.co/dbuYwU/20180806_194107.jpg)
(https://image.ibb.co/hCuDVp/20180804_172919.jpg)
@iboibo fikir-uygulama gayet güzel yalnız bu projeyi biraz derleyip toplamak lazım.
Burst mode, hafif yüklerde pwm palsi atlamak olarak algılıyorum. doğru mudur?
Bu arada kodu STM8 için ASM ile mi yazdın?
Çinli bu projeyi görmesin, direkt çalar :)
Burst kelimesini bende bu siteden öğrendim :P :P
Burada pwm yok sabit osilatör (ir2153) var susup çalışıyor çıkışı ölçüyor voltaj yada amper istenen değere ulaştığı zaman osilosyon optoküplör ile susturuluyor.
Üzerinde optokuplor olan tüm smpsler benzerdir.
PWM ile çalışan devreler çıkış çok daha temiz oluyor çünkü osilosyon sürekli, pwm değişiyor.
Ayrıca PWM ile çalışan devrede şönt+opamp kullanmadan direk çekilen amperi bobinden ölçmek mümkün.
Kod ASm main.asm
Alıntı yapılan: iboibo - 10 Ağustos 2018, 00:20:53Burst kelimesini bende bu siteden öğrendim :P :P
Burada pwm yok sabit osilatör (ir2153) var susup çalışıyor çıkışı ölçüyor voltaj yada amper istenen değere ulaştığı zaman osilosyon optoküplör ile susturuluyor.
Üzerinde optokuplor olan tüm smpsler benzerdir.
PWM ile çalışan devreler çıkış çok daha temiz oluyor çünkü osilosyon sürekli, pwm değişiyor.
Ayrıca PWM ile çalışan devrede şönt+opamp kullanmadan direk çekilen amperi bobinden ölçmek mümkün.
Kod ASm main.asm
Üstad çıkış akımını şönt ve opamp kullanmadan bobinden ölçmeyi anlatır mısın?
tunayk spms trofunun girişi yada çıkışı farketmez, ferrit akım trafosu koymak.
50-100 sarım yada lazım olduğu kadar ferrit ringe sarılır, smps trafoya giden kablo ortasından
gider.
Sarım , hızlı diyot ile doğrultulup yük direç ve kondansatör ile filtrelenir daha sonra uygun
direnç ile voltajı düşürülüp adc ye gönderilir bu kadar.
Bu peryot belli ise, çok güzel lineer ölçülür.
Ama buradaki devrede osilosyonun açılıp kapanması belli peryotta değil yük bindikçe peryot
kısalıyor yük az iken peryot uzun oluyor bu nedenle filtre edilemiyor, özellikle çekilen akım az iken
Trafo çapları nasıl?
Elinize sağlık.
Bunları kullandım
https://www.ozdisan.com/pasif-komponentler/feritler/feritler/CF199T3615C
https://www.ozdisan.com/pasif-komponentler/feritler/feritler/CF199T2510C
Alıntı yapılan: iboibo - 10 Ağustos 2018, 00:20:53Üzerinde optokuplor olan tüm smpsler benzerdir.
Yok boyle bir sey yok. Optocoupler ile lineer geri besleme yaparak pwm ile oynayan cok tasarim var. UC384x le yapilan tasarimlar mesela.
Tasarimini yaptiginiz gucteki guc kaynaklari icin burst modu uygun degil diye dusunuyorum.
Alıntı yapılan: Zoroaster - 10 Ağustos 2018, 17:49:07Yok boyle bir sey yok. Optocoupler ile lineer geri besleme yaparak pwm ile oynayan cok tasarim var. UC384x le yapilan tasarimlar mesela.
Tasarimini yaptiginiz gucteki guc kaynaklari icin burst modu uygun degil diye dusunuyorum.
Valla hocam ilk kez sizden duyuyorum böyle bir sistem olduğunu.
Bahsettiğiniz gibi pwm kontrolü çok daha iyidir ama denemiş oldum sonuç kötü değil.İş görüyor.
Amper arttıkça burst gürültüsü azalıyor iki seçenek var zaten düşük burst yüsek burst diye.
PWM sürülü forward yapıda 1500w bir güç kaynağı da yapacağım kaynak özelliği de olacak.
Ilk kez duydugun nedir anlamadim?
Bu guc kaynagini mesela 1A cekecek sekilde yukle. Bir role ile 10A ceken bir yuku peryodik olarak devreye sok cikar. Voltaj regulasyonu nasil bir bak. Sezgilerim cok buyuk ripil ve cok fazla EMI olacagini soyluyor.
Yok o şekilde ripil olmuyor neden dersen saniyede timer ile 40.000 defa çıkışlar kontrol ediliyor . Bursttan kaynaklı pikler olabilir onuda hoparlör+ kondansatör ile çıkışı dinliyorum gayet makul değerde.
Benim dandini osiloskopla ;D yük bindirip fotoğraflrını koyacağım .
Çıkışlar şahane ;D Resimlere tıklayarak büyütebilirsin.
Bu low modda (düşük amper modu max 100W)
(https://image.ibb.co/eo82ap/20180810_184620.jpg)
Bu high modda (osiloskop burstu yakalamış bence iyi)
(https://image.ibb.co/dcDPo9/20180810_184709.jpg)
Düşük frekans düşük frekansda bir sallanma varmı diye
(https://image.ibb.co/jK98Fp/20180810_184645.jpg)
@iboibo konudan alakasız bir soru sorayım. Osiloskop yazılımını senmi yaptın. Lcd de grafik çizerken arka plana grid çizmenin mantığı nedir? Tek katmanda nasıl yaparım bunu?
@Mucit23 Spi data busuna birden çok ürün takabilirsin.
SPİ flash çip içine görüntüyü yükle çipi read konumuna getir ekranı ise write konumuna daha sonra sahte clock ver bu kadar.
osilsokop görüntü çizgisi sonradan mcu dan gidiyor.
Spi ramlarda var spi data busuna istediğin kadar takabilirsin spi ramı cpu ile doldur daha sonra sahte clcok ile spi ramden spi ekrana gönder bunu da yapabilirsin zor bi iş değil .
Back buffer olmadan ekran sürekli titrer yada mcu yüksek ram olacak f4 gibi.
Piclerde sırf bu iş için 256kb 512kb ramlı olan mcular üretmişler.
stm32f103 de 20kb ram ekrana back buffer olmuyor yetmiyor.
O halde her seferinde alt girid ile sinyal görüntüsü yeniden basılıyor
@Mucit23O kadar proje yaptın, bir çok lcd projesi yaptın hala soruyorsun. :)
Grid'i her seferinde basmaya gerek yok, ekrana gridleri çiz, sonra diyelimki TFT'nin 16bit renk çözünürlüğü var yatay olarak 240 pixel, dikey olarak 320 pixel olsun,
2 adet buffer'a ihtiyacın var, biri eski renkler, diğeri yeni renkleri tutacak, eski renkler sinyal silinirken/tazelerken veya ekranı temizlerken kullanılacak.
buffer boyutları ise, aşağıdakinden 2 tane olacak, struct içine bunları yerleştir, sonra struct'ı array yap(2 adet yani, veya direk multi array yap)
// toplamda 2*2*3*240=2880 byte buffer harcarsın
u16 V[240]; // Vertical coordinate
u16 H[240]; // horizontal coordinate
u16 C[240]; // bu coordinate'lardaki color bilgisi
Böylece ekranın tümünü yazmadan, sadece sinyalin değiştirdiği yerleri tazelersin, bir tek ekran temizken(sadece gridler varken), ilk basmada eski renkleri bilemeyeceğin için, birkereye mahsus, lcd'ye datayı basmadan ilgili koordinatları okuyup, eski renkler buffer'ını tazelemelisin.Yani ekran temiz veya ekran silindi flag'ı de tutmalısın.
@mucit23 elimde spi ram yoktu sadece uydu alıcıdan söktüğüm 8 bacakli bir flash vardı.
@CLR böyle optimizasyon sağlarsın ama sadece osiloskop için değil başka uygulamar için de ekranın titremesi çok büyük dert tir tir tiriyor vurup kırası geliyor adamın.
Ayrıca şu var osiloskopta sinyal çok karmaşık titreşikse buffere sığmayabilir çoğu zaman böyle oluyor .
Benim dediğim gibi yaparsan titremez, sen tüm ekranı bufferlıyorsun, yani 320*240*2=153600 byte'lık buffer gerekir(ram vs) sonra tümünü ekrana basıyorsun,
benim dediğim yöntemde ise sadece ekranda 240pixel değiştiriliyorsun, değişenlerin koordinatlarını tutarak, böylece 2880byte yeterli oluyor.
senin sisteme göre 153600/2880=53 kat daha hızlı oluyor.
Bekledigim grafik bu degildi. On off on off seklinde yuk devreye girip cikarken voltajdaki degisimi gormekti. Yani voltajdaki gocmeler sonucu olusacak ripillari gormekti. Verdigin grafikler kalici duruma ait grafikler. Ben on-off geciclerindeki grafiklerde ne oluyor bitiyor gormek isterdim.
Yanlis anlama calismalarin hosuma gidiyor sadece kullanilan teknikten dolayi elestirim. Sezgisel olarak bu guclerde bust modu hatali bir secim iddiamin arkasinda duramam o yuzden yukteki ziplama gecislerindeki grafigi merak ediyorum.
Alıntı yapılan: CLR - 11 Ağustos 2018, 01:38:21@Mucit23
O kadar proje yaptın, bir çok lcd projesi yaptın hala soruyorsun. :)
Grid'i her seferinde basmaya gerek yok, ekrana gridleri çiz, sonra diyelimki TFT'nin 16bit renk çözünürlüğü var yatay olarak 240 pixel, dikey olarak 320 pixel olsun,
2 adet buffer'a ihtiyacın var, biri eski renkler, diğeri yeni renkleri tutacak, eski renkler sinyal silinirken/tazelerken veya ekranı temizlerken kullanılacak.
buffer boyutları ise, aşağıdakinden 2 tane olacak, struct içine bunları yerleştir, sonra struct'ı array yap(2 adet yani, veya direk multi array yap)
// toplamda 2*2*3*240=2880 byte buffer harcarsın
u16 V[240]; // Vertical coordinate
u16 H[240]; // horizontal coordinate
u16 C[240]; // bu coordinate'lardaki color bilgisi
Böylece ekranın tümünü yazmadan, sadece sinyalin değiştirdiği yerleri tazelersin, bir tek ekran temizken(sadece gridler varken), ilk basmada eski renkleri bilemeyeceğin için, birkereye mahsus, lcd'ye datayı basmadan ilgili koordinatları okuyup, eski renkler buffer'ını tazelemelisin.Yani ekran temiz veya ekran silindi flag'ı de tutmalısın.
@CLR Bi ara buna gerçekten takıldım ama yapamadım yani. Bunu gerçekten denedinmi? Ben çünkü katman olması ve bu katmanlar üzerinde toplama yaparak basılması gerektiğini düşünüyordum. Onda da dediğin gibi ram ihtiyacı çok fazla oluyor. Burda ekran hafızasını ram olarak kullanmak gerekiyor.
Daha önce grafik çizdirme uygulamaları yapmıştım
https://youtu.be/xqd2WVPOh5o
Fakat herseferinde takıldığım nokta bu oldu. Ekrana bir kereliğine girid çizeceğiz. Daha sonra eskisini sil yenisini çiz mantığıyla grafiği çiziyoruz. Buda okey. Fakat ben eskisini silerken arka planı hep beyaz kabul ediyordum. Dolayısıyla ekranda girid çizgileri varsa bunlarıda siliyordum. Bi ara biraz uğramıştım ama kaldı öylece. Vakit bulursam yine uğraşırım.
2011'de bile yaptım, buradaki grid mantığından çok daha zor, mesela ekteki videoda bile kayan yazı varken, aynı anda zıplayan top var(belki görüntü net olmadığı için anlaşılmıyor olabilir), burada sadece müdahale ettiğim pixelleri güncelliyorum, çünkü hem yazı hareketli hemde top, ayrıca topta sinüs hareketide var, tüm ekranı ramde tutacak olsam bu küçük ekran için lpc2148'in ram'i yetmez(yaklaşık 33KB ram gerekir ama lpc2138'in ram'i 32KB). Ayrıca spi haberleşme olduğundan sürekli tüm ekranı basarsam, görüntü sağlam titrer.
http://www.uicroarm.com/nokia6100-ve-lpc2148-video
Alıntı yapılan: Mucit23 - 11 Ağustos 2018, 08:52:35@CLR .. Onda da dediğin gibi ram ihtiyacı çok fazla oluyor. Burda ekran hafızasını ram olarak kullanmak gerekiyor.
Daha önce grafik çizdirme uygulamaları yapmıştım
https://youtu.be/xqd2WVPOh5o
Fakat herseferinde takıldığım nokta bu oldu. Ekrana bir kereliğine girid çizeceğiz. Daha sonra eskisini sil yenisini çiz mantığıyla grafiği çiziyoruz. Buda okey. Fakat ben eskisini silerken arka planı hep beyaz kabul ediyordum. Dolayısıyla ekranda girid çizgileri varsa bunlarıda siliyordum. Bi ara biraz uğramıştım ama kaldı öylece. Vakit bulursam yine uğraşırım.
Öyle olmaz, ekranın eski halini beyaz kabul ettim falan, olmayacağı bellişmiş zaten, mantık dışı. Ekranda gridler var ve grafiğin nereye çizileceği belirsiz, çünkü adc verisine bağlı, sen tüm ekranı beyaz kabul ediyorsun.
Hiç emwin falan kullanmadın mı? Öyle bir gereksinim olsa, adam ekran boyutu kadar + kullanacağı kadar senden ram ister ki, öyle bir microcontroller yok dünyada.
Mantık şu, hangi pixellere ne yazdığını bileceksin bir de oranın boş halini bilmelisin.
Konuyu çok dağıttık. Son olarak Bir örnek kod parçası varmı?
@Zoroaster Hocam tam bahsettiğiniz gibi yaptım normalde 15ohm yük var 1ohm yük 12v değdiriliyor kırmızı çizgi trigger
almak için direncin ucunda sıfıra düştüğü an çizim başlıyor bir aşağı doğru iniş ve yükseliş var ilk pixeller osiloskopda çizilmiyor ama bir iki pixel önce düşüş başlıyor , düşüş yaklışık 50us gibi . İyi mi kötümü bilemedim.
Bir tane 50Amp mosfet ve osilatör ile 1 ohm bağlayıp osiloskop görüntüsünü alacağım birde pc power suplly ile deneyeceğim.
(https://image.ibb.co/cqk6Lp/20180811_151749.jpg)
burada osiloksop örnekleme hızı
(https://image.ibb.co/kfeY0p/20180811_152229.jpg)
@CLR senin yönteminde neden arrayı 240 olarak alıyorsun tam olarak anlamadım
Bu resme bakarsan ekranın pixellerinin nerdeyse 1/3 gitmiş senin yöntemle bu da sığmıyor 10kb senin arraylarından lazım şu görüntü için.
(https://image.ibb.co/g7T46U/20180811_152337.jpg)
Burada daha net görünüyor.
Hocam dikkat etmediniz galiba ama benim devrenin çıkışında 6000uf kondansatör var.
Mosfetle 500hz düşük duty de 12v 1R yük bindiğinde
Bu PC supply
(https://image.ibb.co/c92vwU/20180811_163354.jpg)
Bu benmki
(https://image.ibb.co/eagoGU/20180811_162535.jpg)
Alıntı yapılan: Mucit23 - 11 Ağustos 2018, 15:12:24Konuyu çok dağıttık. Son olarak Bir örnek kod parçası varmı?
Mantığını söyledim ya, koddan daha değerli bu.
Alıntı yapılan: iboibo - 11 Ağustos 2018, 15:41:00senin yönteminde neden arrayı 240 olarak alıyorsun tam olarak anlamadım
Bu resme bakarsan ekranın pixellerinin nerdeyse 1/3 gitmiş senin yöntemle bu da sığmıyor 10kb senin arraylarından lazım şu görüntü için.
(https://image.ibb.co/g7T46U/20180811_152337.jpg)
Öncelikle kusurabakma konunu dağıtmış olduk. Özür. Ayrıca projende gerçekten iyi ve ayrıca stm8 asm ile yazmış olman, çok daha iyi, donanıma iyi hakim olduğunu gösteriyor.
Sorun içinse senin gibi yapmazdımda ondan, sen 12800HZ'in 50 periyodunu aynı ekranda göstermeye çalışıyorsun, böylece çoğu pixeli kullanıyorsun.(bir nevi resim basılmış gibi olmuş)
Ben olsaydım enfazla 1-3 periyod gösterirdim, pixelleri 240 veya 320'ye göre oranlardım, böylece hem sinyaller daha net görünürdü hemde periyodlar.(240-320 dememin nedeni, çoğu tft bu oranlara sahip olduğu için)
Yani sinyali ekrana basarken, adc okuma aralıklarını LCD sınırlarına göre (ekranın yatay dikey pixel sayısı kaçsa artık) optimize etmek gerekiyor.
Ekranın tüm alanını doldurursan ekranı yenilemekten başka şansın olmaz.
Örnek vermek için aşağıdaki videoyu yükledim.
Telekkürker. Biraz anladım gibi. Boş bir vakitte yapacağım bunu.
@iboibo Elinize sağlık plazmadan sonra yine güzel bir çalışma olmuş.
çıkış trafosunun bobin çapları nedir ?.
Hocam sarabileceğin ne kadar kalın tel kullanırsan o kadar iyi, tüm smpsler için , ben çıkış 1mm giriş için 0.4mm kullandım yeterli mi hayır.Yük bindiği zaman ısınıyor ne yazık ki.
Tavsiyem smps trafolarında , ince 0.3--0.5 gibi bobin tellerini bir araya geririp büküp tek kalın tel haline getirmek.
Trafonun sarım sayısını yanlış yazmısım 35sarım giriş 15+15 çıkış olacaktı. Şemada 40-10 demişim bu şekilde 35volltan yüksek vermez.
Konu dışı ama; şu ekranlı yazıları görünce iyi ki kullanıcı arayüzü tasarlamıyorum dedim kendi kendime :)
Deri Etkisi (Skin Effect) Hesabı için örnek:
(https://cdn.pbrd.co/images/HyYKuEF.png)
246 uM x 2 = 0.5 mm çap oluyor diye biliyorum...
https://chemandy.com/calculators/skin-effect-calculator.htm
Deri etkisini, çok bobin telini yanyana getirip büküp tek bir telmiş gibi kullanılınca skin effect azalıyormuş ,artık yüzde kaç azalıyor?.
Düşünsenize elektronlar virajı alamıyor ;D daha hızlı verilirse acaba elektron fırlayıp gidecek mi ;D
Ben de ilginç bir konuyu açıklayayım dedim, half bridgede , full bridge trafo çıkış sarımlar aynı olsa bile giriş sarımları half bridgede yarısıdır
Yani half bridgde 10amperlik mosfet gerekiyorsa full bridgede 5amperlik mosfet yeterli olacaktır trafo oranı yarı yarıya farklı olduğu için, resimde daha net anlaşılır.
(https://image.ibb.co/hap1Qp/frfbbg.jpg)