avatar_ete

16F628 - 16F628A işlemcisinin İncelenmesi

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

toprak

Devrenin resetlenmesini bir şekilde anlamaya çalışıyorum da picin durup dururken çıkış vermesini anlayamadım.
Yukarıda da sorunu biraz anlatmaya çalıştım. Sorun mclr mi emin değilim. Mantıken mclr den kaynaklı sorun olsa bile picin kendi kendine çıkış vermemesi lazım. Diye düşünüyorum.
 
   Yukarıdaki mclr çözümleri resetlenmeyi önlemek için anladığım kadarıyla. Benim yaşadığım sorun çok az olsa da picin kendi kendine çıkış vermesidir.
   Neden kaynaklı olabilir.

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

ete

Data sheetlerde verilen açıklamaya göre bir Pic işlemcisini ilk çalıştırdığınızda port pinleri rastgele değer alabilir.
Şayet aksine bir komut vermezseniz  örneğin PORTB.1 pinine bağlı ledin işlemci çalışır çalışmaz yandığını görebilirsiniz.
Bu tamamen rastlantıdır. Ancak 10 defa volatj verip kesin 10 unda da o led yanabilir.
Bu nedenle istemediğiniz sonuçlardan kaçınmak için Port pinlerine program açılırken değer verin (sıfırlayın)
Sıfırlama işini programın en başında yaparsanız bazen yine terslikler olabilir. En iyisi ortalarda bir yerde sıfırlama olmalıdır.
Böylece istenmeyen çıkış şekillerinden kaçınmış olursunuz.
MCLR pini bana şimdiye kadar bir olumsuzluk yaratmadı. Ancak Boden on - off şeklindeki sigorta ayrından çok dilim yandı diyebilrim. Özellikle röle veya selenoid kullanılan devrelerde boden (Brown out Reset) daima kapalı tutulmalıdır. Aksi halde söz konusu elemanlar anlıkda olsa voltaj düşümüne sebep olup işlemciye reset attırmaktadırlar. Bu şekilde pek çok olumsuz durumdan BOD_OFF yaparak kurtuldum.

Devrede 100nf ın sihirli bir etkisi olduğunu defalarca belirttim. Abuk subuk yada kafasına göre çalışan pek çok devre gördüm. 1 ad. 100nf besleme bacaklarına bağlayınca her şeyin süt liman olduğunu defalarcada gördüm.
Özellikle röle ve selenoid kullanılan devrelerde normal 7805 yerine daima LM2575 ile işlemci besleme voltajını elde ederek besledim. Bu sayede pek çok sorundan kurtulmuş oluyorum. Aynı devrelerde 7805 kullanıldığında yine reset sorunları baş göstermektedir.

Bunların hepsi tecrübe. Sizlerde uyun faydasını görürsünüz.

Ete

toprak

   Devrelerde 7805 kullaniyorum. BODEN daima kapali tutuyorum.
   Port pinlerini sıfırlamayı program başında yapmışım bahsettiğim devrede. Ortalarda derken pin ve değişken tanımlamalarından sonra mı demek istiyorsunuz. Ya da  asıl programın akışı içinde uygun bir yerde mi?
   
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ete

Bazen BASLA etiketinden hemen önce yaparsın. Ancak sistem açılıp BASLA satırına gelkinceye kadar bir de bakarsınki bazı pinler bir flash yapıyor yani önce high sonra low oluyorlar. Bazen bu sakınca doğrur. Bu durumda Port sıfırlamayı TRIS tanımalamalarından önce verip sonra tris tanımlamalarını vermek daha uygundur. Ben genellikle böyle yaparım.
Bir kaç defa bu şekilde yapmama rağmen gerçek devrede bu tanımı işlemcinin alamadığını fark ettim. Bunu da değişken tanımlamalarından hemen sonra portu sıfırlama komutu vererek aşmıştım. Ortalarda diye bunu kast ediyorum.

Ete


halilgaliç

benimde basıma su geldi.devrede 877 kullanmıştım ve B porttunla sistem çalıştığı anda role çektirmiştim.sonra bu pici söküp baska bi devrede kullanmak istedim bu devredede B portunu kullanmadım ve herhangi bir tanımlama yapmadığım halde B portu cıkış verdi.Sanki daha önceki bir programın son cıkısları bi yerde kalıyor.

toprak

PORT sıfırlama yaptığım halde şöyle bir sorun yaşıyorum. Devre normal olarak çalışıyor. Fakar enerjiyi kesip tekrar verdiğimde bazen yukarıda belirttiğim gibi bazı ayaklar çıkış veriyor. Vermemesi gerektiği halde.

