16F1827 PORTB.3 AN9 istenmeyen voltaj oluşma sorunu?

Başlatan F®T, 11 Haziran 2016, 12:18:52

F®T

Arkadaşlar rb3 portunu an9  analog olarak ayarladım.Fakat rb3 port ayağı boşta iken portta pic besleme voltajını ölçmekteyim.porta besleme  girişi vermememe rağmen bu voltajı neden görüyorum.Bu voltaj sistemin çalışmasını bozuyor.Olmaması gerektiğini düşünüyorum.
Bu normal mi? Neyi gözden kaçırıyorum?   ???

Sigorta ayarları ile alakal olabilirmi?    ???

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

DelayMS 2000

Device = 16F1827

Config1 FOSC_INTOSC, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_ON, CPD_ON, BOREN_OFF, CLKOUTEN_OFF, IESO_ON, FCMEN_ON
Config2 WRT_OFF, PLLEN_ON, STVREN_ON, LVP_OFF   

'Declare Xtal=8
'Declare PLL_Req = True
OSCCON = %01100000 'Internal 8 MHz clock select
OSCTUNE.6 = 1 ' Frequency Multiplier PLL for INTOSC Enable bit
'All_Digital = True

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

TRISA=%00100000
PORTA=0
TRISB=%00111010
PORTB=0

WPUB.1=1

ANSELA=%00000000     
ANSELB=%00111000 
                           
APFCON0.0=1           
APFCON0.3=1 
         
FVRCON =%11000010
                       
ADCON0 =%01111101     
ADCON1 =%10100011
     
DACCON0=%00000000         
DACCON1=0 
           
SRCON0=0                     
SRCON1=0               
CM1CON0=0             
CM2CON0=0               
MDCON =%00000000                 
MDSRC =%10001111               
MDCARH=%10001111             
MDCARL=%10001111

CPSCON0=%00000000
CPSCON1=%00001111 

CCPTMRS=0


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

F®T

rb.3------------68k-----------<<<ölçüm yapılacak voltaj
             |
             |_____10 k----------||| gnd

port giriş bağlantısı bu şekilde.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

WPUB.1=1 satırını WPUB.1=%00000010 olarak değiştirmeyi dener misiniz ?Ayrıca görüyorum ki işlemci frekansı 32 MHZ olarak ayarlanmış ama 32 MHZ'lik kristal Define ayarı görünmüyor programda .. Protonda kristal ayarının nasıl define edildiğini bilmiyorum ama Basic için bu açıdan eksik görünüyor kod .. Belki bu sebeptendir ..

Burak
Ω Gens Una Sumus Ω

ete

Burak bu ifade yanlış oluyormu?  WPUB.1=%00000010 , ifadesinde WPUB.1 bit değeri ifade ediyor ama karşısında BYTE var.
Bence yanlış.
Ete

Burak

#4
Alıntı yapılan: ete - 11 Haziran 2016, 16:02:29
Burak bu ifade yanlış oluyormu?  WPUB.1=%00000010 , ifadesinde WPUB.1 bit değeri ifade ediyor ama karşısında BYTE var.
Bence yanlış.
Ete

Pardon hocam  WPUB=%00000010 olarak ifade etmek istemiştim , gözümden kaçmış :) Bu kayıtçı tüm sıralı bitleri set olarak açtığı için bunu önermek geldi aklıma bu arada onunda açıklamasını yapiym Ferit abiye :)

Burak
Ω Gens Una Sumus Ω

F®T

Allah razı olsun kardeşim.Yardımlarınız için teşekkür ediyorum.Zaten işlemcide aanormal durumlar oluyor ama çözemedim bir türlü.Kodda bir düzeltme yapıyorum program çalışmıyor gibi tuhaf işler.Deniyip hemen yazıyorum.Şu osc kısmını bu işlemcinin anladı isem arab olayım .Daha öncek ayarlarım ile güzel çalışan bir kart bu ayarlarla sorun oluşturuyor.Bana 32 mhz nasıl çalışır bu işlemci bir ayarlasana... ???
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

