Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Güç Elektroniği => Konuyu başlatan: devrecii - 26 Şubat 2024, 00:47:14

Başlık: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 26 Şubat 2024, 00:47:14
Mcu kotrollü olduğu için kolay,  herkesin yapabileceği bir güç kaynağı yapmak istemiştim işte sonuç  :-*

En fazla 300w verebiliyor ama sınırda ,  pc poweründen söktüğüm  uzun eel35 trafosu kullandım 30v 10A

Forward yapısında

(https://i.ibb.co/6WsVvGb/mcuspmps.png)

https://drive.google.com/file/d/1IeA1ojyDPsADiaAm0SjVInzf7HEXZ5H9/view?usp=sharing

#include "stm8s.h"
 
static const uint8_t dgt[]={ 0xee,0x24,0xd6,0xb6,0x3c,0xba,0xfa,0x26,0xfe,0xbe,0xf0,0xf8,0xd0,0xf4,0x1f,0xca,0x0,0x0 };
static const uint8_t dgtc[]={ 0xf2,0xb3,0xe3,0x73,0xd3,0xf1,0xf3  };
uint8_t syf[]={ 1,2,3,4,5,6};
 
uint8_t  Ayr_v,Ayr_a,Ayrhg,Ayrypy,tHerm,fsnon,vltyok,AyrDsgt;
uint16_t Vtis,Ampis,Ampdgr,Ynsn,syy,fanpwm,fanpwmis;
uint16_t Amp,Vlt,Vlto,Ampo,Pwm;
const uint16_t  _ssd=2760;
const uint8_t _sxv=5;
 
 void ito(uint16_t sy,uint8_t bs)
 {
  bs-=2;
  for(uint8_t j=0;j<3;j++) { syf[bs]=sy%10; sy/=10; bs++; }
  bs--; if((syf[bs]==0)&&(bs<3)&&(sy<1))  syf[bs]=16;
 }
 
 void flshwrt();
INTERRUPT_HANDLER(EXTI_PrtAIRQHandler,3)
{
   uint8_t ssd=GPIOA->IDR&14;
  if(ssd==14) { Ayrhg^=1;  Ynsn=15000; return; }
  if(ssd==4)  {  Ayrypy=30; AyrDsgt=1; if(!Ayrhg) {  Vtis+=Ayr_v; Ayr_v+=3; if(Vtis>1010) Vtis=1010; Vtis-=Vtis%3;  Vtis+=2;  } else  { Ampis+=Ayr_a; Ayr_a+=3; if(Ampis>990) Ampis=990; } return; }
  if(ssd==2)  {    Ayrypy=30;  AyrDsgt=1; if(!Ayrhg)  { Vtis-=Ayr_v; Ayr_v+=3; if(Vtis>1030) Vtis=0;  Vtis-=Vtis%3;  Vtis++; } else { Ampis-=Ayr_a; Ayr_a+=3; if(Ampis>1000) Ampis=0; } return; } 
  }
 
INTERRUPT_HANDLER(EXTI_TimIRQHandler,23)
{
 
 __asm( "__buz: \r\n"
        "ldw y,Vlto; \r\n"
        "subw y,$53e2; \r\n"
        "sraw y; \r\n"
        "addw y,Pwm; \r\n"
        "ldw Pwm,y; \r\n"
        "ldw x,Ampdgr; \r\n"
        "subw x,$53e0; \r\n"
        "ldw Ampo,x; \r\n"
        "ldw x,Vtis; \r\n" 
        "subw x,$53e2; \r\n" 
        "cpw x,Ampo; \r\n"
        "jrsle __hgh; \r\n" 
        "ldw x,Ampo; \r\n"
        "__hgh:  \r\n"
        "addw x,Pwm; \r\n"
        "tnzw x;\r\n " 
        "jrpl __kj; \r\n"
        "clrw x;\r\n" 
        "__kj: \r\n" 
        "cpw x,_ssd \r\n"
        "jrule __sk \r\n"
        "ldw x,_ssd \r\n"
        "__sk:\r\n"
        "ldw Pwm,x \r\n" 
        "ld a,4; \r\n"
        "sraw x; \r\n"
        "sraw x; \r\n"
        "sraw x; \r\n"
        "sraw x; \r\n"
        "ld a,xl; \r\n"
        "cp a,_sxv;\r\n"
        "jruge __sux; \r\n" 
        "clr a; \r\n"
        "__sux: \r\n"
        "ld $5266,a;\r\n"
        "ld $5268,a;\r\n"
        "__sddf:\r\n"
        "mov Vlto,$53e2; \r\n"
        "mov Vlto+1,$53e3; \r\n"
 
        );
 
  TIM4->SR1=0;
  }
 
void trrm()  {  if(tHerm==123) {  syf[2]=16; if((syy&0x1fff)<0xa00) { syf[1]=14; syf[0]=15; } else { syf[1]=16; syf[0]=16;  }  syf[5]=16; syf[4]=16; syf[3]=16;  } }
 
void waitt() {  IWDG->KR=0xaa;  __asm( " ld a,#200;  \r\n__buz: \r\n nop; \r\n nop; \r\n  dec a; \r\n jrne __buz \r\n" );  IWDG->KR=0xaa;    }
 
void epromwrt(uint16_t out,uint16_t dgr) {  out++; *((uint8_t*) out)=dgr&0xff; waitt(); out--; dgr/=256; *((uint8_t*) out)=dgr; waitt();  }
 
 ///Amaper offset
void ampofst() { if(Ampis<110) { Ampdgr=110-Ampis;  Ampdgr/=11; } else {  Ampdgr=8; }  Ampdgr+=Ampis; if(Ampdgr>990) Ampdgr=990; }
 
 
void Basla()
{
 Ayr_v=3; Ayr_a=0; Ayrhg=0; Ayrypy=0; tHerm=0; fsnon=0;  AyrDsgt=0;
 Ynsn=0; syy=0; fanpwm=0; fanpwmis=0;    fanpwm=160;
 Vtis=*((uint16_t*)0x4004);  if(Vtis==1234) { Vtis=*((uint16_t*)0x4000); Ampis=*((uint16_t*)0x4002); } else {  Vtis=151; Ampis=101; }
 Amp=Ampis; Vlt=Vtis; ampofst(); Vlto=1;  Pwm=0; vltyok=0;
 
 IWDG->KR=0xAA;
 sim();
  CLK->CKDIVR=0;
  GPIOB->DDR=0;
 
  GPIOB->ODR=0XC0; 
  GPIOB->DDR=0XC0;
  GPIOB->CR1=0xC0;
  GPIOB->CR2=0xC0;
 
  GPIOD->ODR=0Xff; 
  GPIOD->DDR=0Xff;
  GPIOD->CR1=0xff;
  GPIOD->CR2=0xff;
 
  GPIOC->ODR=0Xf0;
  GPIOC->DDR=0Xf0;
  GPIOC->CR1=0xf0;
  GPIOC->CR2=0xf0;
 
  GPIOE->ODR=0Xf0;
  GPIOE->DDR=0Xf0;
  GPIOE->CR1=0xf0;
  GPIOE->CR2=0xf0;
 
  GPIOF->DDR=0X00;  GPIOF->CR2=0x00; GPIOF->CR1=0x10;
 
  TIM1->CR1=1;
 TIM1->CR2=0;
 TIM1->SR2=2;
 
  TIM1->CCMR1=0x70; 
 TIM1->CCMR2=0x70;
 TIM1->CCMR3=0x70; 
 TIM1->CCER1=0x13;
 TIM1->CCER2=0x03;
 TIM1->PSCRH=0; TIM1->PSCRL=0;
 TIM1->ARRH=1; TIM1->ARRL=90; 
 
 TIM1->CCR1H=0; TIM1->CCR1L=0;
 TIM1->CCR2H=0; TIM1->CCR2L=0;
 TIM1->CCR3H=0; TIM1->CCR3L=0; 
 
 TIM1->BKR =0x80;
 
  ADC1->CSR=3;
  ADC1->CR1=0X43;
  ADC1->CR2=0X0A;
  ADC1->CR3=0X80; 
  ADC1->CR1|=1;
  ADC1->CR1|=1;
 
IWDG->KR=0xAA;
 
 
    GPIOA->DDR=0;
  GPIOA->CR1=0x0e;
  GPIOA->CR2=0x0e; 
 
  EXTI->CR1=0x01;
  EXTI->CR2=0x2; 
 
 
    TIM4->CR1=1;
 
    TIM4->IER=1;
      TIM4->SR1=0;
TIM4->PSCR=4;
  TIM4->ARR=60;
 
  IWDG->KR=0xcc;
  IWDG->KR=0x55;
  IWDG->PR=4;
  IWDG->RLR=0xff;
  IWDG->KR=0xaa;
 
  rim();
 
}
 
void flshwrt()
{
GPIOB->ODR=0X00;
GPIOD->ODR=0x00; 
GPIOC->ODR=0X00;
GPIOE->ODR=0x00;
TIM4->CR1=0;    IWDG->KR=0xaa;
TIM1->CR1=9;
TIM1->CCR1H=0; TIM1->CCR1L=0;  TIM1->CCR2H=0; TIM1->CCR2L=0; TIM1->CCR3H=0; TIM1->CCR3L=0;
 
 
 if(AyrDsgt) {
 FLASH->DUKR=0xae;
 FLASH->DUKR=0x56;    IWDG->KR=0xaa;
 while(!(FLASH->IAPSR&8));
 waitt();
 epromwrt(0x4000,Vtis);  epromwrt(0x4002,Ampis);  epromwrt(0x4004,1234);
 FLASH->IAPSR=0;
 FLASH->DUKR=0;   AyrDsgt=0; }
 uint16_t shh=0;
 while(shh<60000){  IWDG->KR=0xaa;  if(GPIOF->IDR&0x10)  shh++; else  shh=0;  }
 TIM4->CR1=1;  TIM1->CR1=1;
 

 
uint8_t ddt=0;
   
int main( void ){
    Basla();
   
  while(1)
  {
      IWDG->KR=0xaa;
 
      ddt++;  if(ddt>5) ddt=0;
     
      uint8_t aa=dgtc[ddt];
      if(Ynsn!=0) { Ynsn--;  if(Ynsn&0x800) {  if((Ynsn&0x3f)<45) {  if(Ayrhg)  { if(ddt>2) aa=0xff; } else {  if(ddt<3) aa=0xff;  } }  } }
      GPIOD->ODR=aa&1; GPIOC->ODR=aa&0xf0; 
      GPIOE->ODR=(aa&2)<<4;
     
      GPIOD->ODR|=dgt[syf[ddt]]; 
      if((ddt==1)||(ddt==5)) GPIOB->ODR|=0xC0; else GPIOB->ODR&=~0x80;
 
  for(uint32_t i=0;i<14;i++);
  GPIOD->ODR=0x1; GPIOC->ODR=0xff; GPIOE->ODR=0x20;
  for(uint32_t i=0;i<10;i++);   
 
  syy++;
  Amp*=15; Amp+=*((uint16_t*) &ADC1->DB0RH);  Amp/=16;
  if((syy&0xff)==0)  { 
  Vlt*=3; Vlt+=*((uint16_t*) &ADC1->DB1RH);  Vlt>>=2;
 
  if(GPIOF->IDR&0x10) vltyok=0; else vltyok++;
  if(vltyok>2) flshwrt();
       
  if((syy&0x3ff)==0) {
  if(Ayr_v!=3) { Ayr_v-=3;  if(Ayr_v>100) Ayr_v=3;  if(Ayr_v>40) Ayr_v=40;  }
  if(Ayr_a!=3) { Ayr_a-=3; if(Ayr_a>104) Ayr_a=1; if(Ayr_a>50) Ayr_a=50;  } }
 
  if(Ayrypy)  Ayrypy--;
  if((syy&0x7ff)==0) {  if((Ayrhg)||(!Ayrypy))  ito(Vlt/3,2);  if((syy&0xfff)==0) {  if((!Ayrhg)||(!Ayrypy))  ito(Amp,5);  }  trrm(); } 
 
  if((syy&0xfff)==0)  { 
    uint16_t pu=Amp/6;   
    if(pu<*((uint16_t*) &ADC1->DB2RH)) pu=*((uint16_t*) &ADC1->DB2RH); if(pu<*((uint16_t*) &ADC1->DB3RH)) { pu=*((uint16_t*) &ADC1->DB3RH);  }
    if(pu>650)  { if(tHerm!=123) { TIM4->CR1=0;  TIM1->CCR1H=0; TIM1->CCR1L=0; TIM1->CCR2H=0; TIM1->CCR2L=0; fanpwm=570; TIM1->CR1=9; fsnon=1; } tHerm=123; }
    if(pu<450)  { if(tHerm==123)  { TIM4->CR1=1;  tHerm=0; TIM1->CR1=1; }  } 
    pu-=250;  if(pu>1024) pu=0; 
    if((pu>60)&&(!fsnon)) { fanpwm=150; fsnon=1; }  if(fanpwm<pu)  { fanpwm+=2;  }  if(fanpwm>pu)  { fanpwm-=2;  }
    if(fanpwm>1024) fanpwm=0;  if(fanpwm<40)  {  TIM1->CCR3H=0; TIM1->CCR3L=0;  fsnon=0; } else { TIM1->CCR3H=(fanpwm>>8); TIM1->CCR3L=(fanpwm&0xff); } 
      }
 
  }
  if(Ayrypy) { if((syy&0x3f)==0) {    if(Ayrhg) ito(Ampis,5); else  ito(Vtis/3,2);  trrm();  ampofst(); } }
  }
  return 0;
}


Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: Erol YILMAZ - 26 Şubat 2024, 12:37:39
Süper bir proje,
Buna PCB tasarımı da lazım.
Böylece yapmak isteyen kişi aşırı emek harcamadan yapabilir.
Belki ybirkaç revizyon ile beraber...
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: Epsilon - 26 Şubat 2024, 12:50:06
Gerçekten güzel proje
Bobin ve trafolar hakkkında tel kalınlıkları sarım yönleri vb detaylar PCB için enazından yerleşim yerleride izah edilirse(Ne nereye yakın olmalı,hangi komponent uzakta olmalı gibi) eklenirse PCB yi hazırlamak isteyenlere faydası olur.
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: M.Salim GÜLLÜCE - 26 Şubat 2024, 14:48:10
Takdire şayan bir çaban war doğrusu.
Sana imerenmemek elde değil. :-*
El yapımı led display yaptığında da aynı şeyleri düşünmüştüm. ;)
Amatörlere ciddi bir kaynak teşkil ediyorsun.
Eğer vidyon biraz daha slow olsa daha harika olacaktı ::ok

Şema çizmeye de epey emek harcamışsın gibi.!!
Sanırım Paintte yapmışsın. Büyük uğraş.
En azından onu EDA programlarıyla yapsaydın daha az yorulurdun  8-)
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: devrecii - 26 Şubat 2024, 15:58:17
@Erol YILMAZ  Güç elektroniği+ kontrol öğrenmek isteyenler için gerçekten bulunmaz bir çalışma fakat yapalım güç kaynağımız olsun deniliyorsa, fazla efor gerek yok... Devreyi küçülteceğim  bir modul haline getirip uc,tl494, sg, tny , top ne varsa hepsini sürebilen çok basit bir lcd ekranlı modul haline getireceğim onun pcb sini yaparsak müthiş kullanışlı olur.

