avatar_fatih88

16F88 Ara sıra çalıışmıyor !!!!

Başlatan fatih88, 03 Mayıs 2020, 19:36:12

fatih88

Device 16F88
Config HS_OSC,WDT_OFF,LVP_OFF,CP_ALL,BODEN_OFF,PWRTE_ON,CPD_ON,MCLR_OFF

arkadaşlar ticari projemde dtmf özelliğini kullanmak için proton basıcte program yazdım lakin basıc diline pek hakim değilim
verici kısım 16f88 ile protonda yazdım alıcı kısımı 16f628a e ccs c de yazdım alıcıya güc verildiğinde bazen çalışmıyor bunun nedeni config1 registerindeki pwrte biti gibi geliyor sorunun kaynağı ama fuse ayarında bu ayarı açtım PWRTE_ON diye başka bunu nerden yapabilir genelde projelerimde mcu kitlendiğini takip ettiğim timer ile kurulan blink ledi koyarım mcu kitlenirse bu led ya yanık yada sonsuza kadar sönük kalıyor
vericiye gerilimi verdiğimde bazen mcu hiç bir faliyet göstermiyor
alıcı 16f628a sorunsuz calışıyor demekki sigorta ayarlarında bir hata yapıyorum ki 16f88 düzgün çalışmıyor
hayırlı iftarlar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

İlyas KAYA

Wdt on yapmazsanız wdt yi manüel olarak kontrol etmeniz gerekir. WDT on olarak ayarlayın. Osilatör olarak HS seçmişsiniz kaç mhz osilatör kullanıyorsunuz? Dahili 8 mhz yeterli gelmiyor mu ?
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

fatih88

20mhz osc kullanıyorum dtmf komutu kullandığım için
Pbp direk config1 registerine ulaşamıyorum zaten pwrte açılışta aktif oluyor galiba çok anlamış değilim bi optimizasyonsuzluk var ama anlayamadım
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

fatih88

Ilyas bey wdt kullanmak mantıklı ama pbp ben wdt sıfırlamayı bilmiyorum belirlenen sürede benim wdt yi silmem gerekiyor silemez isem wdt kendisi reset atması gerekiyor daha öncesinde açık unutmuşum wdt yi sürekli reset atıyordu
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

ete

#4
Birde aşağıdakini dene bakalım.
Config HS_OSC , WDT_OFF, PWRTE_ON, MCLR_OFF , BODEN_OFF, LVP_OFF, CPD_OFF, WRT_PROTECT_OFF , DEBUG_OFF, CP_OFF, FCMEN_OFF, IESO_OFF

Ara sıra çalışıp arada bir çalışmaması Kristal den de olabilir. HS_OSC parametresi 8Mhz ve üzerisi için kullanılıyor. Sen kaç Mhz de çalıştırıyorsun.?
Kristal bacakları 22pf seramik kondansatörle GND ye ayrıca bağlanmalıdır. Sanki osilatörün rezonansa gelmiyor gibi bir his var içimde. Bazen alıyor bazen almıyor sanki.

Ete

fatih88

Erol abi 20mhz kullanıyorum programa 20mhz olduğunu tanıtıyorum pbp define osc 20 diyerek protonda ise declare xtal 20 diye tanımlanıyor 22pf kondansatörler şaseye bağlı kristal ve kondansatörler mcu ya en kısa mesafede
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

ete

Son soruyuda sorayım. İŞlemci besleme bacaklarına 100nF (Seramik mümkünse) bağladınmı?
Bunuda bağladım diyorsan o işlemciyi değiştir bence. Başka hiç açıklaması yok bu olanın.
Benim başıma hiç gelmedi bu tür şeyler. Gelenleri ise 100nf bertaraf etmişti.
Başkada söyleyecek sözüm yok maalesef.
Ete

fatih88

En kısa yoldan olsun diye pcb ye çizmeyip alttan lehimledim seramik mi bilmiyorum ama tantalyum kondansatörlerin dış kılıfının aynısından 100nf bağladım projeyi denemeleri için verdim lakin şarj kısmını halledemedim hocam
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

İlyas KAYA

WDT açıkken reset atıyor ise bir sorun var demektir. Program biyerde kilitleniyor yada kısır döngüye giriyor yada stack taşması meydana geliyor olabilir.
Aynı şekilde osilatör eğer kilitlenirse yine wdt devre ye girip reset atıyordur.
Yazılımı görmek gerekecek.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

fatih88

Ilyas bey bir yanlışınız olmasın benim bildiğim wdt ayarlanabiliyor yanlış hatırlamıyorsam 4 mhz max süre ayarı 18ms olması gerekiyor bu süreler ayarlanabiliyor misal 18ms içerisinde ben manuel olarak wdt yi sıfırlamaz isem wdt 18ms sonunda mcu ya reset attırır yanlışımda olabilir iddaa etmiyorum belki ben yanlış hatirliyordurum
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

İlyas KAYA

WDT normalde bir sayactir. Açık olduğunda her komut icra edildiğinde sayaç sayar. Eğer bir sorun var ise bu sayaç taşar. Taşma olduğunda ise mcu yu resetler.
WDT siz de ayarlaya bilirsiniz tabiki ancak kontrol sizde olur.

Şimdi sizin söylediğiniz şey üzerinden gidiyorum. Dediniz ki wdt yi açınca sürekli resetleniyor.
Demek ki program da bir yerde resetlenmeyi gerektiren bir durum oluşuyor. Siz wdt yi kapattığınız için artık resetlenmiyor ama takılıp kalıyor
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Dtmf

Daha once bi calismamda pic her enerji verdigimde belirli belirsiz surelerde kendisine reset atiyordu mclr ucundaki 10k direnci 4.7 yaptim hic bir sorun kalmamisti.daha once hep 10k takardim calisirdi.bazen ufak seyler buyuk sorunlara neden oluyor.

İlyas KAYA

Alıntı yapılan: Dtmf - 05 Mayıs 2020, 23:06:31Daha once bi calismamda pic her enerji verdigimde belirli belirsiz surelerde kendisine reset atiyordu mclr ucundaki 10k direnci 4.7 yaptim hic bir sorun kalmamisti.daha once hep 10k takardim calisirdi.bazen ufak seyler buyuk sorunlara neden oluyor.

Mclr bacağına aynı zamanda 100nf kondansatör ile pull-down yapmanız gerekir. Tabi mclr aktif ise.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Powered by EzPortal