pici değiştirdim. Farklı bir 16f628A da bu sorunu yaşamadım. Enerjiyi sık sık keserek deneme yaptım. Sorun çıkmadı.

Diğer sorun yaşadığım pici taktım. Yine aynı sorun devam ediyordu.

Bir picde sorun olmasının diğer picde sorun olmamasının nedeni ne olabilir. Merak ettim doğrusu.???
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

ete

İşlemciye voltaj verdiğiniz zaman Port pinleri rastgele değerler alırlar. Bu nedenledirki portu işe başlamadan evvel sıfırlamak gerekir.
Portların açılması için yeterli gecikmeyide (en azından 200 ms, ideali 500 ms) programın başına eklemeyi unutmayın.

16F628A yeni jenerasyon işlemcilerdendir. FArklı bir teknikle üretiliyorlar. 20Mhz'e kadar direk çalışırlar. Diğer gurup sonunda 04 yazanlar yalnızca 4 Mhz de çalışır.20 yazanlar 20 Mhz'e kadar çalışır. Bu kadar fark varsa elbette açılış da da aralrında fark olacaktır.
Daima A serisini kullanmayı alışkanlık edinin. Rahat edersiniz.
Ete

toprak

Program konfigurasyon ayarları PIC16F628A ya göre yazılmış. Bazen aynı programı PIC16F628 e de yüklüyorum.
Bunun bir sakıncası olur mu hocam?  Ben olmadığını biliyordum.

Ayrıca siz programlarınızda 500ms gecikmeyi nerede yapıyorsunuz. Değişken tanımlamarından sonra mı?

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

ete

Sakınca olmaması gerekir. Tüm register adresleri aynı.

Gecikmeyi değişken tanımlamasından sonra yapıyorum.

Ete

toprak

Konumuz 16F628A ile ilgili olsa da sormak istediğim birşey var.
Yeni nesil işlemci 16F1827 ve 16F1826 direkt 16f628 in geliştirilmiş hali mi oluyor.
Hiç kullanan oldu mu?

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

ete

Geliştirilmiş hali diye bir şey yok. Teknoloji geliştikçe işlemcilerde gelişiyor ve bir sürü yeni özellikler kazanıyorlar.
1827 de onlardan biri yeni nesil işlemci. Kılıf 628 ile aynı bacaklar aynı ama özellikler epeyce farklı.
İncelemek gerekir.
Ete

muyat

16f628a röle kontrolünde çok başımı agrıttı.Yaptığım röle kontrollü devrelerde yazılımda sorun yoktu ama 16f628a reset atıyordu hep.Üstelik boden_off da yapmıştım.İlk başlarda sorun yokken birkaç ay sonra pic sapıtmaya başlıyordu.Öncesinde bazen günde bir defa sapıtırken sonra bu sayı arttı.Acaba devrede mi sorun var diyerek devreyi değiştirdim.12f675 kullandım.Sonuç yine aynı.Devredeki iki röleye hükmedemiyordum.Ve bu sorun devre birkaç ay çalıştıktan sonra ortaya çıkıyordu.
Sonrasında geceli gündüzlü  çalışmalar yaptım.Ete hocadan destek aldım.
7805 yerine LM2576-5 kullandığımda 16f628a benım için ailemden biri gibi oldu.Üstelik pic beslemesini ayırmadıgım halde reset sorunu yok.
Hatta devre kartındaki boş yerleri şase ile bile kaplamadım.


toprak

#27
Genel olarak  ve PIC16F628A için sormak istediğim birşey acaba MCLR ucunu data girişi olarak kullanmak
mümkün mü?
Data girişi derken alıcı modülün bilgi ayağından yapılan girişi kastediyorum.
Normal 0 ve 1 olma durumunu kastedmiyorum.
Çok ihtiyaç olmadı ama merak ettiğim için sordum.
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

F®T

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

toprak

En çok kullandığım mikrokontrölör PIC16f628A.
Bazen yaptığım devrelerde istenmeyen çıkışlar olmuştu. Mesela led durup dururken yanıyordu.
Bunun üzerine çeşitli noktaları araştırdım. Konfigurasyon ayarlarından tutalım mclr yi pull-up yapmaya, 100nf kondansatör bağlamadan tutalım programda port sıfırlamaya kadar bazı tedbirler öğrendim.
Şimdi sormak istediğim soru şu;
Picin kullanılmayan bacaklarını boşta bırakmanın bir dezavantajı olabilir mi?
Kullanılmayan bacakları 10K direnç ile pull-up veya pull-down bağlamaya gerek var mı?
Kişi kesinliklerle başlarsa gideceği yer kuşkulardır, ama kuşkularla başlayacak kadar doygun ise kesinliklere ulaşır.

Powered by EzPortal