@Epsilon çizimde ufak bikaç hata da var şemayı değiştireceğim dediğin şeyleri de eklerim.

@M.Salim GÜLLÜCE  piyasada dolanan üç beş opamplı trafolu güç kaynağı devreleri var bunları yapıp kullananlar var ,
 baskılı devreyi yapıyorsun , plakete baskı yapıyorsun ,plaketi eritiyorsun deliyorsun, malzemeler lehimleniyor , kutusu ayarlanıyor, kablolar döşeniyor vsvs bunların her birini videoya çeksen bundan daha kısa süreli bir video çıkmaz. Bence  çaba, sabır olayını abartmıyor musunuz?

Sistem hakkında biraz bahsedeyim , çıkış gücü belli değerin altında ise DCM modda yani burst modda çalışıyor , güç yada pwm değeri belli değerden yüksek ise  CCM  pwm modunda çalışıyor, bu çok önemli bir bilgi eğer güç mosfet/igbt belli pwm değeri altında sürerseniz
gate bozuluyor ve patlıyor, ayrıca güç tasarrufu da sağlıyor , bu tüm güç devreleri için geçerli bunun için birsürü devre yapıyorlar ama elinizde mcu varsa bikaç kod ile tamam, mcu burada çok işe yarıyor.

Pid kontrolu var saniyede 20bin defa 60bin e kadar çıkarılabiliyor ekran titremeye başlıyor diğer şeylere zaman kalmadığı için, pid kontolunu bu nedenle asm de yazdım , stm8 de yapmak hata idi. Çıkışlar geyet güzel , fakat devre dizaynı ve  malzemelerin yerleri önemli , kutuya takınca çıkışta artık kaç mV bilmiyorum hışırtı sesi peydah oldu kullanıma engel değil.

Gatenin sürülme tekniği çok güzel , galiba dünyada ilk :D , gate + / - yönde sürüldüğü için çok güvenli , genelde +/0V olur ve basit.


Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: power20 - 26 Şubat 2024, 16:02:26
Efendim güç kaynağına bu kadar takmayınız. Lm317 li bir tane kaynak ile 30 sene idare eder ve emekli olabilirsiniz.

Bunun dışında akü şarjı vb ağır işler için güç kaynağı istihdam etmenize gerek yok. Gerektiği zaman ve gerektiği güçte sahip olunabilir.

Daha nitelikli katma değerli projelere odaklanınız. Güç kaynağı amaç değil araç olmalıdır. Güç kaynağı ticareti üretimi ve satışı yapılacaksa başka.





(pardon 30 değil, 29 sene olacak)
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: devrecii - 26 Şubat 2024, 16:22:48
@power20 gerçekten haklısın , ben hem youtube video olur hem de devre yapmayı özlediğim için  çok olsa bikaç günde yapar bitiririm diye düşündüm , mörfi kuralları var ya,  hiç bir zaman  tahmin ettiğiniz sürede bitmez diye , ha tam da bu başıma geldi ve devre istediğim gibi de sade olmadı ,  ama çok şey öğrendim yalan yok , eğitim her şey den önemlidir , ayrıca lm317 gerek yok şahane güç modulleri var çinden alınıp kullanılabilir.
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: M.Salim GÜLLÜCE - 26 Şubat 2024, 17:51:34
IGBT negatif deşarjla kapatılmayınca sakata gelir.
Fakat senin devrende IGBT yok.
Mamafih anahtarlama olayında mosfette de negatif deşarj torn of süresi üzerinde etkili olacağından anahtarlama kayıpları azalıur.
Ancan düşük PWM pulslerinde neden patladıklarına anlam veremedim.
Düşük gerilim miydi aceba kastınız.?

Birde hakkaten abartmıyorum.
Ciddi ciddi sabır gösterdiğiniz kanaatindeyim.

geçen gün uzay montaj bi çip testi yapayım dedim...
Sıkıldım..

Sanırım yaşlandığımdan olsa gerek.
Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: devrecii - 26 Şubat 2024, 18:46:21
Pwm çok düştüğünde gatedeki sinyal +10 voltu geçemiyor ve gate yarım sürülüyor galiba bu nedenle, gate  entegre ile bobinsiz sürülse de aynı sorun var , çünkü nS sürede gate +10v  ulaşması çok zor. Fakat  çıkışta yük yokken bile neden bozulduğunu ben de anlamadım. Hemen bozulmuyor saatlerce böyle sürülmesi durumunda oluyor gate yavaş yavaş bozuşmaya başlıyor ??

Başlık: Ynt: Full mcu kotrollü smps güç kaynağı
Gönderen: Erol YILMAZ - 26 Şubat 2024, 19:30:10
Kodu biraz düzenlemeye çalıştım :)

#include "stm8s.h"

static
const uint8_t dgt[] = {
  0xee,  0x24,  0xd6,  0xb6,  0x3c,  0xba,
  0xfa,  0x26,  0xfe,  0xbe,  0xf0,  0xf8,
  0xd0,  0xf4,  0x1f,  0xca,  0x0,   0x0
};
static
const uint8_t dgtc[] = {
  0xf2,  0xb3,  0xe3,  0x73,  0xd3,  0xf1,  0xf3
};

uint8_t syf[] = {
  1,  2,  3,  4,  5,  6
};

uint8_t Ayr_v, Ayr_a, Ayrhg, Ayrypy, tHerm, fsnon, vltyok;
uint16_t Vtis, Ampis, Ynsn, syy, fanpwm, fanpwmis;
uint16_t Amp, Vlt, Vlto, Pwm;
const uint16_t _ssd = 2760;
const uint8_t _sxv = 10;

void ito(uint16_t sy, uint8_t bs) {
  bs -= 2;
  for (uint8_t j = 0; j < 3; j++) {
    syf[bs] = sy % 10;
    sy /= 10;
    bs++;
  }
  bs--;
  if ((syf[bs] == 0) && (bs < 3) && (sy < 1)) syf[bs] = 16;
}

void flshwrt();
INTERRUPT_HANDLER(EXTI_PrtAIRQHandler, 3) {

  if ((GPIOA -> IDR & 6) == 2) {
    Ayrypy = 30;
    if (!Ayrhg) {
      Vtis += Ayr_v;
      Ayr_v += 3;
      if (Vtis > 1021) Vtis = 1021;
      Vtis -= Vtis % 3;
      Vtis += 2;
    } else {
      Ampis += Ayr_a;
      Ayr_a += 3;
      if (Ampis > 998) Ampis = 998;
    }
    return;
  }
  if ((GPIOA -> IDR & 6) == 4) {
    Ayrypy = 30;
    if (!Ayrhg) {
      Vtis -= Ayr_v;
      Ayr_v += 3;
      if (Vtis > 1030) Vtis = 0;
      Vtis -= Vtis % 3;
      Vtis++;
    } else {
      Ampis -= Ayr_a;
      Ayr_a += 3;
      if (Ampis > 1000) Ampis = 0;
    }
    return;
  }
  if ((GPIOA -> IDR & 8) == 0) {
    Ayrhg ^= 1;
    Ynsn = 15000;
  }

}

