avatar_ete

16F628 - 16F628A işlemcisinin İncelenmesi

Başlatan ete, 28 Ağustos 2011, 20:45:21

ete

Ortada somut bir kullanım şekli yok. Ben hep boşta bırakıyorum.
Kimisi GND ye çekiyor. Kimisi bütün boştaki bacakları giriş olarak ayarlayıp bırakıyor.
Sende kafana göre bir yol bul istersen.
Ete

F®T

ete hocaya katılıyorum dediği gibi herkes farklı yöntemler kullanıyor.ama ayaklardan tehlike olmuyor genelde tehlike besleme ve yanlış pcb tasarımı oluyor.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

toprak

Hocam teşekkürler.
PIC16F628A da RA4 ayağı çıkış olarak kullanılacaksa pull-up yapmak gerekiyor deniliyor.
Sorum şu. Biz o baçağı kullanmıyorsak ama Trıs ayarlarında da 0 olarak ayarlamışsak bunun bir sakıncası olabilir mi?
Kullanmadığımız için pull-up da yapmıyoruz. Dolayısıyla 0 olarak yani çıkış olarak ayarlamak hata olabilir mi.?
Bilmem anlatabildim mi?
Yani kullanmıyor isek RA4 bacağını da 10K ile artıya mı çekmek gerekir.
Yoksa her zaman yaptığımız gibi boş mu bırakmak gerekir.
Picin çalışmasına etkisi olur mu diye düşünerek sordum bu soruyu.
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ete

Kullanmadığın bacak için bir şey man gerekmiyor. RA4 bacağı Open Collector dur. LOW çıkartır ama HIGH çıkartamaz. Çünki o sinyali çıkartacak ilave transistörü yoktur. Bu özellikle yapılmıştır. Çıkışı istediğin gibi kullanabilesin diye.
Yalnızca kullanacağın zaman Lojik olarak HIGH da alabilmek için Pullup direnci bağlanmalıdır o pine. Hepsi bu.
Ete

toprak

Şimdi biraz daha iyi anladım hocam. Picin çalısmasında bazen karşılaştığım istikrarsizliklerin nedenini çözmeye çalışıyorum.
Forumlarda araştırdığımda mclr ile ilgili ayarlarında etkileyebileceğini söyleyenler olmuştu.

Mclr konusunda daha önceden de sormuştum. Yazılanları da okudum. Bazıları kullansa da kullanmasa da bu bacağı 4k7 veya 10K ile pull-up yapıyor. Mclr bacağı off ise sadece giriş olarak kullanılabiliyor.
 
Mclr yi off olarak seçmişsek ve giriş olarak kullanmayacaksak tris ayarlarında 1 olarak belirtmek veya 0 olarak belirtmek farkeder mi?  Ben şimdi 1 olarak belirtiyorum.
   Yoksa; MCLR'yı kullanmıyorsak ON olarak seçip pull-up yapmak mı daha iyi?
Ben MCLR bacağını kullanmıyorsam OFF yapıp 10K ile artıya bağlıyorum. TRIS ayarlarında 1 olarak belirtiyorum. Şimdilik bir terslik görmedim picin çalışmasında.
   

Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ete

#35
MCLR bacağı ile ligli benim başıma hiç sorun gelmedi. Ama gelenleri duyuyorum. Kendi kendime vardır başka bir sebebi deyip geçiyorum. Sonuçta bu sorunun cevabı mantıksal olarak verilebilir.
MCLR denetleyicinin reset bacağıdır. Seçimli olarak giriş pini, şeklinde de kullanılması mümkün. Her iki şekilde de usulüne uygun kullanırsan bir sorun olacağını sanmıyorum. Daha öncede söyledim. Kafana göre en olumlu sonucu aldığın şekilde kullanmaya devam et.
Benim kullanım şeklimde MCLR yi off yaparsam bir şey bağlamam oraya. Zaten giriş yaparsamda mutlaka bir şey bağlarım.
Temel prensibim budur.

Pic lerde gördüğüm en temel istikrarsız çalışma sebebini besleme bacaklarına bağlanmayan 100nf dan dolayı gözlemledim. Abuk subuk çalışan bir sürü pic gördüm. Sebebi 100nf ın olmaması idi. Bağlayınca her şey düzeliyor.

Ete

toprak

100 nf'ların olmaması derken bozuk olanlarına da rastladınız mı hocam. Beslemese 100nf kullanıyorum. Hatta regule çıkısına da 100nf bağlıyorum.
100nf 'lar bozuk mu diye hiç bakmadım hocam. Belki de sebebi oydu picin istikrarsizliğinin.
Hocam Mclr yi off olarak kullandığınızda giriş olarak kullanmayacaksanız trıs ayarlarında 0 mı 1 mi ayarlıyorsunuz.
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ete

#37
BUnuda sorma artık. Tris biti 1 ise o pin giriştir. Bit sıfır ise o pin çıkıştır. Ben çıkış bırakıyorum.
Ama madem çıkış olmuyor o halde giriş bırakmak daha doğru olurdu. Ama dikkat etmiyorum işte.
Sen giriş bırak.

Ete

toprak

Teşekkürler hocam. MCLR zaten çıkış olarak ayarlanamıyor. O yüzden sordum hocam.
Çıkış olarak ayarlanamadığı için trısi 0 bırakmak yanlış olur mu merak ettim.
Önemli değilmiş.
Tekrardan cevap için teşekkürler hocam.
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ilkerovski

selam arkadaşlar..aşağıdaki programı hex e çevirirken sorun yaşıyorum..cmcon komutunun olduğu satırda hata veriyor..sorunun ne olduğunu anlayamadım yardımcı olabilecek var mı?.
#include <pic.h>
#include <delay.c>
#include <lcd.c>
#include <stdio.h>