#6
Ferit abi sadece OSCCON kayıtçısını aşağıdaki satırdaki haliyle düzelteceksin

OSCCON=%11110000


ve şu satırıda program başına ekliyceksin ..

Declare Xtal =32


Normalde ASM'de yaptığımız şu :
* 8 MHZ için OSCCON kayıtçısını ayarla ,
* Config2 kayıtçısından Phase Locked Loop (PLL)'i aktifleştir

Basic gibi dillerde ise buna eklenti olarak sadece OSC define'ı yapılması gerekiyor .. (Declare XTAL = 32 satırı proton basic için doğru mu değil mi bilmiyorum ...)

Burak
 
Ω Gens Una Sumus Ω

F®T

OSCCON=%11110000 İNTOSC seçeneği burda seçilmemiş.Ben seçince OSCCON=%11110010 sapıtıyor.Protonda bu entegreye karşı gıcıklık var bence.Daha öncedende bir kaç bug rasgelmişti.Osc tanımlaması doğru fakat onu yazınca işlemci hiç çaLışmıyor.

En yi böyle çalışıyor

Device = 16F1827


Config1 FOSC_INTOSC, WDTE_OFF, PWRTE_ON, MCLRE_OFF, CP_ON, CPD_ON, BOREN_OFF, CLKOUTEN_OFF, IESO_ON, FCMEN_ON
Config2 WRT_OFF, PLLEN_ON, STVREN_ON, LVP_OFF   

'Declare Xtal =8
'Declare PLL_Req = True
OSCCON=%11110011
'OSCTUNE.6 = 1 ' Frequency Multiplier PLL for INTOSC Enable bit
'All_Digital = True
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

Gerçekten bi fikrim yok Ferit abi .. Bu işlemcinin datasheetini hatim etmiş birisi olarak Picbasic'e uyguladığım herşey bugüne kadar çalıştı .. Örneğin aşağıda örnek bir PicBasic kodu ...

#config
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_19 & _LVP_OFF
#ENDCONFIG

DEFINE OSC 32

OSCCON=%11110000
OPTION_REG.7=0      :      WPUB=%11111111
TRISA=%00000000     :      TRISB=%10001110
ADCON0=%00000000    :      ADCON1=%10110000
ANSELA=%00000       :      ANSELB=%00000000
PORTA=%00000000     :      PORTB=%00000000

OSCREADY    var OSCSTAT.4
OSCSTABLE   var OSCSTAT.0

while (oscstable=0 or oscready=0)
@ nop
@ nop
wend


Burada son bölümdeki kod döngüsü işlemcinin osilatörünün stabilize edilmeden programa başlamasını engellemek için .. Bu işlemcinin birçok özelliği var ama derleyici hakikaten ciddi önem arz ediyor ..

Burak
Ω Gens Una Sumus Ω

F®T

Haklısın aslında ben bir daha proton kullanmayayım diyorum ama bazı sebeplerden yine kullanmak zorunda kaldım.Ama programı picbasic le tekrar yazıcam heralde.Bu kadar saçma durum olmaz.Gerçekten çok bug var.Daha önce çalışan işlemci ayarları farklı bir kodda çalışmıyor.Protona pes diyorum artık.Çok mecbur olursa yinede kullanılabilir ama hata olayı saç baş yolduruyor artık.
Burak yardımlarında dolayı teşekkür ediyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

#10
Rica ederim Ferit abi , sevdiğim bi işlemci olduğu için disfonksiyonel çalışması yönündeki şikayetler dikkatimi çekiyor.. PicBasic gerçekten iyi bir derleyici , tabiiki daha iyileride var ama bugüne kadar ki tüm ihtiyaçlarımı eksiksiz giderdi .. Zaman zaman yabancı sitelerde Proton'un Makro çıktılarındaki yersiz satırlar tartışmalara yol açıyor diye ben hiç başlamadan geri dönmüştüm .. Eğer bu post'taki sorunun çözümü bizimle alakalı değilse bir şekilde güncellemeler vasıtasıyla bu tür sorunlar giderilebilir .. Ama şu kadarını belirtmek isterim ki , birgün gerçekten uğraşacak birşeyim kalmaz ve uzunca boş bir zamanım olursa oturup ASM üzerine uzmanlık kazanıcam :)