INTERRUPT_HANDLER(EXTI_TimIRQHandler, 23) {

  __asm("__buz: \r\n"
    "ldw x,Ampis; \r\n"
    "subw x,$53e0; \r\n"
    "jrult __fq; \r\n"
    "ldw x,Vtis; \r\n"
    "subw x,$53e2; \r\n"
    "jreq __sddf; \r\n"
    "__fq: \r\n"
    "ldw y,Vlto; \r\n"
    "subw y,$53e2; \r\n"
    "sraw y; \r\n"
    "addw y,Pwm; \r\n"
    "ldw Pwm,y; \r\n"
    "addw x,Pwm; \r\n"
    "tnzw x;\r\n "
    "jrpl __kj; \r\n"
    "clrw x;\r\n"
    "__kj: \r\n"
    "cpw x,_ssd \r\n"
    "jrule __sk \r\n"
    "ldw x,_ssd \r\n"
    "__sk:\r\n"
    "ldw Pwm,x \r\n"
    "ld a,4; \r\n"
    "sraw x; \r\n"
    "sraw x; \r\n"
    "sraw x; \r\n"
    "sraw x; \r\n"
    "ld a,xl; \r\n"
    "cp a,_sxv;\r\n"
    "jruge __sux; \r\n"
    "clr a; \r\n"
    "__sux: \r\n"
    "ld $5266,a;\r\n"
    "ld $5268,a;\r\n"
    "__sddf:\r\n"
    "mov Vlto,$53e2; \r\n"
    "mov Vlto+1,$53e3; \r\n"

  );

  TIM4 -> SR1 = 0;

}

void trrm() {
  if (tHerm == 123) {
    syf[2] = 16;
    if ((syy & 0x1fff) < 0xa00) {
      syf[1] = 14;
      syf[0] = 15;
    } else {
      syf[1] = 16;
      syf[0] = 16;
    }
    syf[5] = 16;
    syf[4] = 16;
    syf[3] = 16;
  }
}

void waitt() {
  IWDG -> KR = 0xaa;
  __asm(" ld a,#200;  \r\n__buz: \r\n nop; \r\n nop; \r\n  dec a; \r\n jrne __buz \r\n");
  IWDG -> KR = 0xaa;
}

void epromwrt(uint16_t out, uint16_t dgr) {
  out++;*((uint8_t * ) out) = dgr & 0xff;
  waitt();
  out--;
  dgr /= 256;*((uint8_t * ) out) = dgr;
  waitt();
}

void dodo() {
  Ayr_v = 3;
  Ayr_a = 0;
  Ayrhg = 1;
  Ayrypy = 0;
  tHerm = 0;
  fsnon = 0;
  Ynsn = 0;
  syy = 0;
  fanpwm = 0;
  fanpwmis = 0;
  Vtis = * ((uint16_t * ) 0x4004);
  if (Vtis == 1234) {
    Vtis = * ((uint16_t * ) 0x4000);
    Ampis = * ((uint16_t * ) 0x4002);
  } else {
    Vtis = 151;
    Ampis = 101;
  }
  Amp = Ampis;
  Vlt = Vtis;
  Vlto = 1;
  Pwm = 0;
  vltyok = 0;

  IWDG -> KR = 0xAA;
  sim();
  CLK -> CKDIVR = 0;
  GPIOB -> DDR = 0;

  GPIOB -> ODR = 0XC0;
  GPIOB -> DDR = 0XC0;
  GPIOB -> CR1 = 0xC0;
  GPIOB -> CR2 = 0xC0;

  GPIOD -> ODR = 0Xff;
  GPIOD -> DDR = 0Xff;
  GPIOD -> CR1 = 0xff;
  GPIOD -> CR2 = 0xff;

  GPIOC -> ODR = 0Xf0;
  GPIOC -> DDR = 0Xf0;
  GPIOC -> CR1 = 0xf0;
  GPIOC -> CR2 = 0xf0;

  GPIOE -> ODR = 0Xf0;
  GPIOE -> DDR = 0Xf0;
  GPIOE -> CR1 = 0xf0;
  GPIOE -> CR2 = 0xf0;

  GPIOF -> DDR = 0X00;
  GPIOF -> CR2 = 0x00;
  GPIOF -> CR1 = 0x10;

  TIM1 -> CR1 = 1;
  TIM1 -> CR2 = 0;
  TIM1 -> SR2 = 2;

  TIM1 -> CCMR1 = 0x70;
  TIM1 -> CCMR2 = 0x70;
  TIM1 -> CCMR3 = 0x70;
  TIM1 -> CCER1 = 0x13;
  TIM1 -> CCER2 = 0x03;
  TIM1 -> PSCRH = 0;
  TIM1 -> PSCRL = 0;
  TIM1 -> ARRH = 1;
  TIM1 -> ARRL = 90;

  TIM1 -> CCR1H = 0;
  TIM1 -> CCR1L = 0;
  TIM1 -> CCR2H = 0;
  TIM1 -> CCR2L = 0;
  TIM1 -> CCR3H = 0;
  TIM1 -> CCR3L = 0;

  TIM1 -> BKR = 0x80;

  ADC1 -> CSR = 3;
  ADC1 -> CR1 = 0X43;
  ADC1 -> CR2 = 0X0A;
  ADC1 -> CR3 = 0X80;
  ADC1 -> CR1 |= 1;
  ADC1 -> CR1 |= 1;

  IWDG -> KR = 0xAA;

  GPIOA -> DDR = 0;
  GPIOA -> CR1 = 0x0e;
  GPIOA -> CR2 = 0x0e;

  EXTI -> CR1 = 0x02;
  EXTI -> CR2 = 0x2;

  TIM4 -> CR1 = 1;

  TIM4 -> IER = 1;
  TIM4 -> SR1 = 0;
  TIM4 -> PSCR = 4;
  TIM4 -> ARR = 60;

  IWDG -> KR = 0xcc;
  IWDG -> KR = 0x55;
  IWDG -> PR = 4;
  IWDG -> RLR = 0xff;
  IWDG -> KR = 0xaa;

  rim();

}

void flshwrt() {
  GPIOB -> ODR = 0X00;
  GPIOD -> ODR = 0x00;
  GPIOC -> ODR = 0X00;
  GPIOE -> ODR = 0x00;
  TIM4 -> CR1 = 0;
  IWDG -> KR = 0xaa;
  TIM1 -> CR1 = 9;
  TIM1 -> CCR1H = 0;
  TIM1 -> CCR1L = 0;
  TIM1 -> CCR2H = 0;
  TIM1 -> CCR2L = 0;
  TIM1 -> CCR3H = 0;
  TIM1 -> CCR3L = 0;

  FLASH -> DUKR = 0xae;
  FLASH -> DUKR = 0x56;
  IWDG -> KR = 0xaa;
  while (!(FLASH -> IAPSR & 8));
  waitt();
  epromwrt(0x4000, Vtis);
  epromwrt(0x4002, Ampis);
  epromwrt(0x4004, 1234);
  FLASH -> IAPSR = 0;
  FLASH -> DUKR = 0;
  uint16_t shh = 0;
  while (shh < 60000) {
    IWDG -> KR = 0xaa;
    if (GPIOF -> IDR & 0x10) shh++;
    else shh = 0;
  }
  TIM4 -> CR1 = 1;
  TIM1 -> CR1 = 1;

}

uint8_t ddt = 0;

