C

16f628a; programlanıyor, okuyup silebiliyor. Ama çalışmıyor

Başlatan cherhem, 02 Mart 2012, 12:30:35

cherhem

merhabalar.  16f628a'yı programlıyorum  okuyup silebiliyorum, doğruluyorum. Ama çalışmıyor.  aynı programı 16f84a'ya atıyorum çalışıyor. bilgisayar psu'i üzerinden beslerken devre çalışır vaziyette lcd bağlarken sadece + ve - yi kısa devre ettiği hatırlıyorum(ekleme: pic'te - bağlı + takılı değildi. yani pic'te elektrik yoktu.). ondan sonra çalışmaz oldu. ne program atarsam atayım çalışmadı. kaç defa sildim yine olmadı. başına böyle bişy gelen arkadaş varmı acaba?

winpic ile denedim sonuç aynı.
winpic800 ile denedim sonuç aynı.

fuse ayarları hep kullandığım daha önceleride kullandığım ve çalıştığından emin olduğum program;

Device=16F628A
@ CONFIG_REQ
@ __config CP_OFF & WDT_OFF & PWRTE_off & MCLRE_OFF & INTRC_OSC_NOCLKOUT & LVP_OFF & BODEN_OFF

TRISA = %00000000
TRISB = %00000000
CMCON=7

Xtal=4

PORTA = %00000000
PORTB = %00000000


dongu:

    PORTA = %11111111
PORTB = %11111111

DelayMS 500
PORTA = %00000000
PORTB = %00000000
DelayMS 500
   


GoTo dongu

16f84a da sadece xt olarak değiştirip denedim çalışıyor.   hata sizce nerede? pic mi bozulmuş? bozulduysa neden yazıp silebiliyorum?

mg1980

osilatör ayarlarından yazmış olduğunuz devrede de aynı mı? Bakmakta yarar olabilir.

ete

İşlemciler bin türlü bozulabiliyor. Örnekler vereyim. Bu örnekler başıma fiziki olarak gelmiş olaylara aittir.
- Adc pini olan bir işlemcinin yalnızca ADC girişi bozulabiliyor. Aynı pini Digital olarak kullanıca sorun olmuyor (16F877)
  Bu işlemcide programlanırken hiç bir sorun çıakrtmıyordu ama çalışırken ADC çevrimini yapamıyordu.
- Bir işlmecinin yalnızca bir pini bozulabiliyor. Diğerleri sağlam kaldığı için buda programlanırken sorun çıkartmıyordu. Ancak pin ne input nede output olarak çalışamıyor idi.
Örnekleri çoğaltmak mümkün ama özellikle şu konuya ilginizi çekmek isterim.
Mosfet yapıda olan Pic pinleri, besleme voltajının üzerinde bir voltaj görürse hemen bozuluyorlar. Bozulma yalnızca pinin çalışmaması şeklinde olduğu için programlamada sorun çıkarmıyorlar. Genellikle ters voltaj verilmesi işlemciyi anında götürmektedir. Ama bu tür bozulmada programlamada iflas ettiği içina nlamak kolay oluyor.
Sonuç olarak işlemcinin başına ne geldi ise bozulmuş olabilir. Anlamak için pinleri tek tek test eden bir program yazabilir ve onu deneyebilirsin.

Ete



cherhem

@mg1980, osilator ayarları evet aynı. farklı ayarlardada denedim.

@ete, haklısınız. başka bir pictede sadece bir pin'in bozulduğuna bende şahit oldum. tek tek  deneme yapmadım ama programda hepsini denemiş oluyorum. hiç bir sonuç yok. pic meftaha yani :)   acaba programlayıcı etki edermi? son yazdığım program interrupt'luydu ve ben kesme anında Disable yapmamıştım. bu sorun yaratırmı? bi şekilde programlarken orayı es geçiyor olma ihtimali varmı?

ete

JDM tipi seri programlayıcılar, şayet Kod korumasını aktif edersen yalnızca bir kere pici programlayabiliyorlar. Çünki aynı pice ikinci defa program atmak için ekstra akım gerekiyor ve seri portdan beslenen bu programlayıcılar gerekli akımı sağlayamadıkları için pic in kod korumasını silemedikleri için pici programlayamayıp programlama hatası verdiriyorlar.
Sendeki olayın sebebi buda olabilir. Tabiiki kod korumsaını akti etmiş isen bu dediğim geçerli.

Bu konuyu uzatmanın bir anlamı yok zaten. Seri port programlayıcısı alacaksın ve o picleri yeniden deneyeceksin.

Bu arada hemen belirteyim. Programların picin bozulması üzerine bir etkisi yoktur ve olamaz. Yalnızca programlama ve yanında donanım özelliği nedeni ile programlanan pic hemen çalışır ise bazen benzer olaylar meydana gelebiliyor. Mesela MCLR iptal ise programlandıktan sonra pic başlıyor çalışmaya ve o anda programlayıcı üzerinde hala yüksek programlama voltajı var ise pic bozulabiliyor. Ama senin kullandığın programlayıcı için bu olay geçerli değil.

Ete

Powered by EzPortal