12F1822 Pwm Sorunu

Başlatan oguztkn, 17 Aralık 2023, 17:12:42

oguztkn

Merhaba Arkadaşlar,

12f1822 kullanarak RA5 pininden pwm sinyali çıkarmak istiyorum. Gerçek devrede deniyorum ama kodları çalıştırdığımda sadece blink yapıyor. Nerede hata yapıyorum acaba yol gösterebilirmisiniz ?

#CONFIG 
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF  
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
#ENDCONFIG


DEFINE OSC 16

DEFINE CCP1_REG PORTA 'Hpwm 1 pin port
DEFINE CCP1_BIT 5 'Hpwm 1 pin bit


duty var WORD

OSCCON=%01111011
APFCON=%00000101
TRISA=%00000000
LATA=%00000000
ANSELA=%00000000
WPUA=%00000000
IOCAP=%00000000
IOCAN=%00000000
IOCAF=%00000000
INTCON=%00000000
PIE1=%00000000
PIE2=%00000000
CM1CON0.7=0
FVRCON.7=0
ADCON0.0=0
DACCON0.7=0
SRCON0.7=0
CM1CON0 = 0   ' COMPARATOR OFF
CM1CON1 = 0   ' COMPARATOR OFF
OPTION_REG=%10000000
MDCON.7=0
CCP1CON=%00000000
CCP1AS.6=0
CCP1AS.5=0
CCP1AS.4=0
CPSCON0.7=0
PSTR1CON=%00000001
PWM1CON.7=0
pause 300




    duty =50
    PR2 =24
    T2CON = %00000101
    CCP1CON.4=duty.0
    CCP1CON.5=duty.1
    CCPR1L =duty >>2
    CCP1CON.2=1
    CCP1CON.3=1    
   

Basla:
     


goto basla

end

elektro77

#1
Bu kısımları basla - goto basla satırlarının içine alırsan çalışır.
Blink yapma sebebi bu kodların açılışta sadece bir kere çalışmasından. Bu nedenle başla satırından sonraya almalısın...
Basla:    
    CCP1CON.4=duty.0
    CCP1CON.5=duty.1
    CCPR1L =duty >>2
    CCP1CON.2=1 'bu satırı sil
    CCP1CON.3=1 'bu satırı sil.
goto basla


"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

oguztkn

Alıntı yapılan: elektro77 - 17 Aralık 2023, 19:13:59Bu kısımları basla - goto basla satırlarının içine alırsan çalışır.
Blink yapma sebebi bu kodların açılışta sadece bir kere çalışmasından. Bu nedenle başla satırından sonraya almalısın...
Basla:    
    CCP1CON.4=duty.0
    CCP1CON.5=duty.1
    CCPR1L =duty >>2
    CCP1CON.2=1 'bu satırı sil
    CCP1CON.3=1 'bu satırı sil.
goto basla


farketmedi hocam hala aynı.+ sil dediğiniz kısımları sinyali açmak için kullanmıyormuyuz ? donanımsal pwm olduğundan basla-goto basla içerisine almamıştım. Bir kere değerleri ayarlayıp sinyali açtıktan sonra programdan bağımsız çalışması gerekmezmi

Pepe

simulacion en proteus con proton

elektro77

Ete Hocamın Ders 11 i okudunuz mu?
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

oguztkn

Alıntı yapılan: elektro77 - 17 Aralık 2023, 19:44:17Ete Hocamın Ders 11 i okudunuz mu?

evet atladığım bir kısım mı var acaba ? duty sabit ise basla-goto baslanın arasında olmasına gerek yok ki

elektro77

#6
Alıntı yapılan: oguztkn - 17 Aralık 2023, 19:54:07evet atladığım bir kısım mı var acaba ? duty sabit ise basla-goto baslanın arasında olmasına gerek yok ki
Evet gerek yok. O zaman sigorta ve register ayarlarını iyice bir kontrol et.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

oguztkn

