ır2104 kullanımı

frdrmz

Üye
Katılım
3 Haz 2021
Mesajlar
6
Puanları
1
Merhabalar, ır2101 entegresi ile hazır devre ve kodu var ancak ben ır2104 kullanmak istiyorum, kodlarda nasıl bir modifikasyon yapmam gerekiyor bir türlü çözemedim. Yardımcı olursanız memnun olurum.
Aşağıdaki linkteki devreyi çalıştırmaya çalışıyorum sadece ır2101 yerine 2104 kullanarak. MİkroC kodlarından anlayan birisi yardımcı olursa çok iyi olur.

https://simple-circuit.com/bldc-brushless-motor-control-mikroc/
 
Devrede PWM üst moslara uygulanmış. Ayrıca kullanılmayan sargı tamamen off durumda kalıyor. Ki zaten BEMF okumak için de öyle olmak zorunda.

Açıkçası 2104 bu devre için uygun değil.
Ama illede 2104 kullanılmak zorunda ise.

IR2104'ün HIN pinine PWM uygulanırsa istenmeyen şekilde IR2104'ün LO pini Peryodun off anında aktif olur.
PWM başlatılmadan önce HIN pininin polaritesi set edilip, IR2104'ün SD PWM pinine uygulanmalı.

16F887'nin PWM modülü çıkışları devrede HIN girişlerine bağlı. PWM çıkışı olan D5-D6-D7 pinleri SD pinlerine,
IR2101'de LIN pinlerine bağlı olan D2-D3-D4 pinleri de IR2104'de HIN pinlerine bağlanmalı.

Kodda komutasyon geçişlerinde önce PWM off edilecek.
SD pinlerinin tamamı yani D5-D6-D7 low olacak.
Hangi üst mos ON olacaksa ilgili HIN pini high, ON olacak alt mosun ilgili pini LOW olacak. yani D2-D3-D4 pinleri.

Alt mosun SD pini HIGH yapılıp, üst mosun SD pinine PWM uygulanacak.

Kolay gelsin.
 
Devrede PWM üst moslara uygulanmış. Ayrıca kullanılmayan sargı tamamen off durumda kalıyor. Ki zaten BEMF okumak için de öyle olmak zorunda.

Açıkçası 2104 bu devre için uygun değil.
Ama illede 2104 kullanılmak zorunda ise.

IR2104'ün HIN pinine PWM uygulanırsa istenmeyen şekilde IR2104'ün LO pini Peryodun off anında aktif olur.
PWM başlatılmadan önce HIN pininin polaritesi set edilip, IR2104'ün SD PWM pinine uygulanmalı.

16F887'nin PWM modülü çıkışları devrede HIN girişlerine bağlı. PWM çıkışı olan D5-D6-D7 pinleri SD pinlerine,
IR2101'de LIN pinlerine bağlı olan D2-D3-D4 pinleri de IR2104'de HIN pinlerine bağlanmalı.

Kodda komutasyon geçişlerinde önce PWM off edilecek.
SD pinlerinin tamamı yani D5-D6-D7 low olacak.
Hangi üst mos ON olacaksa ilgili HIN pini high, ON olacak alt mosun ilgili pini LOW olacak. yani D2-D3-D4 pinleri.

Alt mosun SD pini HIGH yapılıp, üst mosun SD pinine PWM uygulanacak.

Kolay gelsin.
Teşekkür ederim hocam çok açıklayıcı olmuş ama doğru mu anlamışım acaba bu şekilde mi olmalı kodlar?

void AH_BL()
{
CCP1CON = 0; // PWM off
PORTD = 0x40; //B SD pini
PORTD = 0x10; //A fazı IN PİNİ
PSTRCON = 0x08; // PWM output on pin P1D (RD7), others OFF A fazı SD PİNİ
CCP1CON = 0x0C; // PWM on
}

void AH_CL()
{
CCP1CON = 0; // PWM off
PORTD = 0x20; //C SD pini
PORTD = 0x10; //A fazı IN PİNİ
PSTRCON = 0x08; // PWM output on pin P1D (RD7), others OFF A fazı SD PİNİ
CCP1CON = 0x0C; // PWM on
}
 
Son düzenleme:
void AH_CL()
{
CCP1CON = 0; // PWM off
PORTD = 0x04; //C IN pini
PORTD = 0x10; //A fazı IN PİNİ
PSTRCON = 0x08; // PWM output on pin P1D (RD7), others OFF A fazı SD PİNİ
CCP1CON = 0x0C; // PWM on
}

Devrede gereken IR2101' e göre PWM uygulanan girişleri IR2104'e göre SD girişlerine aynı sırada çektiğini varsaydıgımızda;


Devrede gereken donanımsal değişikliği yaptıysan isen;

AH_CL() için



CCP1CON = 0; // PWM off // OK
PORTD = 0x04; //C IN pini //HATA C HIN pini LOW olmalıki, C kanalı alt mos SD pini aktlf olduğunda ON olsun.
PORTD = 0x10; //A fazı IN PİNİ // RD4 HIN pinine bağlı ise doğru.

Eksik; C kanalı alt mos on olması için C kanalı SD pini high olmalı.
Yani RD5 high olacak. (modifiye edilmiş devreye göre)

PSTRCON = 0x08; // PWM output on pin P1D (RD7), others OFF A fazı SD PİNİ // RD7 A kanalının SD pinine bağlı ise doğru

CCP1CON = 0x0C; // PWM on //OK
 

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Geri
Üst