Pic programlayıcı programı yazan varsa 16F877A için CHIP ERASE komutu nasıl çalışıyor

karaapak

Profesyonel Üye
Katılım
2 May 2011
Mesajlar
1,932
Puanları
507
Yaş
36
Arkadaşlar elimdeki Pic16f877A ile diğer 16f877A yı programlıyorum, HV programming modunu kullanıyorum, programlanacak pic boş iken diğer picle programlama yapabiliyorum veya dolu iken silip programlama yapabiliyorum fakat programlanacak pic code veya data korumalı olduğunda pice silme veya yükleme işlemi yapamıyorum bunun için chip erase komutu kullanılıyor 16f87xA programming specification da belirtilenleri aynen uyguladım hataya sebep olabilecek eksik olduğu düşünülen birkaç kısımla ilgili nette biriki şey buldum onlarda dahilş olmak üzere 200 den fazla deneme yaptım bir haftadır gece gündüz CHIP ERASE komutunu çözmeye çalışıyorum fakat muvaffak olamadım bu işle uğraşmış olan varsa yardımlarını rica ediyorum tabiri caizse bu işi çözemezsem contayı sıyıracağım, kafayı yemek üzereyim durum bu derece kötü yani acil bir tavsiye istiyorum, yoksa elektroniği bırakıp doktora mı gözüksem ne yapsam.
 
2.5.2 ERASING CODE PROTECTED
MEMORY
For the PIC16F87XA devices, once code protection is
enabled, all protected program and data memory locations
read all '0's and further programming is disabled.
The ID locations and configuration word read out
unscrambled and can be reprogrammed normally. The
only command to erase a code protected PIC16F87XA
device is the Chip Erase. This erases program memory,
data memory, configuration bits and ID locations.
Since all data within the program and data memory
will be erased when this command is executed, the
security of the data or code is not compromised.

Devamı da var pdfde.. Bu arada 2 çeşit silme modu var.. Bunların min voltaj gereksinimleri farklı diye biliyorum.. Onları da kontrol edebilirsen iyi olur..

http://ww1.microchip.com/downloads/en/devicedoc/39589b.pdf
 
39589b 39589c Bütün programming specification ne varsa indirdim hatta türkçeye bile çevirdim, söylediğin kını en az 45 defa okudum hani belki birşey atlıyorumdur diye ama nafile şimdi 1 hafta daha geçmek üzere ve 100 deneme daha yaptım fakat sonuç aynı halen chip erase komutu çalışmıyor GüvTek ilgine teşekkür ediyorum birebir programlayıcı yaptıysan adımlar nedir ne uygulayınca çalışıyor ben nerde hata yapıyorum bunu öğrenmek istiyorum bakalım hayırlısı, aslında hiç cevap alabileceğimi ummuyordum ama konunun damarından bir cevap geldi bu güzel bir gelişme tekrar teşekkür ediyorum.
 
Yok programlayıcı yapmadım daha önce.. Sadece incelemiştim pdf yi.. Bu arada piclerle ilgili bi sorun da olabilir.. Pc deki programlayıcında kod korumalı olup rahatlıkla silebildiğin picleri dene istersen.. Bazıları pcde de silinmiyor..

C dili biliyorsan pickit 2 nin kaynak kodunu incele demek isterdim.. Ama az evvel baktım da baya karışık.. :) Alt versiyonları incele istersen, ırt zırt eklenmemiş hali ve daha sade bi hali vardır sanırım..
Unsupported Source Code

Bu pdfye de bir bak istersen.. Kod korumalıyı programlamak için alttaki gibi şeyler yazmış..
http://ww1.microchip.com/downloads/en/devicedoc/30277d.pdf

1. Execute a Load Configuration command
(000000) with a '1' in all locations (0x3FFF)
2. Execute Increment Address command
(000110) to set address to configuration word
location (0x2007)
3. Execute a Bulk Erase Setup1 command
(000001)
4. Execute a Bulk Erase Setup2 command
(000111)
5. Execute a Begin Erase/Programming command
(001000)
6. Wait 8 ms
7. Execute a Bulk Erase Setup1 command
(000001)
8. Execute a Bulk Erase Setup2 command
(000111)
 