Alıntı yapılan: Pepe - 17 Aralık 2023, 19:42:26simulacion en proteus con proton

12F1822 proteus simulation work but real circuit not work.

oguztkn

Zaten takıldığım kısım o nokta elektro77.Teşekkür ederim cevabınız için.

Sabahtan beridir uğraşıyorum çözüm bulamadım. Farklı bir göz ile bakılmasını istemiştim. Belki forumda kullanan arkadaşlar vardır yazarlar.

oguztkn

dosya derleniyor ama bu uyarı yazıları çıkıyor. Burayla ilgili olabilir gibi geliyor ama nasıl çözerim bilemedim

Pepe

#10

OSCCON=%01111000

oguztkn

Son durumda;

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2023 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                              *
'*  Date    : 16.12.2023                                        *
'*  Version : 1.0                                              *
'*  Notes  :                                                  *
'*          :                                                  *
'****************************************************************

#CONFIG 
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF  
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
#ENDCONFIG


DEFINE OSC 16

DEFINE CCP1_REG PORTA 'Hpwm 1 pin port
DEFINE CCP1_BIT 5 'Hpwm 1 pin bit


duty var WORD

OSCCON=%01111011
CLKRCON.7=0
WDTCON=%00100100
APFCON=%00000101
TRISA=%00000000
LATA=%00000000
ANSELA=%00000000
WPUA=%00000000
IOCAP=%00000000
IOCAN=%00000000
IOCAF=%00000000
INTCON=%00000000
PIE1=%00000000
PIE2=%00000000
FVRCON.7=0
ADCON0.0=0
DACCON0.7=0
SRCON0.7=0
CM1CON0 = 0  ' COMPARATOR OFF
CM1CON1 = 0  ' COMPARATOR OFF
OPTION_REG=%10000000
MDCON.7=0
CCP1CON=%00000000
CCP1AS.7=0
CCP1AS.6=0
CCP1AS.5=0
CCP1AS.4=0
CPSCON0.7=0
PSTR1CON=%00000001
PWM1CON.7=0
SRCON1=%00000000
'PIE1.1=1
pause 300




    dUtY=500
    PR2 =249
    T2CON = %01111101
    CCP1CON.7=0
    CCP1CON.6=0
    CCP1CON.4=dUtY.0
    CCP1CON.5=dUtY.1
    CCPR1L =dUtY >>2
    CCP1CON.2=1
    CCP1CON.3=1    

Basla:

    


goto basla

end


Bu kod ile çalıştığımda resimdeki şemada gerçekte deniyorum. Simülasyonda sorun yok. Gerçek devrede pini osilaskopta izliyorum sinyal çıkıyor. Direk pine 1 adet direnç ile 1 adet led bağlarsam sorun yok. Ama şemadaki gibi transistör ile tetiklersem ledler kırparak yanıyor blink gibi. osilaskopta çıkış sinyali okunmuyor. Bu gariplik nedir acaba ?


mehmet

Mosfet sürme kısmına çalışın bence.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Config satırlarının baş kısmına bir adet boşluk ekleyiniz.
Elde etmek istediğiniz PWM frekansı nedir?
OSCON register değerin yanlış PEPE nin verdiği değeri kullan.

Muhtemelen asıl sorunun Mosfet sürme kısmında. Mosfet 1K lık direnç ile sürülmez.
O direnci 150 Ohm ile değiştir yeniden dene bakalım. Mehmetin de dediği gibi Mosfet sürme tekniklerini araştır.

ete

oguztkn

Hocam osccon'u pepe arkadaşın dediği gibi yaptım. Base direncini de 100R ile değiştirdim. Fark eden birşey olmadı.
Anlayamadığım kullandığım mosfet AO3400 ve aynı devre 12f510'da yazılımsal pwm, GPIO.5,50,10 bu komut ile 1k base 10k pull down olarak çalışıyor.Ama 12F1822 de çalışmadı.

Powered by EzPortal