//Konfigurasyon ayarlari
__CONFIG(WDTDIS&LVPDIS&PWRTEN&XT);

// Reed anahtar RA0'a pinine bagli
#define SW RA0

// Global degiskenler
unsigned char kontrol=0;
unsigned char sonuc[]="                ";
unsigned int CX;
float pi=3.14159, r=0.0022; //Türbin yaricapi

//---- TIMER kesme alt programi -----
void interrupt kesme(void){
CX++;
if(CX>10000)kontrol=1;
   
T0IF=0; // Bayragi temizle
TMR0=131; // TIMER'i tekrar yukle
}

//--------- LCD alt programi----------
void LCD_yaz(void){
float hiz;
unsigned int hiz2;

lcd_clear(); // LCD'yi temizle
hiz=2*pi*r*10^(-3)/CX; // m/sn cinsinden
hiz2=(int)hiz; // hiz degerini hesapla

lcd_goto(0x00); lcd_puts(" AKISKAN HIZI ");

if(kontrol==0){ // Sonucu LCD'ye yazdir
sprintf(sonuc+3,"%d m/sn",hiz2);
lcd_goto(0x40); lcd_puts(sonuc);
}

else{ // Türbin duruyorsa Hiz=0 yazdir
lcd_goto(0x41); lcd_puts("*** HIZ=0 ***");
}
   
}
//----------- ANA PROGRAM ------------

main(void)
{
          
TRISA=0x01; // Port A'nin ilk pini giris 
TRISB=0x00; // PortB'nin hepsi cikis
CMCON=0x07; // PortA sayisal giris
PORTA=0; // Baslangic durumu ayarlari
PORTB=0; 

// LCD islemleri
DelayMs(250);
lcd_init();
lcd_clear();
lcd_write(0x0C); //imleci gizle
lcd_goto(0x00); lcd_puts(" AKISKAN HIZI ");

// TIMER islemleri
T0CS=0; // Dahili clock
PSA=0; // Prescaler TMR0 icin ayarli
PS0=0; PS1=1; PS2=0; // Oran 1:8
ei(); // Butun kesmeler etkin
T0IE=0; // Baslangicta TIMER pasif
T0IF=0; // Bayrak temizle

// Hiz olcum islemleri
for(;;){

CX=0; kontrol=0;
   
while(SW==0); // Giris 0 ise bekle
TMR0=131; // 125 sayim (256-131=125)
T0IE=1; // TIMER baslat
while(SW==1); // Giris 1 ise bekle
while(kontrol==0){if(SW==1)break;}

T0IE=0; // TIMER'i durdur
LCD_yaz(); // LCD alt programina git

DelayMs(250); // 250 ms bekle
while(SW==1);

} // islemleri tekrarla
} // Programin sonu

sinancnc

özellikle acemi kullanıcıların başlaması gereken pic 16f628a diye düşünüyorum ben 16f877a başladım hem yakdığım zaman daha fazla maliyet oldu hemde mclr ve 22 pf Kristal sorunlarıyla uğraştım durdum
Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

kgguler

#41
Ete hocam öncelikle yeni yılın tüm ülkemize hayırlar ve mutluluklar getirmesini diliyorum.Sorum şu:PIC16F628 04 ile PIC16F628A arasında 2 kat fiat farkı var.Fonksiyon olarak aralarında bir fark var mıdır?Hangisini kullanmak daha uygundur.Siz A serisini tavsiye ediyorsunuz.A olanın fiatı 3.5 tl civarı diğeri 7 tl.16f84 ile yaptığım devreyi 628 A ile konfigüre ettim ucuza çıksın diye ancak bir süre sonra pic beslemyi 3 volta indirmiş (Aşırı akımdan) ve sistem çalışmıyor.Aynı devreye f84 taktım sistem normale döndü.Aşağı yukarı 30 adet f628A da bu başıma geldi.Şimdi cesaret edip f628 akullanamıyorum.İlkel sayılsa da f84 e devam diyorum.Ne önerirsiniz.4 Mhz xtal kullanıyorum.

ete

16F628A yeni teknoloji ile üretiliyor. O nedenle fiyatı daha ucuz. A olmayan seride fire oranı yüksek sanırım ki fiyata yansıyor bu.
A olmayan seride çalışma frekanslarına göre satılıyor entegre 04P 4 mhzlik 20 mhzlik gibi. AMa A serisi tamamı 20 Mhz de çalışabilir. Bu seride frekans ayrımıda yoktur. Pickit2 programlayıcıya taktığın zaman uzunca bir programda da hemen farkı görebiliyorsun.
A serisi 2 sn de programlanırken aynı program için A olmayan seri 7-8 sn sürüyor. Bu nedenle A serisinden şaşma derim.

Yaşadığın olay bir tesadüf  veya  pisikolojik bence.

Ete

zeus48

Hocam mrb. 16f628 için 3v-5.5 v arası sorunsuz çalışıyor demişsiniz.  Ben 3.3 volta çalıştıramadım
araştırdım  ancak 16LF628 serisinin 3 voltta çalıştığını okudum . Siz 628 'i 3 volta çalıştırdınızmı ?

ete

A serisini çalıştırmıştım. Bundan eminim çünki bir sensör kullanmıştım oda 3,3V ile çalışıyordu. İKisi aynı olsun diye 3,3V ile çalıştırmıştım.

Data sheet şöyle diyor;
- LF serisi,  min 2,0V maksimum 5,5V
- F  serisi, min 3,0 V maksimum 5,5V
Bu verilere göre çalışması gerekir.
Çalışmıyorsa demekki bunlarında patates baskılıları var her halde demek lazım.

Ete

Powered by EzPortal