16F1827 yeni nesil pic.

Başlatan F®T, 30 Aralık 2014, 19:21:59

F®T

hocam konu gitti ama 10 bit pwm elde edemedik ne yazıkki.uğraşmaya devam.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

X=VSET           'v set değerini x e eşitliyoruz
CCP1CON.4 = X.0  'ccp1con 4. v3 5. bitleri sadece okunan bitler ccp1h bitleri   
CCP1CON.5 = X.1
X = X >> 2       '
CCPR1L = X       'ccpr1l değerini x e eşitleyince 10 bit hpwm oluşuyor.

bu şekilde düzenleme yaptım 10 bit oluştu.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

arkadaşlar kodları koyuyorum bu işlemci ile ilgili pek kod bulamadım .çalışacak arkadaşlara faydası olması dileği ile.yardımlarını esirgemeyen ete hocam ve selami hocama teşekkür ediyorum.iyi çalışmalar.isis dosyası ilk mesajdadır.

'proton  2.0.1.2 versiyon
'compiler 3.5.5.5


;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 16F1827

Config1 FOSC_INTOSC,WDTE_OFF,PWRTE_ON,MCLRE_OFF,CP_ON,CPD_ON,BOREN_OFF,CLKOUTEN_OFF,IESO_ON,FCMEN_OFF
Config2 WRT_ALL,PLLEN_ON,STVREN_ON,LVP_OFF,BORV_19,LVP_OFF

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------





Declare Xtal = 8      'işlemcinin 32 mhz dahili çalışmasını istiyorum fuse de pll yi açtım
Declare PLL_Req TRUE  '32mhz 

TRISA=%00000000:PORTA=0
TRISB=%00011110:PORTB=0                             

Declare LCD_DTPin PORTA.0
Declare LCD_ENPin PORTA.6
Declare LCD_RSPin PORTA.7
Declare LCD_Interface 4
Declare LCD_Lines 2
Declare LCD_CommandUs 100
Declare LCD_DataUs 100

Declare Adin_Stime 200  'adc okurken kapasitör doldurma boşaltma süresi

ANSELA=%00000000       'TÜM PORTA DİJİTAL PİN OLACAK
ANSELB=%00011110       'PORTB 1.2.3.4. bitleri adc olacak DİĞER KALAN PİNLER DİJİTAL OLACAK                       
APFCON0.0=1            'PORTB.0 CCP1 PİNİ OLACAK
FVRCON =0              'voltaj referanslarını iptal ediyoruz                     
ADCON0.0 =1            'adc okumayı açıyoruz
ADCON0.1 =1            'adc okumadan sonra okuma bitini program otomatik sıfırlıyor
ADCON1 =%10100000      '10 bit okuma,fosc32,vref- vss,vref+ vdd
DACCON0=0              'dac devre dışı
SRCON0=0               'sr latch kontrol devre dışı     
SRCON1=0               'sr latch kontrol devre dışı
CM1CON0=0              '
CM2CON0=0              'KOMPARATORLER KAPATILACAK
MDCON=0                'modülator çıkışı iptal
MDSRC=0                'modülasyon kaynak seçimi                 pwm sayfa 205 ten başlıyor
MDCARH=0               'modülasyon yüksek biti
MDCARL=0               'modülasyon düşük biti
CCP1CON.2=1      'pwm moduna ve tek pin çıkışına ayarlandı
CCP1CON.3=1      'pwm moduna ve tek pin çıkışına ayarlandı
CCPTMRS=0        'tüm ccp lere tmr2  seçildi
T2CON=%00000100        'Prescaller / 16, Timer2 ON  'ccp1 için prescaller ayarlandı ve t2 devreye alındı
PR2=255

Dim X       As Word     

Dim Vset As Word

   
Cls
DelayMS 10


BASLA:

X=Vset           
CCP1CON.4 = X.0   
CCP1CON.5 = X.1
X = X >> 2     
CCPR1L = X       

Vset   =ADIn 9


Print $FE,$80,"SET=",Dec Vset
   


GoTo BASLA     






"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