Burak
Ω Gens Una Sumus Ω

F®T

Gerçekten daha öncede bu tür bir kaç sorunum oldu protonda.Bir sürü emek boşa gidiyor sil baştan tekrar.Ama dönüp dolaşıp protonun kolay kısımlarına aldanıyoruz sanırım.Önceden proton daha iyiydi gittikçe hata fazlalaşıyor yada bana öyle geliyor anlayamadım.Velhasılı kelam sil baştan picbasic le tekrar yazıcam buna güvenemem. >:(
Tekrar sana ve ete hocama teşekkür ediyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

ETE hocam çok basit bir yere takıldım ki epey tırmalamama rağmen çözemedim.
sorunum 18F4520 nin PORTB ye ait 4-5-6-7 pinlere buton bağlayıp portb nin pulluplarını aktif ettim. amacım GND ye çekince butonun işlevini gerçekleştirmekti. ne var ki portb.4 girişine ne etsem kar etmedi, kızdım 10k pullup attım nafile pin sürekli kendisini 0 a çekiyor datasheetten baktım portb4-7 otomatik analog olarak ayarlanır POR  ve PBADEN i configre edin dedi translate ama config ayarından herşeyi ile oynadım çözemedim.
bari hocama sorayım yatayım dedim.
sizce neyi gözden kaçırdım gene nerede dikkatsiz davrandım?

ete

Bu işlemcinin B portunda analog olan pinler mevcut B.4 pinide bunlardan birisi. Bu pinlerin açılışta analog mu yoksa digital pinmi olacaklarına PBADEN biti karar veriyor. Buda Config3H registerinde yer alan bir bit olup bu bit OFF olarak ayarlanması gerekir.
Data sheet kendisi de PORTB pinlerini ayarlarken ADCON1 regsiterine $F yani 15 değerini vererek bu pinlerin tamamını digital yapılmasını öneriyor. Bu durumda yapman gereken şu;
CONFIG3H registerindeki PBADEN_OFF şeklinde ayarlanmış olacak.
ADCON1=%00001111 değer verilecek.
TRIS registerine uygun değer verilerek pin giriş yapılacak.
Bu portun pullup dirençleri INTCON2 registeri 7 nolu biti sıfır yapılarak aktif ediliyor.
Ete


Hattuşa

Alıntı yapılan: ete - 10 Aralık 2016, 09:33:59
Bu işlemcinin B portunda analog olan pinler mevcut B.4 pinide bunlardan birisi. Bu pinlerin açılışta analog mu yoksa digital pinmi olacaklarına PBADEN biti karar veriyor. Buda Config3H registerinde yer alan bir bit olup bu bit OFF olarak ayarlanması gerekir.
Data sheet kendisi de PORTB pinlerini ayarlarken ADCON1 regsiterine $F yani 15 değerini vererek bu pinlerin tamamını digital yapılmasını öneriyor. Bu durumda yapman gereken şu;
CONFIG3H registerindeki PBADEN_OFF şeklinde ayarlanmış olacak.
ADCON1=%00001111 değer verilecek.
TRIS registerine uygun değer verilerek pin giriş yapılacak.
Bu portun pullup dirençleri INTCON2 registeri 7 nolu biti sıfır yapılarak aktif ediliyor.
Ete



hocam tşk ederim tekrardan zira devremde adc okuma işlevi yoktu onun için adcon1 =0 dediğimden hata yapmışım.sayenizde bir başağrısı daha giderildi.

Powered by EzPortal