"Hex file loaded is larger than device" hatası

Başlatan _MeRKeZ_, 11 Eylül 2012, 14:38:41

_MeRKeZ_

Merhaba arkadaşlar,

Pickit 2 yardımıyla Pic 16f87x deneme kartını programlamaya ICSP üzerinden programlamaya çalışıyorum. Programlamak içinse pickit 2'nin kendi programını kullanıyorum. Cihazları birbirine bağlayıp import hex dediğimde yukarıdaki hatayı alıyorum. Buna rağmen, yazdır dediğimde ise sıfıra bölünme hatası alıyorum. İnternette araştırma yaptım aynı sorun yaşanmış fakat ben bu sorunu çözmeyi başaramadım. Kodu ve hatalarla ilgili resimleri ekliyorum.



#include <16f877.h>   
   
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)   
#use fast_io(b) 

void main ()
{   
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);     
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);     
setup_adc(ADC_OFF);             
setup_CCP1(CCP_OFF);           
setup_CCP2(CCP_OFF);       
     
set_tris_b(0x00);   
output_b(0x00);           
   
basla:               
output_high(pin_b0);     
delay_ms(500);       
output_low(pin_b0);   
delay_ms(500);         
goto basla;         
   
}














rexo

şöyle dene birde istersen,

dosyanızı import edin sonrada export  basıp kayıt edin edin ondan sonra yükleyin ,

manuel işlemciyi secmisiniz buradaki kutucugu tıklayıp işlemcinizi bulup tıklayın

kolaygelsin

_MeRKeZ_

Hocam benim cihazım deneme kartı olduğu için listeden Pic 16f877'yi seçip yazdır dediğimde cihaz bulunamadı diyor

ete

Pickit2 mutlaka işlemciyi gormesi ve tanıması gerekir aksi halde programlama yapamaz.
Bağlantılarınızı yad işlemciyi kontrol edin.
Ete

_MeRKeZ_

Ete hocam,

