DERS 4 , DEVİCE SATIRLARI HATA VERİYOR.

Başlatan oguzerdal, 09 Ocak 2023, 20:09:58

ete

#45
ICSP bir programlama soketidir ve işlemciyi çalıştığı kartın üzerinden sökmeden yerinde programlama amacı ile kullanılır. Aslında yapılan iş işlemcinin programlama için kullanılan pinlerini bir yerde toplamak ve aynı işi çalışan devre üzerinde de yaparak kullanıcıya kolaylık sağlamaktır.
Bir devre tasarladınız. Devre üzerinde diyelimki 16F628 işlemciniz var. Hatta daha da öteye giderek smd kılıfa sahip bir işlemci ile bu devreyi yaptınız ve işlemciyi yerine lehimlediniz. Nasıl programlayacağız? işte bu sorunun cevabı ICSB soketidir.
Devreniz üzerinde uygun bir yere 5 adet pini taşırsınız. Tabiiki taşımanında bir takım şartları var bunları daha sonra açıklayacağım.
Bu pinler sırası ile +5V (VCC) , GND (VSS) , DTA , CLK, MCLR (VPP) pinleridir.
Her işlemcinin onu programlarken kullanılan bir DATA çıkış bacağı, bir CLK bacağı bulunur. Bunlar genelde PORTB.6 ve PORTB.7 bacaklarıdır. Bu bacaklar direk o sokete taşınır.
Besleme bacakları taşınır ve son olarak da Programlama voltajının girileceği MCLR bacağı taşınır.
Şimdi gelelim taşımadaki kurallara. Tabiiki bahsi geçen pinler çalışacak olan devrede giriş çıkış amaçlı kullanılmış olabilir. Bu durumda esas olan ICSP pinlerinin direk olarak ICSP soketine taşınmasıdır. Arada seri direnç vs olmamalıdır. Gerekirse çalışacak devrede kullanılan pinler en az 1K lık, ideali 2k2 değerindeki bir direnç ile ana devreden izole edilmelidir. Aksi taktirde programlama esnasında sorun yaşarsınız. Diyelimki PORTB.6 pini ile bir role yada led sürüyorsunuz. Bu bacak ICSP soketindeki CLK çıkışına direk bağlı olmalı ama lede direk bağlı olmamalıdır. Arada en azından 1K direnç olması gerekir aksi taktirde programlamada kullanılan CLK sinyalleri bozulmaya uğrayacaklardır. Benzer şekilde PORTB.7 (DATA) pinine bağlı bir devre elemanı var ise burada da 1K-2K2 direnç ile izolasyon mutlaka sağlanmalıdır.
MCLR yani programlama voltajının verildiği pin aynı zamanda reset bacağı olduğu için genelde pullup direncine sahiptir. Direncin değeri 4K7 nin üzerinde olursa sorun çıkmaz. Zaten oradan programlama voltajı verilecektir. Ama başka elemanlar var ise programlamayı etkilemeyecek şekilde tasarlanmalıdır.

Sonuçta programlama kartı üzerindeki ICSP soketine uygun bir fişli kablo takılarak kablonun diğer ucu kendi devrenizdeki ICSP soketine takılır. Her iki tarafta da aynı isimli pinlerin bir birine bağlanmış olduğundan emin olmak gerekir. Böylece işlemcinizi kendi kartı üzerinde lehimli iken bile programlayabilirsiniz. Büyük kolaylıktır. PCB tasarlanırken mutlaka ICSP pinleri için bir soket yeri bırakılmasını önermekteyim.

Hata ayıklama programcıların sıklıkla başvurdukları bir hata yakalama kolaylığıdır. MPLAB da mevcut sanırım ama özel bir donanımda isteyebilir. Hiç kullanmadığım için detay bilgi veremeyeceğim.
Ancak programı adım adım çalıştırıp nerelere dallanıyor değişkenler ne değerler alıyor gibi size ger bildirim yaparak olası hataları çabuk şekilde bulmanızı sağlamaktadır.

Bu arada programlayıcının MPLAB da çalışması için ona farklı bir Hex (üzerindeki 18F2550 ye) yüklenmesi gerekir. Normal arayüzle çalışan program MPLAB da çalışmaz.

Ete

oguzerdal

ETE bey çok teşekkürler.Süper. Değeri ölçülemeyecek bilgiler verdiniz .

transistor

Alıntı yapılan: kudretuzuner - 05 Şubat 2023, 00:11:00Merhaba,
Linkteki programlayıcıyı 10 seneden fazladır kullanmaktayım. Hiç sorun yaşamıyorum. Yalnız zif soket artık işlevini tam görmüyor. Bazen PIC 'i görmüyor. Ben de gevşetip pini basan yeri değiştiriyorum. Fakat konuyu okuyunca dikkatimi çekti benim kitte tasarım sonrasında eklenmiş KABA bir şekilde yüksek değerlikli kondansatörler var. Gelişi güzel lehimlenmiş. Belli ki sonradan ilave etme ihtiyacı hissedilmiş. Hafta içinde fotosunu çekip paylaşayım.
https://www.expkits.com/?s=pickit2.htm