İkinci linkide zamanında indirip incelemiştim ICSP yi anlatıyor benim uğraştığım şey değil ama alaklı tabiki, fakat içinde benim istediğim 16F877A ile ilgili birşey yok, ve anlattığı piclerin program algoritması tamamen farklı Pic16F87xA da bulkerase setup 1 bulkerase setup2 yok öyle olmasına rağmen kutucuk içerisindekine benzer algoritmayıda denedim fakat sonuç alamadım. İlk linkteki source kodlar belki işe yarayabilir ama c den zerre anlamıyorum bende pickit 2 nin hex dosyasını disassembler ile asm ye çevirip incelemeye çalışma gafletinde bulundum az kalsın dünyada olduğumu unutacaktım böyle birşeyi düşündüğüm için bile kendime şaşırıyorum!!! Aklıma son çare 16F877a yı elimdeki pickit2 programlayıcıya bağlayıp chip erase ile silerken bu esnade ıcsp ile MCLR Vdd Vpp SDATA ve SCLOCK pinlerini logic analyzer ile gözlemlemek olacak bu epey uğraştırır ve kesin sonuç vereceğide yok ama bakalım biri bir yol gösteremezse sonum bu olacak gibi.
 
877 ile 877a nın programlama algoritmaları farklı mı? Bilmiyordum.. Verdiğim linkte 877 vardı ama.. 877A dan bahsetmemiş.. Hex i yorumlamayı göze aldıysan, logiz analyzer çocuk oyuncağı senin için.. :)
 
Evet algoritmalar tamamen farklı belki benzer birşey bulurum diye birkaç farklı picin de prog. specs. indirip bakmıştım ama nafile, logic analyzer bende yok belki hocama söyleyip okulda kullanabilirim artık bu günlerde izin verirlermi bilmem. Birde yorumlaması biraz zor olabilir, doğru bilgiyi almak doğru yorumlamak lazım yani doğru sonuç elde etmek zor olacak birde yabancı sitelerde microchip forumda konuyu açtım biraz cevap var ama bu tip bilgileri pek paylaşmıyorlar bakalım belki birşeyler çıkar. Bu arada pic programlayıcı programı yazan hiç Türk yok herhelde yada ben rastlayamadım henüz.
 
Kod koruması olsun ya da olmasın , erase komutu siler.
Silmiyorsa silemiyorsa sorun programlayıcındadır.
Pickit2 ve 3 siler ! ama iyi yapılmamış clone iseler silemeyeni vardır.
Pc usb portundan beslemelerde şikayet duydum ama pek inandırıcı değildi.

Pickit3 orijinal öneriyorum.
 
Kazımugur bey ben programlayıcı yapmaya çalışıyorum şu anda programlayıcı bilgisayar olmadan çalışıyor hoş programlayıcı demek pek doğru değil şuanda sadece bir led yakacak programı bir 16f877a il diğer 16f877a ya yüklüyorum problem yukarıda anlattığım gibi CHIP ERASE komutu microchip firmasının yazmış olduğu programming specificationsta sorun var bu bazı yabancı programcılar tarafından bilinen ve microchip e bildirilmiş bir konu fakat ben microchip in bu konuda bir açıklamasını bulamadım yada en azından sorunun tam olarak nasıl giderildiği ile ilgili detaylı bilgi bulamadım.
 
Code protect yazılmış pic silmek için erase komutu yeterlidir.
Yazarken de silerken de yüksek gerilim "12-13.5V" gerekir.
Eeprom yazmak/silmek için şarttır.
Usb ve ya harici 5V ile beslenen pic programlayıcılar bu gerilimi kendileri üretir.
Bunu yaparken ve ya silerken , yazarken uyguladıkları gerilimi uygulayamazsa silemez !
Orijinale uygun kloneler siler .
Başarılı bir şekilde yapılmış her programmer siler , Icprog brenner vsvsvsvs...
Pickit 2-3 ve cloneleri artık bol ve ucuz , o yüzden başka tercih akla yatkın değil....
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Geri
Üst