int main(void) {

  dodo();

  while (1) {

    IWDG -> KR = 0xaa;

    ddt++;
    if (ddt > 5) ddt = 0;

    uint8_t aa = dgtc[ddt];
    if (Ynsn != 0) {
      Ynsn--;
      if (Ynsn & 0x800) {
        if ((Ynsn & 0x3f) < 45) {
          if (Ayrhg) {
            if (ddt > 2) aa = 0xff;
          } else {
            if (ddt < 3) aa = 0xff;
          }
        }
      }
    }
    GPIOD -> ODR = aa & 1;
    GPIOC -> ODR = aa & 0xf0;
    GPIOE -> ODR = (aa & 2) << 4;

    GPIOD -> ODR |= dgt[syf[ddt]];
    if ((ddt == 1) || (ddt == 5)) GPIOB -> ODR |= 0xC0;
    else GPIOB -> ODR &= ~0x80;

    for (uint32_t i = 0; i < 15; i++);
    GPIOD -> ODR = 0x1;
    GPIOC -> ODR = 0xff;
    GPIOE -> ODR = 0x20;
    for (uint32_t i = 0; i < 20; i++);

    syy++;
    Amp *= 15;
    Amp += * ((uint16_t * ) & ADC1 -> DB0RH);
    Amp /= 16;
    if ((syy & 0xff) == 0) {
      Vlt *= 3;
      Vlt += * ((uint16_t * ) & ADC1 -> DB1RH);
      Vlt >>= 2;

      if (GPIOF -> IDR & 0x10) vltyok = 0;
      else vltyok++;
      if (vltyok > 2) flshwrt();

      if (Ayr_v != 3) {
        Ayr_v -= 3;
        if (Ayr_v > 100) Ayr_v = 3;
        if (Ayr_v > 40) Ayr_v = 40;
      }
      if (Ayr_a != 3) {
        Ayr_a -= 3;
        if (Ayr_a > 104) Ayr_a = 1;
        if (Ayr_a > 50) Ayr_a = 50;
      }

      if (Ayrypy) {
        Ayrypy--;
      } else {
        if ((syy & 0x7ff) == 0) {
          ito(Vlt / 3, 2);
          if ((syy & 0xfff) == 0) ito(Amp, 5);
          trrm();
        }
      }

      if ((syy & 0xfff) == 0) {
        uint16_t pu = Amp / 6;
        if (pu < * ((uint16_t * ) & ADC1 -> DB2RH)) pu = * ((uint16_t * ) & ADC1 -> DB2RH);
        if (pu < * ((uint16_t * ) & ADC1 -> DB3RH)) {
          pu = * ((uint16_t * ) & ADC1 -> DB3RH);
        }
        if (pu > 650) {
          if (tHerm != 123) {
            TIM4 -> CR1 = 0;
            TIM1 -> CCR1H = 0;
            TIM1 -> CCR1L = 0;
            TIM1 -> CCR2H = 0;
            TIM1 -> CCR2L = 0;
            fanpwm = 570;
            TIM1 -> CR1 = 9;
            fsnon = 1;
          }
          tHerm = 123;
        }
        if (pu < 450) {
          if (tHerm == 123) {
            TIM4 -> CR1 = 1;
            tHerm = 0;
            TIM1 -> CR1 = 1;
          }
        }
        pu -= 250;
        if (pu > 1024) pu = 0;
        if ((pu > 60) && (!fsnon)) {
          fanpwm = 150;
          fsnon = 1;
        }
        if (fanpwm < pu) {
          fanpwm += 3;
        }
        if (fanpwm > pu) {
          fanpwm -= 3;
        }
        if (fanpwm > 1024) fanpwm = 0;
        if (fanpwm < 40) {
          TIM1 -> CCR3H = 0;
          TIM1 -> CCR3L = 0;
          fsnon = 0;
        } else {
          TIM1 -> CCR3H = (fanpwm >> 8);
          TIM1 -> CCR3L = (fanpwm & 0xff);
        }
      }

    }
    if (Ayrypy) {
      if ((syy & 0x3f) == 0) {
        if (Ayrhg) ito(Ampis, 5);
        else ito(Vtis / 3, 2);
        trrm();
      }
    }

  }

  return 0;
}
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 26 Şubat 2024, 19:44:53
Bu konularda hiç bilgim olmadığından;
Bir arkadaş ,kodları bu MCU ya atmak için hangi programlayıcıyı ve satın almam gereken MCU nun linkini ekleyebilirmi ?
Bu kodlar hangi dile ait?
Bu kaynak kodu derleyebilen programın adı ve linkinide ekleyebilirmi?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 26 Şubat 2024, 22:50:09
Stlink usb var o yeterli oluyor mcu yazmak için,  kod c dili ile , derleyip hex dosyasını da ekleyeyim  , stm8 iar ile derledim.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 27 Şubat 2024, 11:43:39
Alıntı yapılan: devrecii - 26 Şubat 2024, 22:50:09Stlink usb var o yeterli oluyor mcu yazmak için
Bu linkteki ürünü satın aldığımda -cihaz sorunsuzsa- sitesinden indirilen yazılımla hex i yükleyebilirmiyim?
(https://i.ibb.co/zrDj40Y/c-haz.png) (https://ibb.co/zrDj40Y)

Linki (https://www.motorobit.com/st-link-v2-mini-programlayici-metal-kasa)

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 27 Şubat 2024, 17:48:02
Evet  , 

flash dosyası

https://drive.google.com/file/d/1rkyOGUuT_33WZbCm04Znv4SUTKnGptsK/view
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 27 Şubat 2024, 18:37:47
Teşekkürler.Bu arada PCB tasarlanırken MCU nun hangi pinlerinden yükleme yapılacaksa o pinleride belirtmekte gerekecek.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 27 Şubat 2024, 20:36:19
Reset pini resete  , Swim pini ise Pd1 'e yani "a" yazan yere.

Ayrıca reset pinine 4.7k direnç ile pull up yapmak ve gnd ye 100nf koymak gerekiyor , şemada çizmeyi unutmuşum .

Bunun pcbsini çizmek  zor olmayacak mı ? Hangi programda çiziyorsun ? Bana piskopat diyorlar ama bunu otomatik çizen bir program yoksa ben bile uğraşamam sıkılırım.

Devreyi küçültüp basitleştireceğim  istersen yeni devrenin pcbsini çiz, bunu uzay montaj yapabilirsin.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 27 Şubat 2024, 21:17:16
Sprint Layout ile çizebilirim.Çok basit bir program paint brush ile çizdiğinizden çok daha kolay çizebilirsiniz.
 Çizimdeki düzeltmeler tamamlanıp devredeki harf ve rakamların detaylarınıda izah ederseniz pcb yi tamamlarım
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: triyak - 27 Şubat 2024, 21:29:26
Ne gibi değişiklikler yapacaksınız acaba, kafanızda netleştirdiniz mi yoksa adım adım mı sadeleştireceksiniz?

Alıntı yapılan: devrecii - 27 Şubat 2024, 20:36:19Reset pini resete  , Swim pini ise Pd1 'e yani "a" yazan yere.

Ayrıca reset pinine 4.7k direnç ile pull up yapmak ve gnd ye 100nf koymak gerekiyor , şemada çizmeyi unutmuşum .

Bunun pcbsini çizmek  zor olmayacak mı ? Hangi programda çiziyorsun ? Bana piskopat diyorlar ama bunu otomatik çizen bir program yoksa ben bile uğraşamam sıkılırım.

Devreyi küçültüp basitleştireceğim  istersen yeni devrenin pcbsini çiz, bunu uzay montaj yapabilirsin.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 27 Şubat 2024, 22:37:01
Tamamen smps den bağımsız olacak sadece bir opto çıkışı olacak bu da smpsye bağlanacak ,bütün smps topolojilerini sürebilecek , ayrı ayı kolayca yapılacak bu devrede tüm sistem birbiriyle bağlantılı oldu için hata kabul etmiyor .

@Epsilon onlar 7 segment led çıkışları. 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: triyak - 28 Şubat 2024, 01:50:16
videoda gate trafosunu, scopla kontrol ederek sarıyorsunuz. Bu işlemi anlatabilir misiniz acaba? Tasarım yapmak yerine deneme yanılma ile daha hızlı çözdünüz sanırım. scopta nasıl bir sinyal görene kadar sardınız?

gate, akım, çıkış trafosu sarımının incelikleri, püf noktaları nedir? Hesaplaması hakkında bilgi yada kaynak paylaşmanız mümkün mü?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: mustafa_cmbz - 28 Şubat 2024, 08:34:41
Display yerine Birtane güzel bir tft yada o oled gibi bir ekran ilave yapsanız daha şık durmazmıydı?

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 28 Şubat 2024, 09:38:25
Direkt monitöre bağlansın 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 28 Şubat 2024, 15:01:49
Alıntı yapılan: Epsilon - 26 Şubat 2024, 19:44:53Bu konularda hiç bilgim olmadığından...
Bu kaynak kodu derleyebilen programın adı ve linkinide ekleyebilirmi?

Sadece kullanım amacıyla yapacaksanız bence stabil bir ürün tercih ediniz. Arkadaş ar-ge yapmış bilgi edinmiş.  Stabilite konusunda bir iddiası olmayabilir.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: triyak - 28 Şubat 2024, 15:34:27
PF4-12V algılamayı ne amaçla yaptınız acaba?

iki adet ptc kullanmışsınız, nerelere yerleştirdiniz?

PB6 ne amaçla kullanılıyor, opampın + ucuna bağlantı yapılmış ama tam anlamadım bunu amacını. o 100k yı direk 3v3 yada 12volta bağlasak nasıl olur?

gate trafosunu süren iki mosfet anahtarlanırken arada bir süre var mı? mesela üstteki fetin geytini tersleyip alttakine versek olur mu?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 28 Şubat 2024, 17:00:16
PF4-12V algılama şunun için  12v girişindeki voltaj 8v altına inerse pwmi kesiyor igbt gateini korumak için , zaten tüm güç entegrelerinde bu özellik vardır  ve şunu yapıyor çıkışlardaki tüm display ledleri vs kapatıyor yazılım, , bu sayede kapasitede kalan son akım ile kullanıcının ayarladığı  amper volt bilgisini flasha kaydediyor.

İki ptc kullandım çünkü sorun sadece igbt nin ısınması değil yüksek akımda uzun süre sonunda ferrit trafo da ısınıyor ferrit trafonun çok ısınması verebleceği max watt azaltır ve induktans düşer , zaten igbt yanında küçük bobin var bu durum için yine igbtyi aşırı akımdan koruyor.

Pb6 çıkışı volt amp yazan ledleri besliyor hemde opamp ofsett değeri eğer düşükse yukarı çekiyor , yazdığım gibi eğer
flahsa veri kayedeliecekse kapasitördeki son voltajım boşa tüketilmemesini sağlıyor ki cpu kaydedebilsin son verileri


gate trafosunu süren iki mosfet anahtarlanırken arada bir süre var mı?  süre yok gerek de yok , biribirleri çıkışarıyla tam olarak çarpışmıyorlar, diyotlu olan mosfet gate ferritindeki manyetizmayı zıt yöne çeviriyor. Evet birbirinin inversi mcu çıkışları.




28 Şubat 2024, 17:02:17
Alıntı yapılan: wanted0035 - 28 Şubat 2024, 01:50:16videoda gate trafosunu, scopla kontrol ederek sarıyorsunuz. Bu işlemi anlatabilir misiniz acaba? Tasarım yapmak yerine deneme yanılma ile daha hızlı çözdünüz sanırım. scopta nasıl bir sinyal görene kadar sardınız?

gate, akım, çıkış trafosu sarımının incelikleri, püf noktaları nedir? Hesaplaması hakkında bilgi yada kaynak paylaşmanız mümkün mü?

Aslında pwm frekansı ve giriş voltajı biliniyorsa induksiyon hesabı yapmak çok kolay ama ferrtin özelliklerini kaç sarımın kaç henry ettiğini bilmediğim için osiloskoptan bakarak yaptım
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 28 Şubat 2024, 17:06:41
Yazılımda bikaç bug buldum kullanıma engel değil mesela volt ayarı yaparken amperi ölçüleni değil istenileni ekranda gösteriyor bir de enkoderde küçük bir kod unutmuşum kullanıma engel değil.

Şu an oled ekranlı yapımı çok daha kolay bir güç kaynağı yapıyorum stm32 bulepill ile.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: triyak - 28 Şubat 2024, 17:18:49
Teşekkür ederim cevabınız için. Yeni projenin güç olarak bundan çok bir farkı olur mu?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 28 Şubat 2024, 17:34:33
Alıntı yapılan: devrecii - 28 Şubat 2024, 17:06:41Şu an oled ekranlı yapımı çok daha kolay bir güç kaynağı yapıyorum stm32 bulepill ile.
Umarım şema çiziminde'de STM32 gibi modern program kullanıyorsunuzdur. :)
Cevaplar için bende teşekkür ederim.
Gate trafosunu sararken skopla test ederek sarmanızın mantığını bende anlamadım.
Orada nasıl bir sinyal görünce sarımın yeterli olduğunu anladınız?

28 Şubat 2024, 17:37:51
Alıntı yapılan: power20 - 28 Şubat 2024, 15:01:49Sadece kullanım amacıyla yapacaksanız bence stabil bir ürün tercih ediniz. Arkadaş ar-ge yapmış bilgi edinmiş.  Stabilite konusunda bir iddiası olmayabilir.
Sorun değil amaç öğrenmek.Zaten atölyemde güç kaynağım var
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 28 Şubat 2024, 17:56:12
Alıntı yapılan: wanted0035 - 28 Şubat 2024, 17:18:49Teşekkür ederim cevabınız için. Yeni projenin güç olarak bundan çok bir farkı olur mu?

Bu projede de güç çok artırılabilir , mesela o minik mosfetler ve gdt trafosu rahatlıkla 4-5 igbtyi sürebilir , direnç değerleri ile oynamak gerekiyor , güç çok artırıldığı zaman emmiler de çok artacak , bu nedenle işlemci ve  opmap tv tunerlerindeki gibi metal bir kutunun içine konulursa ve adc girişleri de iyi filitre edilirse hiç problem olmaz .

Alıntı yapılan: power20 - 28 Şubat 2024, 15:01:49Sadece kullanım amacıyla yapacaksanız bence stabil bir ürün tercih ediniz. Arkadaş ar-ge yapmış bilgi edinmiş.  Stabilite konusunda bir iddiası olmayabilir.

Evet doğru, ama çıkışında regülatör olmayan bir ac adaptörden çok daha iyidir , birçok işte kullanılabilir.
Stm8 hataydı çünkü adc çözünürlüğü 10bit   herşey yolunda olsa bile  30V/1024=0.03v çıkışta gürültü var 30mv baya bir gürültü demek tabi emiler hariç.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 28 Şubat 2024, 18:07:09
Alıntı yapılan: Epsilon - 28 Şubat 2024, 17:34:33Umarım şema çiziminde'de STM32 gibi modern program kullanıyorsunuzdur. :)
Cevaplar için bende teşekkür ederim.
Gate trafosunu sararken skopla test ederek sarmanızın mantığını bende anlamadım.
Orada nasıl bir sinyal görünce sarımın yeterli olduğunu anladınız?

28 Şubat 2024, 17:37:51Sorun değil amaç öğrenmek.Zaten atölyemde güç kaynağım var

Tüm ferritle ilgili sistemlerde uygulamabilir , pwm frekansı %49 getirilir sarım yapılır osiloskpda sinyaller pwm sinyalinden küçük kalır iğne görümünde olursa az sarıım yapılmış, eğer çok fazla sarılmış ise inişler ve çıkışlar çok yavaş olur , uygun sarılmışsa tam kare dalga olur

https://youtu.be/4PxVlPPn2pE?t=136  buradan bakabilirsin
 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 28 Şubat 2024, 18:37:10
Alıntı yapılan: devrecii - 28 Şubat 2024, 18:07:09Tüm ferritle ilgili sistemlerde uygulamabilir , pwm frekansı %49 getirilir sarım yapılır osiloskpda sinyaller pwm sinyalinden küçük kalır iğne görümünde olursa az sarıım yapılmış, eğer çok fazla sarılmış ise inişler ve çıkışlar çok yavaş olur , uygun sarılmışsa tam kare dalga olur

Mükemmel bilgi.
O halde bir yerden sökülmüş bir gate trafosunu arbitrary waveform generatore bağlayıp şu frekanstan şu frekansa kadar üret dediğimde, skopta çıkışını izlediğimde kare dalgaya en yakın olan frekansın yaklaşık 2 katı bu trafonun çalışma frekansı oluyor öyle değilmi?

Bu ERL 35 ve türevleri içinde mi geçerlidir?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 28 Şubat 2024, 19:04:20
BLOK DİYAGRAM üç aşağı 5 yukarı böyle heralde...

Güncellemeler:
- Rotary Encoder + 2x buffer ekledim.
- Primer tarafında akım feedback varmış, ekledim.

(https://i.ibb.co/X4LRqYh/third-BLOK-Diagram.jpg)

Feedback alınan sinyaller için TO süresini küçültüp bir buffer'dan geçirip ADC ye vermek daha iyi olmaz mı?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 28 Şubat 2024, 20:41:18
Alıntı yapılan: Erol YILMAZ - 28 Şubat 2024, 19:04:20BLOK DİYAGRAM üç aşağı 5 yukarı böyle heralde...

(https://i.ibb.co/tbVL4dg/blok-diyagram.jpg) (https://ibb.co/cN4Y1m0)

Feedback alınan sinyaller için TO süresini küçültüp bir buffer'dan geçirip ADC ye vermek daha iyi olmaz mı?

Adc girişi filtre konusunda arge yapılması çok iyi olur daha sonra buna mutlaka bakmalıyız, çünkü emiden etkileniyor yazık ki lm358 bile etkileniyor özellikle çok yük çekerken.

Gndsi güzel tasarımlanmış pcb veya mcu + lm358  metal bir kutuya koymak çok faydalı olur mesela benim dıy osiloskop kesinlikle piklerden etkilemiyor dışı metal olduğu için. Eğer bu konular halledilirse bu güç kaynağının çıkışları çok temiz. Adc ne okuyor diye mcuyu oslokopa cevireceğim hem güç kaynağı olacak hemde adc değerlerini ekrana çizdirecek bu şart , girişleri ölçmek yetmez çünkü mcu nun kendisi de emiden etkileniyor , ona göre ayarlama yapılmalı . Mcu kilitlerniyor mu diye ayrıca kontrol edecem keşke wachdog koymasaydım.


Alıntı yapılan: Epsilon - 28 Şubat 2024, 18:37:10Mükemmel bilgi.
O halde bir yerden sökülmüş bir gate trafosunu arbitrary waveform generatore bağlayıp şu frekanstan şu frekansa kadar üret dediğimde, skopta çıkışını izlediğimde kare dalgaya en yakın olan frekansın yaklaşık 2 katı bu trafonun çalışma frekansı oluyor öyle değilmi?

Bu ERL 35 ve türevleri içinde mi geçerlidir?


Her ferrit yada topoloji için kullanılabilir , aslında şöyle pwm max süresince kare dalga düşmeyecek , eğer sarım az ise pwm süresinin sonuna gelmeden dalga mecburen aşağı düşmeye başlar çünkü ferrit doymuştur ama tam sınırda olmaması lazım daha fazla sarım yapmak daha güvenlidir, ferriti tam doyurmamak için , ferrit doyarsa moslara yük biner.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: fay_elektronik - 28 Şubat 2024, 21:12:44
elinize emeğinize sağlık çok güzel olmuş
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: fide - 28 Şubat 2024, 23:47:13
Ben de bir öneri isteyeyim.
Dac ile akım kontrolü yapmak için nasıl bir kurulum önerirsin?
Atıyorum bir LED dizisi üzerinden dac'ye verdiğim değere göre 100mA ile 1000mA geçsin istiyorum. Switching bir yapıda dac ile anahtarlama devresini nasıl kurarsın?
Lm2576 yada benzeri bir çipi dac ile nasıl akım kontrollü hale getiririm?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 29 Şubat 2024, 00:21:29
Bu şekilde yapabilirsin eğer şönt kullanmak istemiyorsan buck bobinine ikinci sarım yapıp doğrultup güzelce filtre edersen oradan da amper bilgisi alınabilir diye tahmin ediyorum ama lineer mi olur emin değilim.

(https://i.ibb.co/NrtpZZ7/untitled.jpg)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 29 Şubat 2024, 00:53:36
Alıntı yapılan: fide - 28 Şubat 2024, 23:47:13Ben de bir öneri isteyeyim.
Dac ile akım kontrolü yapmak için nasıl bir kurulum önerirsin?
Atıyorum bir LED dizisi üzerinden dac'ye verdiğim değere göre 100mA ile 1000mA geçsin istiyorum. Switching bir yapıda dac ile anahtarlama devresini nasıl kurarsın?
Lm2576 yada benzeri bir çipi dac ile nasıl akım kontrollü hale getiririm?
@fide
Yukarıda @devrecii nin çizdiği devre gibi detaylarıni anlatan akım kontrol devresi bu youtube videosunda izah ediliyor(Videonun ortalarından itibaren)
( Bu tür bir yazı yıllar önce ,elektor dergisinde de izah edilmişti diye hatırlıyorum ,yanılmıyorsam orada 2596 ya bu özellik ekleniyordu)
Web sitesindeki detayı (https://www.smbaker.com/lm2576-constant-voltage-constant-current-switching-power-supply)

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: mustafa_cmbz - 01 Mart 2024, 21:51:29
Alıntı yapılan: power20 - 28 Şubat 2024, 09:38:25Direkt monitöre bağlansın

bana mı söylüyorsun ?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 01 Mart 2024, 22:22:30
Şahsınıza hitaben söylemedim. Fikirdir.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 01 Mart 2024, 22:28:19
OPto çıkışlı bir güç kaynağı yapacağım her topolojiyi süreceğiz diye yazmıştım , stm32f103 ile denedim çalışıyor ve çok basit fakat ne yazık ki çıkış gürültülü  , proje yattı.


(https://i.ibb.co/mFhndHQ/untitled.jpg)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 01 Mart 2024, 23:19:16
Vardır bu işin de bi püf noktası :)
Olmuyor demeyelim ☺️
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 02 Mart 2024, 11:46:07
Hocam şöyle düşünelim

Mesela Pwm %40.2 olduğu zaman çıkıştaki  voltaj/amper isteği karşılanmış oluyor.

Ama işlemci pwm çözünürlüğü  %40.2 veremiyor %40 ile %41 olabiliyor,

%40 ile %41 arasında gitgeller  çıkışta gürültüye neden oluyor. Sadece adc okuma değil sorun.

Mesela bu başlıktaki devrede bunu görebiliyorum bir değerde çıkış çok gürültüsüz iken bazı değerlerde gürültü
oluştuyuor işte bu gürültü oluşturan değeri kodun çözüp sabit değerleri bulması lazım.

Mesela çıkışta 3.3v isteniyorsa 3.25 volta çıkış verebiliyor olması gerekiyor ki gürültü olmasın gibi.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 02 Mart 2024, 12:40:26
Acaba UC384X (Muhtemelen UC3845) gibi bir chip eklenerek bu iş denense ,olmazmı acaba?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Mr.Thinking - 02 Mart 2024, 15:03:51
İşlemcinizde bölücü olayı yok mu. Yüzde olarak değilde duty oranı olarak kullanamıyor musunuz.
Örneğin; %100 pwm de max duty 1024 olsa ve bunu 0 volt ile max gerilim çıkışı arasında paylaştırsanız.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Mucit23 - 02 Mart 2024, 15:05:25
PWM Frekansı nedir?

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 02 Mart 2024, 15:11:00
Alıntı yapılan: devrecii - 02 Mart 2024, 11:46:07%40 ile %41 arasında gitgeller  çıkışta gürültüye neden oluyor. Sadece adc okuma değil sorun.
 
ADC ile okunan değeri biraz sağırlaştırsak devre çıkışın hala düzgün olduğunu kabul ederek çalışmaya devam etse nasıl olur? Bu durumda örneğin 12.2 volt gerekliyken aslında 12V verecek ve orada stabil olarak kalacaktır.  Bence sorun sadece geri beslemeyi yorumlamak suretiyle çözülebilir. İstenen değeri tam olarak vermez fakat yaklaşık stabil bir değeri sağlayabilir 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 02 Mart 2024, 15:31:41
Alıntı yapılan: Epsilon - 02 Mart 2024, 12:40:26Acaba UC384X (Muhtemelen UC3845) gibi bir chip eklenerek bu iş denense ,olmazmı acaba?

spi  DAC çıkışı pwm kontrolcusune gönderilir sorunsuz olur ama biz burada yeni bişeyler deniyoruz :D

Alıntı yapılan: Mucit23 - 02 Mart 2024, 15:05:25PWM Frekansı nedir?

45khz

Alıntı yapılan: Mr.Thinking - 02 Mart 2024, 15:03:51İşlemcinizde bölücü olayı yok mu. Yüzde olarak değilde duty oranı olarak kullanamıyor musunuz.
Örneğin; %100 pwm de max duty 1024 olsa ve bunu 0 volt ile max gerilim çıkışı arasında paylaştırsanız.


Var 45khz için 0 ile 170 arası değer alabiliyor. Daha yüksek çözünürlük mumkün değil frekansın düşmesi gerekir.

Alıntı yapılan: power20 - 02 Mart 2024, 15:11:00ADC ile okunan değeri biraz sağırlaştırsak devre çıkışın hala düzgün olduğunu kabul ederek çalışmaya devam etse nasıl olur? Bu durumda örneğin 12.2 volt gerekliyken aslında 12V verecek ve orada stabil olarak kalacaktır.  Bence sorun sadece geri beslemeyi yorumlamak suretiyle çözülebilir. İstenen değeri tam olarak vermez fakat yaklaşık stabil bir değeri sağlayabilir

3.3v 1A yükümüz var ve pwm %10 da çıkışta hiç gütültü yok çalışıyor ama yük birden bile 1.1A çekmeye başladı  bu da diyelim %10.5 işte burada yine gürültü oluşacak, Yada voltaj düşecek.


Ayrıca bu gürültüler çok da önemli değil güç kaynağı birçok iş için yeterlidir, ben denemek için 19v çıkışı notebooka verdim hiçbir sorunyok bir de kutuya kulağınmı dayadığımda çok küçük bir ses var

Amaç güç kaynağımız olsun değil kendimizi yetiştirmek. 

Aklıma yeni bir fikir geldi onu da bi deneyeyim.



Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 02 Mart 2024, 15:40:35
Adcyi 4 bit yapınız. Hassasiyet azalacaktır
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 02 Mart 2024, 15:45:00
Alıntı yapılan: devrecii - 02 Mart 2024, 15:31:41spi  DAC çıkışı pwm kontrolcusune gönderilir sorunsuz olur ama biz burada yeni bişeyler deniyoruz :D


Bir tane elimizde örneğin TL431 ,UC384x ve TFT ekranı ile (Belki buna akım limitleme özelliğide eklenir) yapalım elimizde bir tane olsun ,diğer extrem SMPS de diğer versiyonunda olsa güzel olmazmı?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Mucit23 - 02 Mart 2024, 15:50:45
STM32F103'de 72Mhz için %0.1 çözünürlük için Ya 72Khz yapıp PSC değerini 1 yapacaksın yada PSC değerini 2 yapıp 36Khz ile çalışacaksın.

Bir diğer seçenek MCU'yu tam 48Mhz ile çalıştırmak. Bu şekilde 48Khz %0.1 PWM çözünürlüğü elde edebilirsin. Ama yerinde olsam 72Khz de çalışıp pid algoritmasını iyileştirmeye çalışırım. STM32F1 baya hızlı. PID altından kalkar diye düşünüyorum.  :)  72Khz düşük ripıl açısından da faydalı olacaktır.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 02 Mart 2024, 17:15:48
72 Mhz / 45 Khz = 1600 yapıyor...
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Mucit23 - 02 Mart 2024, 17:32:52
Ben Binde bir çözünürlük için ARR=1000 için hesaplamıştım ama bu şekilde daha yüksek bir çözünürlük elde ediliyor. 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 02 Mart 2024, 23:16:49
Alıntı yapılan: devrecii - 01 Mart 2024, 22:28:19OPto çıkışlı bir güç kaynağı yapacağım her topolojiyi süreceğiz diye yazmıştım , stm32f103 ile denedim çalışıyor ve çok basit fakat ne yazık ki çıkış gürültülü  , proje yattı.


(https://i.ibb.co/mFhndHQ/untitled.jpg)

Opto çıkışlı sistem kusursuz çalıştı , yakında yeni bir video çekeceğim. Kurulum  çok daha kolay ve tüm power çiplerinde kullanılabilecek

Bu başlıktaki devre ile ilgi olarak  adc girişine + çıkış yönünden eklenen kapasitor, gürültüyü muazzam düşürüyor şemayı değiştireceğim ve kodda da bazı buglar var onları da düzelteceğim.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 04 Mart 2024, 20:25:26
Hocam malzeme ısmarladım

4 farklı topology olacak tny280  ile olan şu an çok güzel çalışıyor

uc3845 50V yüksek wattlı forward
uc3843 100v flyback
İr2153 50V half bridge yuksek wattlı  (bunu çok merak ediyorum gürültülü mü olacak çünkü pwm entegresi değil)

Ayrıca sg3525 ve tl494 kullanılırsa opto şart değil gate dirver bobin de olur .
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 04 Mart 2024, 20:29:51
stm8 yada stm32 kullanılmayacak mı?
Bu farklı çip olayını anlamadım...
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 04 Mart 2024, 20:34:01
Alıntı yapılan: devrecii - 04 Mart 2024, 20:25:26Hocam malzeme ısmarladım
Malzemeler beklerken acaba sprint layout yada başka bir PCB programına da baksanızmı? (Paint brush zor okunuyorda  :) )
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 04 Mart 2024, 20:36:32
Pwm i bu çiplere yaptırıyoruz ya da gürültüyü kabul edeceğiz hocam, eğer gürültülü olsun bana yeter diyorsan bu başlıktaki devre yeterli olur.
Stm32 yada 8 olacak.  ben stm32 de yaptım.

Arıca bir konu daha var eğer çıkışta çok az yük varsa pwm milyonda birine inemeyeceği için burst yani dcm moduna geçiyor bu da gürültülü çıkış veriyor tüm pwm çipleri mesela tny280 de eğer çıkış voltajını 1V ayarlayıp çıkışa yük vermezsem çıkışta gürültülü bir ses duyuyorum bir dirençle hoparloya verince dızzz diye bir ses geliyor bu ses 0.01v ripple olsa bile duyuluyor.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 04 Mart 2024, 20:41:44
Alıntı yapılan: Epsilon - 04 Mart 2024, 20:34:01Malzemeler beklerken acaba sprint layout yada başka bir PCB programına da baksanızmı? (Paint brush zor okunuyorda  :) )
Hocam gözüm ağrıyor bunlarda çizim yaparken , malzemeleri hazır olarak , yine paintten devam edeceğim , drenç transistör libraryden  kopyala yapıştır olacak.

PCB programını incelemedim. Pcb yi elde çizerim daha iyi , gerçekten daha hızlı oluyor isterseniz bir deneyin
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: fide - 05 Mart 2024, 08:00:49
Alıntı yapılan: devrecii - 04 Mart 2024, 20:41:44Hocam gözüm ağrıyor bunlarda çizim yaparken , malzemeleri hazır olarak , yine paintten devam edeceğim , drenç transistör libraryden  kopyala yapıştır olacak.

PCB programını incelemedim. Pcb yi elde çizerim daha iyi , gerçekten daha hızlı oluyor isterseniz bir deneyin

Projeyi ilgiyle takip ediyorum.
Pcb çizmek ve şematik çıkarmak yakın zamana kadar benim de kaçtığım işlerdi.

Şematik için easyeda, pcb tasarım için proteus kullanıyorum. KiCad öğrenmek istiyorum. Easyeda çok kolay. Hem bedava hem de lokal/cloud desteği var.

Pcb için KiCad hem Windows hem linux çalışması bakımından güzel bir alternatif
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: sedronjames - 05 Mart 2024, 18:07:37
bu konu başlığı işin içinde olanlar için cennet fakat yolun başında olanlar için çakıllı bir patika.
Yok mu bir babayiğit, bizim gibi yeni yetişmeye çalışanlar için şu patikaya asfalt dökecek...
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 06 Mart 2024, 12:20:56
ÖNCE EMNİYET:

SMPS güç kaynakları, yeni başlayanlar için oldukça tehlikelidir!

Neden?

1. Yüksek voltaj içerir.
2. Besleme hattı fişten çekilse dahi, kapasiteler yüksek gerilimle şarjlı kalmış olabilir.


Alıntı yapılan: sedronjames - 05 Mart 2024, 18:07:37bu konu başlığı işin içinde olanlar için cennet fakat yolun başında olanlar için çakıllı bir patika.
Yok mu bir babayiğit, bizim gibi yeni yetişmeye çalışanlar için şu patikaya asfalt dökecek...
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: ilyas KAYA - 06 Mart 2024, 15:11:03
Bi ara oturdum smps yaptım. Trafolara kendim sardım. 24v 75w lik smpsler di.

Haziri daha ucuz daha emeksiz diye vazgeçtim. Hangi akla hizmet oturup trafo sarmisim bilmiyorum. 😂😂😂
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: analog06 - 06 Mart 2024, 15:18:27
Bu konu ile uğraşıcak arkadaşların sayısal kompansatör yazılımları ıle ılgılı epey bı okuma yapmıs olması gerektıgını dusunuyorum
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 06 Mart 2024, 22:59:44
SMPS tasarımı "ipten alır, ipe verir" ayarda birşey bence.

Türkiye'de çok firma var öyle, meraklı tasarımcının SMPS denemesine kurban giden 😂😂
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 06 Mart 2024, 23:14:45
Buradaki SMPS tasarımı ciddi görünüyor. Önemli avantajlar sunabilir. Fakat painti gören kaçar. Elektronikle  hangi düzeyde ilgilendiğinizi gösterir. Keşke o kelime hiç geçmeseydi, haberimiz olmasaydı.


Üniversitede güç elektroniği dersi veren hocanın paintle şema çizdiğini düşünelim. Olabilir mi
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: gevv - 06 Mart 2024, 23:23:24

@devrecii   Hocam  kutu ve panel 3d çizimleri de hazırlarmısınız ? 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 01:21:52
Hocam hangi tasarım en uygun ise ona göre pcb dizaynı , pcb dizaynına göre de kutu tasarımı olur.

Bugun uc3843 ile 100v flayback yaptım çıkışlar iyi. ir2153 ile deneyeceğim o çok önemli çünkü herkes yapabilir fakat pwm
entegresi olmadığı için gürültü verebilir , eğer o da olmazsa tl494 ile half-full  brigde yapılabilir.

Bu da yeni dizayn , çok sessiz çalışıyor bu sadece driver kısmı bir de power entegresi ile power kısmı olacak.


(https://i.ibb.co/sbS6Pm6/1.jpg)



BU başlıktaki stm8 sistem elektronik açıdan güzel tasarım , fakat gürültülü bunu çözmemiz lazım :du: esas konu bence bu.

Pwm aralığımız  0 ile 170 arası değer alabiliyor

Eğer çıkışta 170W lık bir yük varsa her pwm değişimi 1Wattlık gürültü oluşturacak bu gerçekten kabul edilebilir bir değer
değil.   Tabi bu en iyimser ihtimalle , adc ve tüm kontrol sistemlerinin kusursuz çalışması durumunda.

Yük verip gürültüyü incelediğimde bu stm8 tasarımı kontrol yazılımı açısından yeterli görünüyor.   
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 12:47:03
@devrecii
Eğer tam olarak  hangi devre veya chipde ne sorunu/sorunları olduğu detaylı  yazarsanız,konular hakkında çözüm seçenekerini araştırabilirim.

Power elektronikte çok bilgili değilim ancak konuları iyi araştırırım.
Doğal olarak diğer arkadaşlardan araştıranlar'da  olduğunda , çözüme ulaşmak daha hızlı olur hemde önemli bir bilgi sahibi olunur
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 16:59:59
@Epsilon stm8 de gürültü var bu yeni yöntem ile gürültü yok. Yeni başlık açmam lazım burada birbirine karıştı.

Mcu ile direkt  pwm çıkışı alıp bununla smps çalıştıran çalışmalar bulabilirsen burada linkini verebilirsen inceleriz çok iyi olur.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 19:23:27
@devrecii
Yeni araştırmaya başladım :
Aşağıdaki makale işine yararmı?
Makalenin Başlığı:
Flyback SMPS Using a Microcontroller as Control Unit
MICROCHIP in 2016 daki bir makalesi,  73 sayfa,20 wattlık flyback SMPS in MCU ile tasarımını komple anlatıyor
Sunuş kısmı:
 
INTRODUCTION
 This application note describes the steps taken to design, build and test a 20W Flyback Switched Mode Power Supply (SMPS) that uses the PIC16F1769 to control the circuit. The purpose is to show how the Core Independent Peripherals (CIPs) of the microcontroller unit (MCU) can be used to implement the logic control for a SMPS while the core is free to do other functions. The reason for changing the dedicated flyback controller to a MCU with CIPs is to gain control, monitoring, communications and automated features, which are some of the demands in a new SMPS. The concept of CIPs can be tricky to understand for designers who have never worked with MCUs. Designers who have used only Application Specific Integrated Circuits (ASICs) may think of them as analog devices, such as op amps and comparators that are integrated in a microcontroller that does not need code supervision to work normally, but can be interconnected and configured in a sandbox-type environment. The flyback topology was chosen because it offers a simple design with few components while providing isolation. It can be used as a reference for more complex designs. The first part of this application note is dedicated to readers who are unfamiliar with the flyback design.
 It focuses on:
 • Theory
• Logic
 • Equations and a third-party tool to solve them
• Component design and selection • Compensation process and filtering
For readers already accustomed to these steps the second part provides:
• Information on what a CIP is
 • How CIPs are used to control the flyback SMPS
• How to use the Microchip Code Configurator (MCC) tool to configure them without writing a line of code
 • The MCU on a "hot" side of a SMPS
• Limits control and examples of automated functions The third part provides some layout tips and thermal equations while the forth part provides experimental results which demonstrate that a MCU dotted with CIPs is ready to control a SMPS and even make it "smart".
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 19:29:44
Bu forumda da konuşulmuş sanırım
Link (https://www.eevblog.com/forum/projects/mcu-control-of-smps/)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 19:33:46
Epsilon bu olmaz çünkü burada comparatör ve dac lar var öyle yapmak kolay.

Opamp, dac vs hiçbirşey olmayacak direkt adc den voltajı okuyup pwm ile mosfeti sürecek benim stm8 ile yaptığım gibi.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 19:39:26
Alıntı yapılan: Epsilon - 07 Mart 2024, 19:29:44Bu forumda da konuşulmuş sanırım
Link (https://www.eevblog.com/forum/projects/mcu-control-of-smps/)

Led sürme vs için bu yaptığım süper hatta televizyon laptop da çalıştırabiliyor yani iş görür  akım yükseldikçe gürültüde aynı doğrultuda yükseliyor %1-3 arası çekilen akıma göre gürültü oluşturuyor  iş görür ama  bilimsel olarak  kabul edilemez zaten amacımız öğrenmek.

 
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 19:39:33
Bir başka forumda benzer soruya cevap olarak eklenenŞema (https://obrazki.elektroda.pl/4959669700_1428051841.gif)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 19:47:38
Microchipin 12-13 trick inin olduğu bir pdf (Konuyla alakası olmayanlarda var ama ipuçları sonuçta)
Döküman (https://ww1.microchip.com/downloads/en/DeviceDoc/chapter%207.pdf)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 19:55:33
@devrecii
Burada o konu sorulmuş ve gürültüden bahsedilmiş(ST nin sayfası)
(İlk soru)
link (https://community.st.com/t5/stm32-mcus/how-do-i-connect-the-stm32-s-smps-switched-mode-power-supply/ta-p/49590)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 20:02:44
@devrecii  bu cevaba göre araştırmaya devam edeyimmi?
Çünkü ben cevaptan MCU bazı uygulamalarda gürültüden etkilenir diye anladım(Seninde devrende karşılaştığın gibi)
Sorunun ST nin sayfasındaki cevabının google tercümesi:
Entegre SMPS kullanılmadığında STM32'nin SMPS (Anahtarlamalı Mod Güç Kaynağı) sinyallerini nasıl bağlarım?
SMPS (Anahtarlamalı Mod Güç Kaynağı) Teorisi
Entegre SMPS'li paketlerde STM32, uygulama gereksinimlerine bağlı olarak uygulama çalıştığında seçilebilen iki regülatör içerir: bir LDO (Doğrusal Voltaj Regülatörü) ve bir SMPS düşürücü dönüştürücü paralel olarak VCORE beslemesini sağlar. dijital çevre birimleri.
SMPS genel güç tüketimini azaltır, ancak dezavantajı bazı uygulamaların SMPS tarafından üretilen gürültüden etkilenebilmesidir. SMPS iki modda çalışabilir: ana regülatör modu (performans gerektiğinde kullanılır) ve düşük güçlü regülatör modu. SMPS tüm voltaj ölçeklendirme aralıklarında ve tüm durma modlarında kullanılabilir.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 20:13:56
@Epsilon o konu da var fakat kimse böyle bir uygulama yapmamış mı bu güne kadar ,çiplerin uygulama notları olmalıydı ama yok , verdiğin mikrocipin linkinde bilgi yok, rus linkteki devre iyiydi ama bilmiyoruz sonuçları nedir.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 20:15:47
Ona da bakayım bu sorular uzun tartışılmamış toplam 7-8 mesajla bitiyor
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 20:21:52
Hocam öğrenmek istediğim şu  , bunu dünyada ilk ben yapacak değilim  ;D

Adamlar uğraşmış ve sonuç hep hüsran olmuş ise boşuna zaman kaybetmeye gerek yok.

Eğer yapılabiliyorsa biz de çalışalım yapalım .
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 07 Mart 2024, 20:24:20
Şu şemanı  olduğu sayfa
(Cevap 5)
Ayrıca son cevapda da (8.cevap)bazı açıklamalar var
Link (https://www.edaboard.com/threads/using-a-micro-controller-as-a-pwm-regulator-in-a-smps.335049/)

07 Mart 2024, 20:26:43
Alıntı yapılan: devrecii - 07 Mart 2024, 20:21:52Hocam öğrenmek istediğim şu  , bunu dünyada ilk ben yapacak değilim  ;D

Adamlar uğraşmış ve sonuç hep hüsran olmuş ise boşuna zaman kaybetmeye gerek yok.

Eğer yapılabiliyorsa biz de çalışalım yapalım .

Benim anladığım ST diyorki stm 32 tek başına SMPS de gürültülü çıkış verir.diyor
Bunu kabul ettiğine göre 1-2 dolar daha verip hangi chip uygunsa gürültüsüz birşeyler yapmak lazım
sanırım
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 07 Mart 2024, 20:57:49
Şöyle kesin bir çözüm buldum , fakat ne kadar doğru olur ?

Büyük değişimler dışında pid çok yavaş çalışacak bu nedenle pwm saniyede 1 değişecek hatta daha yavaş, Hızlı yük değişimnde tabi hızlı tepki verecek, bu sefer kesin oldu sanırım bu şekilde kodu değiştireceğim. Tabi ne b.ka  yarar orası ayrı konu :D
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: hasankara - 08 Mart 2024, 16:23:57
(https://i.ibb.co/gtX4xXL/PSU-Remote-CTRL.png) (https://ibb.co/gtX4xXL)

https://1drv.ms/f/s!Aml9RRH1-8iCgbNoGi_WHthEXwiyiQ?e=WoumRN
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 09 Mart 2024, 10:50:00
69 nolu mesajda izah ettiğim ,"Flyback SMPS Using a Microcontroller as Control Unit"
başlıklı konunun indirme linki aşağıda.Pdf de 20 Wattlık bir SMPS in komple tasarımını ve PIC ile nasıl kontrol edilebildiğini anlatıyor

* Makalede ekran görüntüleri verilen yazılımın indirme linkini ben göremedim.
Microchip Linki (https://ww1.microchip.com/downloads/en/Appnotes/00002122B.pdf)
Güncelleme:
Microchipin pdf inde anlatılan  Power 4-5-6 isimli Ridley Enginnering diye bir firmanın ,Spice da yapılmış  bir simülasyonu.
10 yıl önceki youtube videsu  aşağıda.(O zamanlar bedava demiş  )
** Şimdi biri çıkıp  "Spice  yazılım değil bir similasyon programıdır"demesin diye açıklayayım :Evet Spice bir simülasyon programı :sen devreni çizersin o da sinyalleri çizer zamana göre akımı voltajı gösterir ,devren çalışırmı çalışmazmı gösterir.Spice da bu özelliklerdedir muhtemelen
https://www.youtube.com/watch?v=EHHetQrpIyQ&ab_channel=Dr.RayRidley
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 09 Mart 2024, 13:24:34
@hasankara bu cizdiğin devreyi anlamadım feedback yapmadan direkt kontrol olmaz.

@Epsilon  bu yöntem dediğim gibi bu başlıktaki yöntem değil araya opamp dac sokuyor stm8 yada stm32 serilerinde dac comparator olanları var onlarla da olur.


Bende bir simulasyon yapmıştım bu devreyi yapmadan önce  java da java yüklü ise jar dosyasına çift tıklayıp açabilirsiniz  ,  pid kontrolunu burada yapıp sonra mcu  için yapmıştım  sinyaller benziyor.

(https://mekatronik.org/forum/attachments/1-jpg.29380/)

(https://mekatronik.org/forum/attachments/untitled-png.29539/)

indir (https://mekatronik.org/forum/attachments/pwrexe-zip.29379/)


Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 09 Mart 2024, 13:51:09
Biliyorum daha öncede söyledin.Ben ek bilgi olsun diye ekledim
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: hasankara - 09 Mart 2024, 18:04:16
Alıntı yapılan: devrecii - 09 Mart 2024, 13:24:34feedback yapmadan direkt kontrol olmaz.

Comp pini primerde komparatör çıkışına giriyor. +Vout çıkış voltajı, takip edilerek comparatör set ediliyor. Özetle kapalı çevrime ek voltaj kontrolüyle direncini değiştiriyoruz. Bunu ek bir optoyla yapınca sisteme ek kapasitans katmamış ve gürültü bindirmeden nispeten uzun yollardan yapabiliyoruz, bu bir kabloda olabilir.

Son olarak, bunu açıklamak zorunda olduğum için üzgünüm.
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 19 Mart 2024, 02:15:27
Stm8 güç kaynağındaki sorunu buldum , sunubber sorunuymuş PF seviyesindeki snubblerleri 1nf ile değiştirdim ve çıkıştaki diyotlara bağlı kondansatör değerlerini yükselttim ve 300v gnd ile işlemci gnd arasına 1nf yüksek voltajlı kapasitör bağladım , çıkışlada zerre gürültü yok hatta pil gibi oldu :D.

Hoperlor ile test ediyorum sanki hoperlor pile bağlı gibi çıt yok , tl494 gibi analog smpsden daha gürültüsüz oldu , sadece çok küçük wattlarda çok hafif gürültü var o da burst mode geçtiği için , o değerlerde analog smpslerde de olur bu gürültü.

Yani proje hayal dahi edemeyeceğim bir başarı ile tamamlandı.  Dünyada eşi benzeri yok  :D  , güzel bir örnek.

Bu çıkışarı test ettiğim video


Güncel şema ve kodlar

(https://i.ibb.co/6WsVvGb/mcuspmps.png)

https://drive.google.com/file/d/1IeA1ojyDPsADiaAm0SjVInzf7HEXZ5H9/view?usp=sharing
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 19 Mart 2024, 04:44:18
Eline sağlık öncelikle. Ciddi bir soru işareti çözülmüş oldu.
Programı biraz daha anlarsak her türlü Mcu'ya aktarabiliriz bu çalışmayı.

Değişkenleri açıklaman mümkün mü?

Global değişkenler:
uint8_t
Ayr_v
Ayr_a,
Ayrhg,
Ayrypy,
tHerm,
fsnon,
vltyok,
AyrDsgt;

uint16_t
Vtis,
Ampis,
Ampdgr,
Ynsn,
syy,
fanpwm,
fanpwmis;

uint16_t
Amp,
Vlt,
Vlto,
Ampo,
Pwm;

const uint16_t _ssd = 2760;
const uint8_t _sxv = 5;

uint8_t syf[];
uint8_t ddt = 0;

Dahili değişkenler:
uint8_t ssd;
uint8_t aa;
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: power20 - 19 Mart 2024, 05:37:13
Çıkış gerilimi izolesiz okunduğu için şaseleri birleştiren 1nf 250V kondansatör gerekli olmuştur.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 19 Mart 2024, 05:39:44
Alıntı yapılan: Erol YILMAZ - 19 Mart 2024, 04:44:18Eline sağlık öncelikle. Ciddi bir soru işareti çözülmüş oldu.
Programı biraz daha anlarsak her türlü Mcu'ya aktarabiliriz bu çalışmayı.

Değişkenleri açıklaman mümkün mü?

Global değişkenler:
uint8_t
Ayr_v
Ayr_a,
Ayrhg,
Ayrypy,
tHerm,
fsnon,
vltyok,
AyrDsgt;

uint16_t
Vtis,
Ampis,
Ampdgr,
Ynsn,
syy,
fanpwm,
fanpwmis;

uint16_t
Amp,
Vlt,
Vlto,
Ampo,
Pwm;

const uint16_t _ssd = 2760;
const uint8_t _sxv = 5;

uint8_t syf[];
uint8_t ddt = 0;

Dahili değişkenler:
uint8_t ssd;
uint8_t aa;


(https://i.ibb.co/hCZx0xg/zz.png)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: sezgin - 19 Mart 2024, 13:12:06
Akıl eden, emek veren herkesin eline sağlık, benim gibi iş dışında boş zamanlarında elektronikle ilgilenenler için de çok güzel örnek bir çalışma oldu. Bu çalışmada ön yüze önceden ayarlanabilen voltaj değerlerine otomatik geçiş için birkaç anahtar koyulsa pratik olur mu?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 19 Mart 2024, 13:56:36
Full MCU Kontrollü SMPS Güç Kaynağı PCB for Sprint Layout 5.0
Full MCU Kontrollü SMPS Güç Kaynağı PCB for Eagle
Versiyonlarını  hazırlayabilecek arkadaşlarıda bekliyoruz  :)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 19 Mart 2024, 15:53:03
Şu iki mosfetli kısım birbirinin aynısı olması lazım değil mi?
Yanlış mı çizilmiş, ben mi anlamadım mevzuyu ?
(https://i.ibb.co/GFD6wVV/image.png)
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 19 Mart 2024, 15:59:37

Yok aslında orada da bir buluş da var  :P  Bobin pwm %50 üzerine çıkılabilmesini sağlıyor.

Burada %50 üzerine çıkılmıyor fakat Gate +12v  -10v volt arası çok hızlı sürülmesini sağlıyor iyi bir yöntem yani.

İki ayrı pwm çıkışı alıp half full bridge de çevrilebilir devre.


Alıntı yapılan: sezgin - 19 Mart 2024, 13:12:06Akıl eden, emek veren herkesin eline sağlık, benim gibi iş dışında boş zamanlarında elektronikle ilgilenenler için de çok güzel örnek bir çalışma oldu. Bu çalışmada ön yüze önceden ayarlanabilen voltaj değerlerine otomatik geçiş için birkaç anahtar koyulsa pratik olur mu?

Sistem temel halde, artık bu tip değişikler yapmak kolay olur , kodu değiştirebilirsiniz.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Erol YILMAZ - 21 Mart 2024, 11:18:53
Forward trafo da 2 Ferit malzeme yapışık oluyor bildiğim kadarıyla...

Kritik olarak gördüğüm ERL35 trafonun primer endüktansı nedir acaba ?

Bir de IGBT'nin hemen üzerindeki Primer Akım trafosu nasıl bişeydir?
Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: Epsilon - 21 Mart 2024, 12:44:49
Ayrıca ek olarak
Bu devrenin PCB sini yapmak isteyecekler için:

-PCB nin boyutları ne olabilir ?
-Komponentlerin yerleşimlerini gösteren ufak bir çizim ve ,hangisi neden uzakta (veya yakınında) olması gerektiğini anlatan küçük açıklamalar
-Trafo ve bobinler için biraz daha detaylar
olursa daha da iyi olurdu
Elinize sağlık çok uğraşmışsınız.Ancak bu haliyle bile ,pekçok kişi için hala bilinmeyen yerler var.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: devrecii - 21 Mart 2024, 13:49:42
Alıntı yapılan: Erol YILMAZ - 21 Mart 2024, 11:18:53Forward trafo da 2 Ferit malzeme yapışık oluyor bildiğim kadarıyla...

Kritik olarak gördüğüm ERL35 trafonun primer endüktansı nedir acaba ?

Bir de IGBT'nin hemen üzerindeki Primer Akım trafosu nasıl bişeydir?

İki malzeme yapışık değil eğer gap diyorsan ferrit gapsız , iki bobin birbirinden iyi yalıtılmalı o sorun var çünkü bobinlerin ucunda 600v voltaj farkı oluşur ,  o yüzden (tek bobinli) (iki ibgtli) kullanırlar forward da ,  bir de sığdırmak zordur ferrtin içine iki bobin , bu devrede de Gate trafosundan sekonder de tek bobin değil de iki bobin çıkarııp  iki igbtli tasarıma dönüştürülebilirsiniz istersen çizebilirm.

@Epsilon malzemeler bağlı olukları yerlere mümkün olduğu kadar kısa bağlanmalı , özel bi durum yoksa tüm devreler için geçerli, tabi benim burada bunu yapma şansım yoktu tel çektim ,  bobin konusunda bobinlerin neyin üzerine nasıl sarıldığını videoya çektim bir çıkış bobinini çekmedim o da pc power supply sarı ferrit.

İgbt kollektörden alınan bobinle amper ölçümü çok da önemli değil , onu ve oradan sonra gelen diyot kondasaötr vs çıkıraiblirsiniz  ,  extra koruma iyi bişey ama olmasa da olur ,  minik toroid ferrit üzerine 2 -3 sarım ortasından igbt kablosu geçiyor bu kadar . 
Sistemin ulaşacabileceği max Wattı bu bölgeden arayarlabilrisiniz.

kısa devre tesi (https://mekatronik.org/forum/data/video/32/32021-827c9777b5dcb7b4bc137e309a25f906.mp4) BU videoda bu bobinden gelen amper feedbaci olmadan kısa devre testi var

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: hasankara - 23 Mart 2024, 04:32:42
Elinize sağlık, açık kaynak paylaşımınız için ayrıca teşekkürler, paylaşımlarınızın devamı gelmesi dileğiyle. Sonraki versiyon için bir kaç öneride bulunmak isterim.
(https://i.ibb.co/0FBnVsg/nput-Offset.png) (https://ibb.co/0FBnVsg)
Çıkış akımı için 5 mili ohm direnç kuvvetlendirirken düşük akım değerlerinde özellikle lm358 in başarım göstermesi konusunda şüpheliyim, çünkü ofset voltajı akım kuvvetlendirmek için yüksek sayılabilecek düzeyde ve sıcaklıkla fazlaca değişebiliyor. Yakın zamanda araştırdığım ve yerli bulunabilen TLV2333IDR opamp ı denenebilir ancak beslemesi 12v dan değil mcu beslemesinden alınabilir. Halihazır denetleyici beslemesi ayrıca sağlandığı için, ikinci encoder de eklenerek sabit akım çıkışı özelliği ile farklı kullanım senaryoları elde edilebilir, Laboratuvar güç kaynağı gibi.

(https://i.ibb.co/Lg9yGTt/shunt-amplifier.png) (https://ibb.co/Lg9yGTt)

Negatif yöndeki akımları ölçebilmek istenirse 1.65 referans oluşturularak 0 akımı yukarı kaydırılmış olur. MCU için 1.65volt karşılığı 0 kabul edilerek işlem yapılır. Önerdiğim opamp kılıf içinde çift desteklediği için ek bir kaç pasif le yukarıdaki şema elde edilebilir. 1.65 kaydırmak istenmediği taktirde ilgili direnç (R34) MCU nun gnd sine yakın noktadan 0 a çekilebilir.

Akım trafosu kullanarak masraftan kaçmamışken, 1200v igbt "VCE(sat) = 3.2 V" değeri yine düşük güç tüketimlerinde, alternatif ürünlere kıyasla verimi fazlaca düşürebilecek gibi. Osilaskop ile inceleme şansı bulunuyor ise Vce yük altındaki sinyal incelenerek yeterli snubber olduğuna kanaat getirildikten sonra, yani 550v değerleri aşılmadığı görüldüğünde, 600V düzeyinde mosfet yada igbt ile güncellenebilir.

Verim dahada yükseltmek istenirse inrush ntc si, röle ile gecikmeli kısa devre yapılabilir. MCU boş pinlerinden birisi ile kontrol edilebilir.

Başlık: Ynt: Full MCU Kontrollü SMPS Güç Kaynağı
Gönderen: slimandheavy - 23 Mart 2024, 10:18:21
Anladığım kadarıyla temel ve deneysel metodlarla çalıştırdığınız bu regülatör STM32F334 gibi DSP ve hızlı ADC PWM seçeneklerine sahip bir MCU ile full dijital kontrole uygun hale gelebilir.
Kontrol teorisine hakim bir arkadaş bulursak matematik kısmını da öyle halledebiliriz.
Tebrikler devreci hocam.