F.T. , verdiğin kodların çalışması gerekir. Tek sorun VSET değişkenine uygun bir değer verip vermediğin. Anlamak için, 4 mhz frekans için PWM frekansını 1 khz e ayarla. (Pr2=249, bölme=1/4)
Sonra vset=500 ver ve kodları dene bakalım.
Bu arada bir şey daha eklemek gerek. Bu işlemcide gerek CCP1 ve gerekse CCP2 çıkış pinleri 2 şer tanedir. Öncelikle pwm sinyalini hangi pinden alacağınıda seçmen gerekiyor. Bu işi APFCON registeri yapıyor. CCP1 için bit0 CCP2 için Bit3 bu seçimi sağlamaktadır. Pin seçiminide yaptıktan sonra sistemin doğru çalışması gerekir.

Ete

F®T

Ete hocam hic bir sorunum su anda yok.yukardaki kodlar tam olarak sikintisiz calismaktadir.yardimlarini icin tesekkurler.saglicakla kalin.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

işlemciyi netten aradım bulamadım.hangi firmadan alma şansımız var.bilgisi olan varmı?
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.


F®T

Var görünüyor ama işlemi sonuçlandıramıyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.


F®T

"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Arkadaşlar program derlemede 32 mhz olarak görünüyor ve derleniyor.fakat kasıntılı çalışıyor.lcd yazıları ve süreler çok yavaş.100 ms ye bekleme bile nerdeyse 10 sn sürüyor.Pll yi kapatınca daha hızlı çalışıyor ama yinede tam normal değil.hata ne olabilir.Program yukarda.programın 32 mhzde normal hızında çalışması için programda eksiğim ne.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

Hocam bence config ayarindaki kristalle alakali, benim basima 18f4520 de gelmisti.  Onda osc yi hs yaptigimda soylediginiz sorunu yasamistim. Osc yi hspll yaptigimda da duzelmisti. Suan cepten yaziyorum pc basina gecince bi deneyeyim. Bu arada hocam bunun 40 pinlisi yokmudur. Malum  cok port lazim cook :)





ete

#27
Sorun , OSCON registerinin 8Mhz'e eşitlenmemesinden kaynaklanıyor olması gerek.  U eşitlikte PLL biti de set edilerek sistem 32Mhz için ayarlanmış olacaktır.
İşlemciyi 32 Mhz dahili OSC de çalıştırmak için ben aşağıdaki Config ayarlarını ve ilave olarak OSCCON ayarını kullanıyorum.
ASM
  __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_ON & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
  __config _CONFIG2, _WRT_OFF & _PLLEN_ON & _LVP_OFF & _STVREN_OFF & _BORV_25
ENDASM

DEFINE OSC 32
OSCCON= %11110000   'PLL enabled, Internal RC-8MHz

OSCON registeri 7. biti burada çok önemlidir. Bu bitin 1 olması gerekir.

Ete

F®T

	Device = 16F1827

Config1 FOSC_INTOSC,WDTE_OFF,PWRTE_ON,MCLRE_OFF,CP_ON,CPD_ON,BOREN_OFF,CLKOUTEN_OFF,IESO_ON,FCMEN_OFF
Config2 WRT_ALL,PLLEN_ON,STVREN_ON,LVP_OFF,BORV_19,LVP_OFF

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------       

Declare Xtal=32      'işlemcinin 32 mhz dahili çalışmasını istiyorum fuse de pll yi açtım
OSCCON= %11110000   'PLL enabled, Internal RC-8MHz


pro-TR hocam merhaba.Daha önce vermiş olduğunuz komutu kullanıp derleme yapınca 25 mhz üzeri bu komut kullanılamaz uyarısı geliyor.Anladığım kadarı ile bu komut 25 mhz e kadar kullanılıyor.Çok pinli zaten 18 serisi var onlardan kullanılabilir.Ayrıca yardımınız için teşekkür ediyorum.İyi günler. Declare PLL_Req TRUE  '32mhz

ete hocam selamlar.dediğiniz gibi sanırım 8 mhz dahili ve pll aktif olma olayı config satırında olmasına rağmen derleyici tarafından aktif edilmiyor.sadece xtal 32 ve osccon düzenlemesini ekledim.pic roket gibi oldu.Sizede çok teşekkür ediyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

gogoce

ferit abi nerden tedarik ettin bu pici
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Powered by EzPortal