Pic'e ilk enerji verdiğimde portları Low olarak başlatmak

Başlatan bimühendis, 07 Aralık 2017, 10:05:55

bimühendis

İyi günler ,
Pİc18f46k22 ile kurduğum bir devreye ilk enerji verildiğinde bütün portları 0 yapmama rağmen high olarak görüyorum Bu neden kaynaklanabilir bir bilginiz tecrübeniz varmıdır?Tris ve portayarlarım aşağıdaki gibidir;

            TRISA = %11111111
            TRISB = %00000010
            TRISC = %10101011
            TRISD = %10001001
            TRISE = %00000111
            ANSELA     = 0
            ANSELB     = 0
            ANSELC     = 0
            ANSELD     = 0
            ANSELE     = 0
            ADCON1     = ADCON1 & %11110000
            INTCON2.7 = 0
            PORTA=0
            PORTB=0
            PORTC=0
            PORTD=0
            PORTE=0

mehmet

Sıralamayı değiştirseniz?

PORT / LAT
ANSEL
TRIS
bu şekilde deneyiniz.

Kaynak : DS41412F-page 135
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

Burak

Portlar ilk baştan giriş olarak açılıyor .. Eğer pull-up başlangıç koşullarında devredeyse (Weak Pull-up - WPU Registerini kontrol ediniz) bu portun yüksek empedans ama çıkışında sallanan (floating , VDD/2) bir gerilim çıktısı değilde , direkt Vdd gerilimini görmenize neden oluyor , O yüzden

*WPU devre dışı bırakılmalı ,
*LAT Register ile başlangıç voltajı ayarı yapılmalı ..
*PORT register ile okunup LAT ile ayarlanan seviye kontrol edilmeli (Ayarlar doğrulanana kadar while döngüsünde tutulmalı)
*Arkasından TRIS registerda sıfır ataması ile pinler çıkış olarak ayarlanmalıdır ..

Burak
Ω Gens Una Sumus Ω

bimühendis

Mehmet bey söylediğiniz adımları yaptım ancak olmadı burak bey WPU derken ilk defa duydum biraz açıklayabilir misiniz ?

mehmet

Sizin verdiğiniz blok bu şekilde. Çıkış olanların
hepsi LOW seviyede.

 
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

Burak

Alıntı yapılan: bimühendis - 07 Aralık 2017, 13:48:20
Mehmet bey söylediğiniz adımları yaptım ancak olmadı burak bey WPU derken ilk defa duydum biraz açıklayabilir misiniz ?

Weak Pull-Up register diye aratırsanız göreceksiniz datasheet içerinde .. Pull-Up , Pull-Down nedir araştırınız.

Burak
Ω Gens Una Sumus Ω

ete

Genel olarak pic pinleri rastgele açılma meyilindedir.
Programın en başına yazdığınız portx=0 komutları portu low a çekmekte geç kalıyorlar.
Çoğu zaman şahit olduğum şekilde port sıfırlama komutuna rağmen pinlerden bazılarının high olarak açıldığını görebiliyordum. Bir sürü şey denedim sonunda en başarılı yöntemin değişken tanımlamalarından hemen sonra yeniden port sıfırlama komutu verip ardından 500 ms lik açılış gecikmesi vermek olduğunu gördüm. Bir kaç defa da başlangıçta sorun çıkaran portu başlangıçta giriş olarak ayarlayıp aynı anda dahili pullup var ise onu iptal edip açılış gecikmesinden sonra pinleri normal şekline çevirmiştim.
Ete

bimühendis

Verdiğiniz yanıtlar için çok teşekkür ederim ancak hala sorunu çözemedim söylediğiniz adımları da yaptım ete hocam ancak hala olmadı inşallah en kısa zamanda çözerim

F®T

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

Powered by EzPortal