Bende resimdeki programlayıcıyı kullanıyorum. Arayüzü aynı gibi, yazılımını birlikte gelen CD'yi kullanarak yükledim. Programlamayı normal şekilde yapıyorum ama işim bittiğinde yazılımı kapatırken program kilitleniyor. Böyle bir problem ile karşılaştın mı? Aldığım hatayı resim olarak tekrar yüklerim programlayıcının yanındayken.

ete

Programlamada sorun yok ise ara bağlantıda yada USB fişinizde bir bozukluk yada bollaşma olabilir.
Diğer taraftan daima programlama işlemi bittikten sonra önce arayüzü kapatın sonra programlayıcıyı PC den ayırın. İşiniz devam ediyor ise takılı kalabilir.

Bir USB portunda sorun yaşıyorsanız başka bir USB protunda deneme yapınız.
Diğer bir seçenek de Tools menüsünde "Check Communication" diye bir seçenek var. Zif sokete bir işlemci takılı iken o seçeneği çalıştırın.

Ete

transistor

Alıntı yapılan: ete - 12 Şubat 2023, 09:12:09Programlamada sorun yok ise ara bağlantıda yada USB fişinizde bir bozukluk yada bollaşma olabilir.
Diğer taraftan daima programlama işlemi bittikten sonra önce arayüzü kapatın sonra programlayıcıyı PC den ayırın. İşiniz devam ediyor ise takılı kalabilir.

Bir USB portunda sorun yaşıyorsanız başka bir USB protunda deneme yapınız.
Diğer bir seçenek de Tools menüsünde "Check Communication" diye bir seçenek var. Zif sokete bir işlemci takılı iken o seçeneği çalıştırın.

Ete

Farklı kablo ile denedim. En iyisini aldım fark yok sokette gevşeme veya bolluk da yok, aldığım hata şöyledir. Birde anlamadığım görev yöneticisinde pickit2 olarak görünüyor bundan kaynaklanabilir mi bilmiyorum.




ete

Pickit2 ile pickit3 ün arayüz programları farklı. Acaba bu konuda hatamı yapıyorsun.
Ben olsam yeniden bir yerlerden bulur yeniden yüklerdim.
Hatta daha iyi bir akıl vereyim. Şu anda bu yazılımın modifiye edilmiş olanıda mevcut ve pek çok kişi bu yazılımı kullanıyor.

https://320volt.com/pickit-modifiye-yazilim/
linkinde zip dosyasını bulabilirsin. Oradan yükle zaten arayüz neredeyse aynı değişen bir şey yok.
Bu sistemi dene bakalım sonuç ne olacak.

Diğer taraftan sanki elindeki programlayıcı MPLAB için ayarlanmış gibide duruyor.
Arayüzde tools menüsünde en altta  "Install pickit operating system" isimli seçeneği seçerek o arayüze uygun programın programlayıcı üzerindeki işlemciye yüklenmesini sağlayabilirsin. Ondan sonra çalışmanın düzelmesi gerekir.

Sen yinede PickitXplus programı ile çalış.AYnı şeyleri orada da yaptırabilirsin.

Ete


oguzerdal

Değerli ustalar kapanmış gibi görünen bir konuyu yine açacağım ama bu DEVİCE satırları sorunu fena kafama takıldı. Yeni bir kitap buldum ,aldım. 16F88 ve 887 ile ilgili Devrim Çamoğlu,PBP kitabı. Çoğunuzun bildiğine eminim. Yazar 2.47 ver. kullanmış, bende 2.60 var.Demek ki eski versiyon ile ilgili değil.Ne yaptıysam hata veriyor.Ekteki hata satırlarına 2 tıklayınca gidemiyorum.( MPLabdaki gibi ) Nasıl bakılır? MCS ver.4.0.


ete

16F88 ile ilgili olarak aşağıdaki formatı dene;
@ __CONFIG  _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO
@ __CONFIG  _CONFIG2, _IESO_OFF & _FCMEN_OFF

16F887 için aşağıdaki formatı dene.
@ __config _CONFIG1, _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
@ __config _CONFIG2,_WRT_OFF & _BOR21V

verdiğim satırları kopyalayıp kullanabileceğin gibi bunları değiştirebilirsin de. Özellikle OSC seçeneklerini istersen değiştirebilirsin.