Deneme kartını taktığım zaman bu cihaz otomatik tanıma grubunda değil diyor. Bağlantılarda gördüğüm kadarıyla bir sıkıntı yok ICSP üzerinden bağlıyorum. Üzerinde yazanları aynen birbirine bağlıyorum. (Örneğin: Vpp Vpp'ye olacak şekilde)

onurinci

pickit hata değilde bir uyarı veriyor sarı renkli bantta bu hex dosyası bu işlemci için büyükmü diyor acaba?


ete

#6
İkaz'ın türkçesi, bu hex dosyası kullanacağınız işlemci için büyük diyor. Ancak ortada seçilmiş işlemci olmayınca elbette hangi dosyayı yüklesen büyük gözükür. Bu nedenle sorunu orada arama bence.
Cihaz üzerinde bir işlemci takılı olması gerekir ve Pickit2 de ilk açıldığında bu işlemci ile birlikte açılmalı ve ekranda üstte solda takılı işlemcinin adı çıkmalıdır. Elbette bunun içinde bir takım şeylerin yapılması gerekebilir.
Normal şartlarda şayet PC , Pickit2 yi görmüyor ise ve sende arayüz programını yüklemiş isen kırmızı bir bant içinde şu mesaj çıkmalı,
"PicKit2 not found. Check USB connections and use Tools->Check Communications to retry."
Cihaz bağlı olmasına rağmen bu mesaj çıkıyor ise ortada bir bağlantı sorunu var demektir. Çıkmıyor ise ayarlarına bakmamız gerekiyor. Onuda şöyle yapalım. PC aleti görüyor ise şu ikaz çıkar ikaz demeyelimde ibare diyelim.
"PicKit 2 connected xxxxxxxx."
Üstte yer alan menülerden "Programmer" seçeneğini seç ve açılan menüden altta yer alan ,
"Manual Device Select" seçeneği şayet seçili ise oradaki seçimi tıklayarak iptal et. Seçili kalırsa PicKit2 takılı işlemcileri otomatik görmez.  Seçimi kaldırdıktan sonra, Tools menüsünü aç ve Check Communication seçeneğine tıklayarak takılı işlemcinin görülmesini sağlamaya çalış.
Bazı pic işlemcileri otomatik görülecek şekilde üretilmemişlerdir. Hangileri olduklarını bilmiyorum. Belkide kullandığın işlemci bu sınıfta olabilir. Şayet otomatik gördüremiyor ise bu sefer, Manual Device Select seçeneğine işareti koydur. Sonra  "Device Family" seçeneğini aç ve orada yer alan başlangıç isimlerinden kullandığın işlemciyi seçmeye çalış. Seçtikten sonra Hex dosyasını yükle ve programlamaya çalış.
Tabiiki sorunun kaynağı ICSP terminalinde bağlantıların yanlış yapılmasıda olabilir.
1. Nolu pin Vpp/MCLR pini dir. Bu pinden programlama voltajı verilir. Pinin devamoını kontrol edersen işlemcinin MCLR pinine bağlı olduğunu görebilirsin. Buradan kontrolü yapabilirsin.
2. VDD yani +5V uygulanan pindir. Buda işlemcinin Besleme pinina bağlıdır. 18 pinli işlemcilerde 14 Nolu pindir bu.
3. VSS yani GND pinidir. İşlemcinin GND pinine bağlıdır. 18 pinli işlemcilerde 5 nolu pindir.
4. ICSPDAT/PGD pini yani DATA pinidir.  Pek çok pic işlemcide bu pin PortB.7 pinine bağlıdır. Buradan kontrol edebilirsin.
5. ICSPDAT/PGC pini yani CLK pinidir. Pek çok işlemcide bu pin PortB.6 pinine bağlıdır.

Bu bağlantıları kontrol etmende yarar var. Şayet doğru ise diğerlerini kontrol etmen gerekir.

Bütün bu açıklamalara rağmen hala sorun devam ediyor ise aldığın alet bozuktur başkada diyecek bir şey bulamıyorum maalesef.

En başta sormam gereken şey şimdi aklıma geldi. Bir deney kartı kullanıyorsun ve onun üzerindeki programlayıcıyı kullanıyorsun anladığım kadarı ile. Peki kullandığın programlayıcının Pickit2 olduğundan eminmisin?. Zira Pickit2 Pic18F2550 işlemcisini kullanır. Senin kartın üzerinde böyle bir işlemci varmıdır. Üstelik PicKit2 yalnızca USB portu kullanır haberleşme için seninbağlantı kablon USB denmi çalışıyor. Kısaca Alet üzerindeki programlayıcının ne olduğunu öğrenmen gerekiyor. Muhtemelen PicKit2 değil bu.
Ete




_MeRKeZ_

Hocam,

Ben deneme kartını pickit 2'ye bağladığım zaman pickit 2 bağlandı yazan yerin altında bu cihaz otomatik tanınan cihazlar arasında değil diye bir yazı çıkıyor. Ben programlamayı pic 16f877'ye göre yapıyorum. Device select kısmından pic 16f877'yi seçip de .hex dosyasını yazdırmaya çalıştığımda ise cihaz bulunamadı diyor. Bu sorun sanırım programlamaya çalıştığım cihaz deneme kartı olduğundan kaynaklanıyor.

ICSP bağlantısını Vpp Vpp'ye, Vdd Vccp'ye, Gnd Gnd'ye, Sda Rb7d'ye, Sck Rb6c'ye gelecek şekilde yapıyorum. Sanırım bu şekilde doğru.

Pickit 2 klonunu kullanıyorum hocam, USB üzerinden programlıyorum. Deneme kartım pic 16f877, pic 16f877a ve pic 16f876 uygulamalarını destekliyor.






ete

Ortada bir bağlantı problemi olduğunu düşünüyorum.
Elinde bir deney kartı ve birde bağımsız pickit2 programlayıcı var. Pickit2 programlayıcı usb üzerinden pc ye bağlanması gerekiyor. Deney kartı ise kendi arabirim kablosu ile ayrıca pcye bağlanması gerekiyor. Deney kartına takmış olduğun programlanacak işlemci deney kartını yalnızca soket (sanki bir zif soket) gibi kullanmalıdır. Dolayısıyla onu bir ara cihaz gibi gormemelidir. Terslik burada. Bu nedenle sen yinede ICSP pinlerinin dogru yerlere bağlı olup olmadığını kontrol et.
Arada ayarlanması gereken dip switch ler olabilir onları bulup devre ile ICSP pinleri arasındaki bağlantıları kesmeye calıs. Özellikle data ve clk pinlerinin devreden izole edilmesi gerekir.
Ete

_MeRKeZ_

Ete hocam,

Sorun sayende halloldu. Aslında mesele çok (hatta biraz daha fazla) basitmiş. Senin son mesajın bana ilham oldu. Çok teşekkür ederim

Powered by EzPortal