Seçeneklerin nelerden oluştuğunu görmek için ;
- Makinanda Proteus kurulu ise C: altında Program Dosyaları (X86) klasörünü aç içinde Labcenter... şeklindeki klasörü bul ve tıkla.
Açılan sayfada Önce Proteus 8.... klasörünü ona tıklayınca açılan sayfada Tools klasörüne tıklarsan orada MPASM klasörünü göreceksin. O klasöre gir ve p16F88.INC dosyasını bul ve üzerine tıkla yada aç. Açma işini not defteri yada MCS ile yapabilirsin. Aşağılara doğru indiğinde Config1 options şeklinde sigorta seçeneklerini görebilirsin. Hatta anlayabilirsen yanlarında açıklamalarıda mevcuttur.

Aynı işlemi 16F887 içinde yapabilirsin.

Ete


oguzerdal

ETE hocam teşekkürler. 1 nolu satırlar çalışıyor. Ama gene de DEVICE satırı şeklinde olmuyor. Assembler Errors satırlarına neden gidemiyorum çift tıklayınca? Error bilmemkaç diyor. Gidemiyorum.

ete

#54
Pic Basic Pro derleyicisinde versiyonlara göre Config tanımlamasında değişiklikler olmuştur.
Ver. 2,47 de;
@ DEVICE PIC12F683, MCLR_OFF           
@ DEVICE PIC12F683, INTRC_OSC_NOCLKOUT
şeklinde yazılan sigorta ayarları daha sonra çıkartılan Ver. 2,60 da
@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF
veya
ASM
__config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF
ENDASM

şeklinde verilmeye başlanmıştır. Daha da sonra çıkan Ver. 3.x da ise artık,

#CONFIG
  __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF
#ENDCONFIG
şeklinde verilmeye başlanmıştır.
Buradaki temel amaç nedir bilemiyorum. Ancak muhtemelen yazılımın versiyonunu belirlemek olsa gerek.

Micro Code Studio da ekran formatıda değiştirilebilmektedir. Ekranda her bir satırın numarasını istersen gösterebilir istersen umaralandırmayı kapatabilirsin.  Hata'lar sistem hatası ise bir hata numarası ile numaralandırılıyor. Komut veya yazım şekli hatası  satır numarasına göre verilir. İlişikte buna bir örnek vermeye çalıştım. Örnekte hata 106 nolu satırda meyadan gelmekte ve hata satırlarında .....(106) şeklinde satır numarası verilmektedir.
Basic de hata kontrol sistemine de fazla güvenmeyin. Çok doğru çalıştığını söyleyemiyeceğim. Bir hata olduğunda bunu mutlaka anlıyor orası kesin ama hatayı bazen yanlış tanımlıyor. Bazen hatanın olduğu yeri yanlış yorumluyor. Bu gibi durumlarda verdiği satırı kapatıp yeniden derleyince birbaşka satırı işaret ediyor ve bu şekilde takip ederek yerini bulabiliyor yada çember daraldığı için sonunda bende görebiliyorum. Kısaca tedbirli olun demek istiyorum.

Ekranda satır numaralarını açmak için;
- MCS içinde üstte yer alan "View" menu seçeneğine tıkla
- Açılan pencerede aşağıda yer alan "Editor Options"  seçeneğine tıkla
- Açılan pencerede en üstter yer alan seçenek (sende farklı sırada olabilir) olan "Show Line Number in Left Gutter" yazılı satırın başında yer alan kutucuğa tıklayarak seçili hale getir.
Sonra açılan ekranları kapatıp menüden çık. Böylece satır numaralarının ekranda yer aldığını göreceksin.

Bu arada

Ete

oguzerdal

ETE hocam iyi pazarlar. Düşündüm düşündüm :) ilerlemenin en doğru yolunun bendeki expkit kartıyla sizin beraberinde gelen 877 ve 4550 işlemcileri ile ilgili ders/programlar olacağını anladım. Bugüne kadar 84 ve 628  ile çalışmaya çalıştım çünkü bu 40 bacaklı, ADC, comparatör, Tmr1, Tmr2 ,PWM ,vs... vs...önümde dağ gibi gelmişti. 84 ile 4 kitap , 628 ile 1 kitap Asm. bitirdim gibi neredeyse, tabii ne kadar anladın dersen bilmiyorum ama bayağı bir şeyler öğrendim. Evde bir adet 877 varmış,onunla çalışmaya başladım. ( ama sabahtan beri neden MCLRE on/off olmuyor onunla uğraştım,sonunda anladım neyse  :)  ) . Bir tane de F88 ile Basic kitabı buldum ama komutlar farklı olduğu için daha da kafa karıştıracaktı.  Benim gibi geç başlayanlar için verdiğiniz sabır dolu çabalarınıza teşekkür ederim.

Powered by EzPortal